Merge branch 'ds/no-usable-cron-on-macos'

"git maintenance run" learned to use system supplied scheduler
backend, but cron on macOS turns out to be unusable for this
purpose.

* ds/no-usable-cron-on-macos:
  maintenance: disable cron on macOS
This commit is contained in:
Junio C Hamano 2021-11-10 15:01:20 -08:00
Родитель 7c7cf62c48 689a2aa719
Коммит c1d16cedd4
1 изменённых файлов: 21 добавлений и 6 удалений

Просмотреть файл

@ -1999,15 +1999,11 @@ static int schtasks_update_schedule(int run_maintenance, int fd)
return schtasks_remove_tasks();
}
static int is_crontab_available(void)
MAYBE_UNUSED
static int check_crontab_process(const char *cmd)
{
const char *cmd = "crontab";
int is_available;
struct child_process child = CHILD_PROCESS_INIT;
if (get_schedule_cmd(&cmd, &is_available))
return is_available;
strvec_split(&child.args, cmd);
strvec_push(&child.args, "-l");
child.no_stdin = 1;
@ -2022,6 +2018,25 @@ static int is_crontab_available(void)
return 1;
}
static int is_crontab_available(void)
{
const char *cmd = "crontab";
int is_available;
if (get_schedule_cmd(&cmd, &is_available))
return is_available;
#ifdef __APPLE__
/*
* macOS has cron, but it requires special permissions and will
* create a UI alert when attempting to run this command.
*/
return 0;
#else
return check_crontab_process(cmd);
#endif
}
#define BEGIN_LINE "# BEGIN GIT MAINTENANCE SCHEDULE"
#define END_LINE "# END GIT MAINTENANCE SCHEDULE"