#include "tpax_driver_impl.h" #include "argv/argv.h" const struct argv_option tpax_default_options[] = { {"version", 0,TAG_VERSION,ARGV_OPTARG_NONE,0,0,0, "show version information"}, {"help", 0,TAG_HELP,ARGV_OPTARG_OPTIONAL,0,"short|long",0, "show usage information [listing %s options only]"}, {"list", 0,TAG_LIST,ARGV_OPTARG_NONE,0,0,0, "list mode (output names of archive members)"}, {"read", 'r',TAG_READ,ARGV_OPTARG_NONE,0,0,0, "read mode (extract matching archive members)"}, {"write", 'w',TAG_WRITE,ARGV_OPTARG_NONE,0,0,0, "write mode (add specified files to archive)"}, {"copy", 0,TAG_COPY,ARGV_OPTARG_NONE,0,0,0, "copy mode (copy specified files " "to a specified destination directory)"}, {"format", 'x',TAG_FORMAT,ARGV_OPTARG_REQUIRED,0, "pax|cpio|ustar|rustar",0, "archive format [%s]"}, {"blksize", 'b',TAG_BLKSIZE,ARGV_OPTARG_REQUIRED,0,0,0, "(non-default) block-size; valid values are " "in the range of 512 to 32256; keeping " "the default format-specific block size " "(5120 for the pax and cpio formats," " 10240 for the ustar format) " "is strongly recommended."}, {"recurse", 0,TAG_RECURSE,ARGV_OPTARG_NONE,0,0,0, "recurse into directory archive members " "(this is the tpax_main() default)"}, {"no-recurse", 'd',TAG_NORECURSE,ARGV_OPTARG_NONE,0,0,0, "do not recurse into directory archive members"}, {"strict-path-input", 0,TAG_STRICT_PATH,ARGV_OPTARG_NONE,0,0,0, "do not allow file arguments (in write and copy modes) " "to contain parent-directoy (dot dot) references"}, {"pure-path-output", 0,TAG_PURE_PATH,ARGV_OPTARG_NONE,0,0,0, "output (in list mode) or store (in write mode) path " "names in pure form, specifically by liminating all " "this-dir (dot) elements from the listed/stored path " "name, as well as replacing each meaningless sequence " "of consecutive forward slash characters with a single " "forward slash; the presence of exactly two forward " "slash characters in the beginning of a path may be " "meaningful, and therefore shall remain instact."}, {0,0,0,0,0,0,0,0} };