Blob Blame History Raw
#include "tpax_driver_impl.h"
#include "tpax_visibility_impl.h"
#include "argv/argv.h"

const tpax_hidden struct argv_option tpax_default_options[] = {
	{"Wversion",	0,TAG_VERSION,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"show version information"},

	{"Whelp",	0,TAG_HELP,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"show usage information"},

	{"Wlist",	0,TAG_LIST,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"list mode (output names of archive members)"},

	{"Wread",	'r',TAG_READ,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"read mode (extract matching archive members)"},

	{"Write",	'w',TAG_WRITE,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"write mode (add specified files to archive)"},

	{"Wcopy",	0,TAG_COPY,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"copy mode (copy specified files "
			"to a specified destination directory)"},

	{"Wfile",	'f',TAG_FILE,ARGV_OPTARG_REQUIRED,
			ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_EQUAL,
			0,"<ARCHIVE>",
			"read from (in read or list modes), "
			"or write to (in write mode) the specified %s "
			"after (in write mode) creating it as necessary"},

	{"Wformat",	'x',TAG_FORMAT,ARGV_OPTARG_REQUIRED,
			ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_EQUAL,
			"pax|cpio|ustar|rustar",0,
			"archive format [%s]"},

	{"Wverbose",	'v',TAG_VERBOSE,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"write pathnames to stderr in read, write, and copy modes; "
			"produce verbose output in list mode."},

	{"Wblksize",	'b',TAG_BLKSIZE,ARGV_OPTARG_REQUIRED,
			ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_EQUAL,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."},

	{"Wrecurse",	0,TAG_RECURSE,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"recurse into directory archive members "
			"(this is the tpax_main() default)"},

	{"Wno-recurse",'d',TAG_NORECURSE,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"do not recurse into directory archive members"},

	{"Wpreserve-atime",
			't',TAG_PRESERVE_ATIME,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"when user has the necessary permissions, "
			"set the access time of each file to the access "
			"time that was reported by fstatat(3) prior to the "
			"first read operation performed by pax"},

	{"Wpax-symlink-args",
			'H',TAG_PAX_SYMLINK_ARGS,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"when a command-line argument is a symbolic link, "
			"add the underlying (referenced) file-system object "
			"or directory to the archive using the name of the "
			"symbolic link."},

	{"Wpax-symlink-items",
			'L',TAG_PAX_SYMLINK_ITEMS,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"when a command-line argument is a symbolic link, or when "
			"an item added by way of recursion is a symbolic link, "
			"add the underlying (referenced) file-system object "
			"or directory to the archive using the name of the "
			"symbolic link."},

	{"Woptions",	'o',TAG_OPTIONS,ARGV_OPTARG_REQUIRED,
			ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE|ARGV_OPTION_KEYVAL_ARRAY,0,0,
			"a user-provided, format-specific keyval array of the form "
			"keyword[[:]=value][,keyword[[:]=value], ...]"},

	{"Wstrict-device-id",
			'X',TAG_STRICT_DEVICE_ID,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"do not recurse into directories across device boundaries"},

	{"Wstrict-path-input",
			0,TAG_STRICT_PATH,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,0,0,
			"do not allow file arguments (in write and copy modes) "
			"to contain parent-directoy (dot dot) references"},

	{"Wpure-path-output",
			0,TAG_PURE_PATH,ARGV_OPTARG_NONE,
			ARGV_OPTION_HYBRID_ONLY,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}
};