diff --git a/command.go b/command.go new file mode 100644 index 0000000..aa72a40 --- /dev/null +++ b/command.go @@ -0,0 +1,12 @@ +//go:build !windows +// +build !windows + +package main + +func rmcmd(target string) string { + return "rm -rf " + target +} + +func mkdircmd(target string) string { + return "mkdir -p " + target +} diff --git a/command_windows.go b/command_windows.go new file mode 100644 index 0000000..06475b5 --- /dev/null +++ b/command_windows.go @@ -0,0 +1,12 @@ +//go:build windows +// +build windows + +package main + +func rmcmd(target string) string { + return "DEL /F /S " + target +} + +func mkdircmd(target string) string { + return "if not exist " + target + " mkdir " + target +} diff --git a/plugin.go b/plugin.go index 50bdbdb..590b51a 100644 --- a/plugin.go +++ b/plugin.go @@ -152,7 +152,7 @@ func (p Plugin) log(host string, message ...interface{}) { func (p *Plugin) removeDestFile(ssh *easyssh.MakeConfig) error { p.log(ssh.Server, "remove file", p.DestFile) - _, errStr, _, err := ssh.Run(fmt.Sprintf("rm -rf %s", p.DestFile), p.Config.CommandTimeout) + _, errStr, _, err := ssh.Run(rmcmd(p.DestFile), p.Config.CommandTimeout) if err != nil { return err } @@ -322,20 +322,19 @@ func (p *Plugin) Exec() error { } for _, target := range p.Config.Target { - // remove target before upload data + // remove target folder before upload data if p.Config.Remove { p.log(host, "Remove target folder:", target) - _, _, _, err := ssh.Run(fmt.Sprintf("rm -rf %s", target), p.Config.CommandTimeout) + _, _, _, err := ssh.Run(rmcmd(target), p.Config.CommandTimeout) if err != nil { errChannel <- err return } } - // mkdir path p.log(host, "create folder", target) - _, errStr, _, err := ssh.Run(fmt.Sprintf("mkdir -p %s", target), p.Config.CommandTimeout) + _, errStr, _, err := ssh.Run(mkdircmd(target), p.Config.CommandTimeout) if err != nil { errChannel <- err return