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.") vars_f := flag.String("vars", "", "Command line options for the programm.") flag.Parse() var ( time, cmd, vars string ) time = fmt.Sprintf("@every %s", *time_f) cmd = fmt.Sprintf("%s", *cmd_f) vars = fmt.Sprintf("%s", *vars_f) cmd, err := exec.LookPath(cmd) if err != nil { 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 vars == "" { 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+" "+vars) o, err := c.Output() if err != nil { log.Println(err) } fmt.Printf("%s", o) } }) job.Start() for { select {} } }