added target binary move
This commit is contained in:
parent
8b56633711
commit
039a8cba64
@ -4,6 +4,7 @@ import (
|
|||||||
"code.icod.de/dalu/gomanager/ent"
|
"code.icod.de/dalu/gomanager/ent"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"strings"
|
"strings"
|
||||||
@ -42,9 +43,6 @@ func (r *Runner) Run() error {
|
|||||||
if e != nil {
|
if e != nil {
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
if e := chownBinary(m.User, m.Group, fmt.Sprintf("%s/%s", m.RootPath, m.BinaryPath)); e != nil {
|
|
||||||
return e
|
|
||||||
}
|
|
||||||
_, e = r.client.Logentry.
|
_, e = r.client.Logentry.
|
||||||
Create().
|
Create().
|
||||||
SetContent(l).
|
SetContent(l).
|
||||||
@ -52,6 +50,27 @@ func (r *Runner) Run() error {
|
|||||||
if e != nil {
|
if e != nil {
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
if m.MoveToTarget {
|
||||||
|
if fl, e := copyFile(
|
||||||
|
fmt.Sprintf("%s/%s", m.RootPath, m.BinaryPath),
|
||||||
|
fmt.Sprintf("%s/%s", m.RootPath, m.BinaryTargetPath),
|
||||||
|
); e != nil {
|
||||||
|
return fmt.Errorf("error copying file to target: %s", e)
|
||||||
|
} else {
|
||||||
|
_, e = r.client.Logentry.
|
||||||
|
Create().
|
||||||
|
SetContent(fl).
|
||||||
|
Save(context.Background())
|
||||||
|
if e != nil {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if e := chownBinary(m.User, m.Group, fmt.Sprintf("%s/%s", m.RootPath, m.BinaryPath)); e != nil {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -109,3 +128,21 @@ func chownBinary(user, group, file string) error {
|
|||||||
cmd := exec.Command("chown", fmt.Sprintf("%s:%s", user, group), file)
|
cmd := exec.Command("chown", fmt.Sprintf("%s:%s", user, group), file)
|
||||||
return cmd.Run()
|
return cmd.Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func copyFile(src, dst string) (string, error) {
|
||||||
|
srcF, e := os.Open(src)
|
||||||
|
if e != nil {
|
||||||
|
return "", e
|
||||||
|
}
|
||||||
|
defer srcF.Close()
|
||||||
|
dstF, e := os.Open(dst)
|
||||||
|
if e != nil {
|
||||||
|
return "", e
|
||||||
|
}
|
||||||
|
defer dstF.Close()
|
||||||
|
if size, e := io.Copy(dstF, srcF); e != nil {
|
||||||
|
return "", e
|
||||||
|
} else {
|
||||||
|
return fmt.Sprintf("copied %d bytes from %s to %s", size, src, dst), nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user