Handle new options --to-command,--ignore-command-error
This commit is contained in:
23
src/tar.c
23
src/tar.c
@@ -192,6 +192,7 @@ enum
|
||||
GROUP_OPTION,
|
||||
HANG_OPTION,
|
||||
IGNORE_CASE_OPTION,
|
||||
IGNORE_COMMAND_ERROR_OPTION,
|
||||
IGNORE_FAILED_READ_OPTION,
|
||||
INDEX_FILE_OPTION,
|
||||
KEEP_NEWER_FILES_OPTION,
|
||||
@@ -200,6 +201,7 @@ enum
|
||||
NEWER_MTIME_OPTION,
|
||||
NO_ANCHORED_OPTION,
|
||||
NO_IGNORE_CASE_OPTION,
|
||||
NO_IGNORE_COMMAND_ERROR_OPTION,
|
||||
NO_OVERWRITE_DIR_OPTION,
|
||||
NO_RECURSION_OPTION,
|
||||
NO_SAME_OWNER_OPTION,
|
||||
@@ -228,6 +230,7 @@ enum
|
||||
SHOW_OMITTED_DIRS_OPTION,
|
||||
STRIP_COMPONENTS_OPTION,
|
||||
SUFFIX_OPTION,
|
||||
TO_COMMAND_OPTION,
|
||||
TOTALS_OPTION,
|
||||
UNQUOTE_OPTION,
|
||||
USAGE_OPTION,
|
||||
@@ -315,6 +318,12 @@ static struct argp_option options[] = {
|
||||
N_("handle sparse files efficiently"), 21 },
|
||||
{"to-stdout", 'O', 0, 0,
|
||||
N_("extract files to standard output"), 21 },
|
||||
{"to-command", TO_COMMAND_OPTION, N_("COMMAND"), 0,
|
||||
N_("pipe extracted files to another program"), 21 },
|
||||
{"ignore-command-error", IGNORE_COMMAND_ERROR_OPTION, 0, 0,
|
||||
N_("ignore exit codes of children"), 21 },
|
||||
{"no-ignore-command-error", NO_IGNORE_COMMAND_ERROR_OPTION, 0, 0,
|
||||
N_("treat non-zero exit codes of children as error"), 21 },
|
||||
{"incremental", 'G', 0, 0,
|
||||
N_("handle old GNU-format incremental backup"), 21 },
|
||||
{"listed-incremental", 'g', N_("FILE"), 0,
|
||||
@@ -1088,6 +1097,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
||||
case IGNORE_CASE_OPTION:
|
||||
args->exclude_options |= FNM_CASEFOLD;
|
||||
break;
|
||||
|
||||
case IGNORE_COMMAND_ERROR_OPTION:
|
||||
ignore_command_error_option = true;
|
||||
break;
|
||||
|
||||
case IGNORE_FAILED_READ_OPTION:
|
||||
ignore_failed_read_option = true;
|
||||
@@ -1129,6 +1142,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
||||
args->exclude_options &= ~ FNM_CASEFOLD;
|
||||
break;
|
||||
|
||||
case NO_IGNORE_COMMAND_ERROR_OPTION:
|
||||
ignore_command_error_option = false;
|
||||
break;
|
||||
|
||||
case NO_OVERWRITE_DIR_OPTION:
|
||||
old_files_option = NO_OVERWRITE_DIR_OLD_FILES;
|
||||
break;
|
||||
@@ -1249,6 +1266,12 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
||||
backup_option = true;
|
||||
args->backup_suffix_string = arg;
|
||||
break;
|
||||
|
||||
case TO_COMMAND_OPTION:
|
||||
if (to_command_option)
|
||||
USAGE_ERROR ((0, 0, _("Only one --to-command option allowed")));
|
||||
to_command_option = arg;
|
||||
break;
|
||||
|
||||
case TOTALS_OPTION:
|
||||
totals_option = true;
|
||||
|
||||
Reference in New Issue
Block a user