Skip to content

Commit 2aa9ee7

Browse files
pks-tgitster
authored andcommitted
builtin/maintenance: extract function to run tasks
Extract the function to run maintenance tasks. This function will be reused in a subsequent commit where we introduce a split between maintenance tasks that run before and after daemonizing the process. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 38a8fa5 commit 2aa9ee7

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

builtin/gc.c

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,6 +1596,27 @@ static const struct maintenance_task tasks[] = {
15961596
},
15971597
};
15981598

1599+
static int maybe_run_task(const struct maintenance_task *task,
1600+
struct repository *repo,
1601+
struct maintenance_run_opts *opts,
1602+
struct gc_config *cfg)
1603+
{
1604+
int ret = 0;
1605+
1606+
if (opts->auto_flag &&
1607+
(!task->auto_condition || !task->auto_condition(cfg)))
1608+
return 0;
1609+
1610+
trace2_region_enter("maintenance", task->name, repo);
1611+
if (task->fn(opts, cfg)) {
1612+
error(_("task '%s' failed"), task->name);
1613+
ret = 1;
1614+
}
1615+
trace2_region_leave("maintenance", task->name, repo);
1616+
1617+
return ret;
1618+
}
1619+
15991620
static int maintenance_run_tasks(struct maintenance_run_opts *opts,
16001621
struct gc_config *cfg)
16011622
{
@@ -1627,19 +1648,9 @@ static int maintenance_run_tasks(struct maintenance_run_opts *opts,
16271648
trace2_region_leave("maintenance", "detach", the_repository);
16281649
}
16291650

1630-
for (size_t i = 0; i < opts->tasks_nr; i++) {
1631-
if (opts->auto_flag &&
1632-
(!tasks[opts->tasks[i]].auto_condition ||
1633-
!tasks[opts->tasks[i]].auto_condition(cfg)))
1634-
continue;
1635-
1636-
trace2_region_enter("maintenance", tasks[opts->tasks[i]].name, r);
1637-
if (tasks[opts->tasks[i]].fn(opts, cfg)) {
1638-
error(_("task '%s' failed"), tasks[opts->tasks[i]].name);
1651+
for (size_t i = 0; i < opts->tasks_nr; i++)
1652+
if (maybe_run_task(&tasks[opts->tasks[i]], r, opts, cfg))
16391653
result = 1;
1640-
}
1641-
trace2_region_leave("maintenance", tasks[opts->tasks[i]].name, r);
1642-
}
16431654

16441655
rollback_lock_file(&lk);
16451656
return result;

0 commit comments

Comments
 (0)