in command/install.go [66:100]
func setupCron(cfg *config.Monkey, executablePath string) error {
err := EnsureFileAbsent(cfg.SchedulePath())
if err != nil {
return err
}
err = EnsureFileAbsent(cfg.ScheduleCronPath())
if err != nil {
return err
}
var scriptPerms os.FileMode = 0755 // -rwx-rx--rx-- : scripts should be executable
log.Printf("Creating %s\n", cfg.SchedulePath())
content, err := generateScriptContent(scheduleCommand, cfg, executablePath)
if err != nil {
return err
}
err = ioutil.WriteFile(cfg.SchedulePath(), content, scriptPerms)
if err != nil {
return err
}
cronExpr, err := cfg.CronExpression()
if err != nil {
return err
}
crontab := fmt.Sprintf("%s %s %s\n", cronExpr, cfg.TermAccount(), cfg.SchedulePath())
var cronPerms os.FileMode = 0644 // -rw-r--r-- : cron config file shouldn't have write perm
log.Printf("Creating %s\n", cfg.ScheduleCronPath())
err = ioutil.WriteFile(cfg.ScheduleCronPath(), []byte(crontab), cronPerms)
return err
}