40 lines
1.0 KiB
40 lines
1.0 KiB
#include "builtin.h" |
|
#include "cache.h" |
|
#include "parse-options.h" |
|
#include "sequencer.h" |
|
|
|
static const char * const builtin_rebase_helper_usage[] = { |
|
N_("git rebase--helper [<options>]"), |
|
NULL |
|
}; |
|
|
|
int cmd_rebase__helper(int argc, const char **argv, const char *prefix) |
|
{ |
|
struct replay_opts opts = REPLAY_OPTS_INIT; |
|
enum { |
|
CONTINUE = 1, ABORT |
|
} command = 0; |
|
struct option options[] = { |
|
OPT_BOOL(0, "ff", &opts.allow_ff, N_("allow fast-forward")), |
|
OPT_CMDMODE(0, "continue", &command, N_("continue rebase"), |
|
CONTINUE), |
|
OPT_CMDMODE(0, "abort", &command, N_("abort rebase"), |
|
ABORT), |
|
OPT_END() |
|
}; |
|
|
|
git_config(git_default_config, NULL); |
|
|
|
opts.action = REPLAY_INTERACTIVE_REBASE; |
|
opts.allow_ff = 1; |
|
opts.allow_empty = 1; |
|
|
|
argc = parse_options(argc, argv, NULL, options, |
|
builtin_rebase_helper_usage, PARSE_OPT_KEEP_ARGV0); |
|
|
|
if (command == CONTINUE && argc == 1) |
|
return !!sequencer_continue(&opts); |
|
if (command == ABORT && argc == 1) |
|
return !!sequencer_remove_state(&opts); |
|
usage_with_options(builtin_rebase_helper_usage, options); |
|
}
|
|
|