package main import ( "flag" "fmt" "github.com/robfig/cron" "log" "os" "os/exec" ) func main() { time_f := flag.String("time", "1m", "Set the time interval.") cmd_f := flag.String("cmd", "", "Execute the command.") args_f := flag.String("args", "", "Command line options for the programm.") flag.Parse() var ( time, cmd, args string ) time = fmt.Sprintf("@every %s", *time_f) cmd = fmt.Sprintf("%s", *cmd_f) args = fmt.Sprintf("%s", *args_f) cmd, err := exec.LookPath(cmd) if err != nil { cmd = fmt.Sprintf("%s", *cmd_f) cmd, err = exec.LookPath("./" + cmd) if err != nil { log.Println(err) log.Printf("Executable (%s) neither found in PATH variable nor in working directory.\n", *cmd_f) os.Exit(1) } } job := cron.New() job.AddFunc(time, func() { if args == "" { c := exec.Command(cmd) o, err := c.Output() if err != nil { log.Println(err) } fmt.Printf("%s", o) } else { c := exec.Command("bash", "-c", cmd+" "+args) o, err := c.Output() if err != nil { log.Println(err) } fmt.Printf("%s", o) } }) job.Start() for { select {} } }