하위 폴더 복사 누락 수정
This commit is contained in:
@ -11,11 +11,21 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func copy(src, dst string) error {
|
||||
func copy(src, dst string, stdlog *log.Logger) error {
|
||||
fi, err := os.Stat(src)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if fi.IsDir() {
|
||||
entries, _ := os.ReadDir(src)
|
||||
for _, ent := range entries {
|
||||
if err := copy(path.Join(src, ent.Name()), path.Join(dst, ent.Name()), stdlog); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
inmode := fi.Mode()
|
||||
|
||||
in, err := os.Open(src)
|
||||
@ -45,6 +55,7 @@ func copy(src, dst string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
stdlog.Println("file copied :", src, dst)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -70,38 +81,21 @@ func main() {
|
||||
|
||||
stdlog.Println("target is terminated")
|
||||
|
||||
selfext, _ := os.Executable()
|
||||
selfext = path.Base(selfext)
|
||||
nextArgs := args[4:]
|
||||
entries, _ := os.ReadDir(args[2])
|
||||
for _, ent := range entries {
|
||||
if ent.Name() == selfext {
|
||||
continue
|
||||
}
|
||||
// replacer 제거. 내가 돌고 있으므로 복사는 안된다.
|
||||
// 내가 실행되기 전에 이미 복사가 되서 나는 최신 버전임
|
||||
os.Remove(path.Join(args[2], os.Args[0]))
|
||||
if err := copy(args[2], "", stdlog); err != nil {
|
||||
stdlog.Fatal(err)
|
||||
}
|
||||
|
||||
if ent.IsDir() {
|
||||
if err := os.MkdirAll(ent.Name(), 0775); err != nil {
|
||||
stdlog.Fatal(err)
|
||||
}
|
||||
} else {
|
||||
if ent.Name() == "@args" {
|
||||
var tempArgs []string
|
||||
argfile, _ := os.Open(path.Join(args[2], ent.Name()))
|
||||
dec := json.NewDecoder(argfile)
|
||||
if dec.Decode(&tempArgs) == nil {
|
||||
nextArgs = tempArgs
|
||||
}
|
||||
} else {
|
||||
err := copy(path.Join(args[2], ent.Name()), ent.Name())
|
||||
if err != nil {
|
||||
stdlog.Println("copy failed :", path.Join(args[2], ent.Name()), ent.Name())
|
||||
stdlog.Fatal(err)
|
||||
} else {
|
||||
stdlog.Println("file copied :", path.Join(args[2], ent.Name()), ent.Name())
|
||||
}
|
||||
}
|
||||
nextArgs := args[4:]
|
||||
if bt, _ := os.ReadFile("@args"); len(bt) > 0 {
|
||||
var tempArgs []string
|
||||
if json.Unmarshal(bt, &tempArgs) == nil {
|
||||
nextArgs = tempArgs
|
||||
}
|
||||
}
|
||||
os.Remove("@args")
|
||||
|
||||
err := os.RemoveAll(args[2])
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user