diff options
| author | Junio C Hamano <gitster@pobox.com> | 2013-04-25 11:13:49 -0700 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2013-04-25 11:42:10 -0700 | 
| commit | 27ec394a9701675762f02e9af464be2c297c6cf1 (patch) | |
| tree | 80e8547957da5c45f30847b553b3af54621281b0 | |
| parent | 8a09e6c5f9010ac7159ef39a03b9a36bf233eaca (diff) | |
| download | git-27ec394a9701675762f02e9af464be2c297c6cf1.tar.gz | |
prune: introduce OPT_EXPIRY_DATE() and use it
Earlier we added support for --expire=all (or --expire=now) that
considers all crufts, regardless of their age, as eligible for
garbage collection by turning command argument parsers that use
approxidate() to use parse_expiry_date(), but "git prune" used a
built-in parse-options facility OPT_DATE() and did not benefit from
the new function.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | Documentation/technical/api-parse-options.txt | 4 | ||||
| -rw-r--r-- | builtin/prune.c | 4 | ||||
| -rw-r--r-- | parse-options-cb.c | 6 | ||||
| -rw-r--r-- | parse-options.h | 4 | 
4 files changed, 16 insertions, 2 deletions
diff --git a/Documentation/technical/api-parse-options.txt b/Documentation/technical/api-parse-options.txt index facc8c8c49..a8bae69e6e 100644 --- a/Documentation/technical/api-parse-options.txt +++ b/Documentation/technical/api-parse-options.txt @@ -176,6 +176,10 @@ There are some macros to easily define options:  	Introduce an option with date argument, see `approxidate()`.  	The timestamp is put into `int_var`. +`OPT_EXPIRY_DATE(short, long, &int_var, description)`:: +	Introduce an option with expiry date argument, see `parse_expiry_date()`. +	The timestamp is put into `int_var`. +  `OPT_CALLBACK(short, long, &var, arg_str, description, func_ptr)`::  	Introduce an option with argument.  	The argument will be fed into the function given by `func_ptr` diff --git a/builtin/prune.c b/builtin/prune.c index 85843d4f17..b90e5cc361 100644 --- a/builtin/prune.c +++ b/builtin/prune.c @@ -132,8 +132,8 @@ int cmd_prune(int argc, const char **argv, const char *prefix)  		OPT__DRY_RUN(&show_only, N_("do not remove, show only")),  		OPT__VERBOSE(&verbose, N_("report pruned objects")),  		OPT_BOOL(0, "progress", &show_progress, N_("show progress")), -		OPT_DATE(0, "expire", &expire, -			 N_("expire objects older than <time>")), +		OPT_EXPIRY_DATE(0, "expire", &expire, +				N_("expire objects older than <time>")),  		OPT_END()  	};  	char *s; diff --git a/parse-options-cb.c b/parse-options-cb.c index 0de5fb168a..be8c413cfe 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -33,6 +33,12 @@ int parse_opt_approxidate_cb(const struct option *opt, const char *arg,  	return 0;  } +int parse_opt_expiry_date_cb(const struct option *opt, const char *arg, +			     int unset) +{ +	return parse_expiry_date(arg, (unsigned long *)opt->value); +} +  int parse_opt_color_flag_cb(const struct option *opt, const char *arg,  			    int unset)  { diff --git a/parse-options.h b/parse-options.h index 71a39c60d9..8541811137 100644 --- a/parse-options.h +++ b/parse-options.h @@ -140,6 +140,9 @@ struct option {  #define OPT_DATE(s, l, v, h) \  	{ OPTION_CALLBACK, (s), (l), (v), N_("time"),(h), 0,	\  	  parse_opt_approxidate_cb } +#define OPT_EXPIRY_DATE(s, l, v, h) \ +	{ OPTION_CALLBACK, (s), (l), (v), N_("expiry date"),(h), 0,	\ +	  parse_opt_expiry_date_cb }  #define OPT_CALLBACK(s, l, v, a, h, f) \  	{ OPTION_CALLBACK, (s), (l), (v), (a), (h), 0, (f) }  #define OPT_NUMBER_CALLBACK(v, h, f) \ @@ -215,6 +218,7 @@ extern int parse_options_concat(struct option *dst, size_t, struct option *src);  /*----- some often used options -----*/  extern int parse_opt_abbrev_cb(const struct option *, const char *, int);  extern int parse_opt_approxidate_cb(const struct option *, const char *, int); +extern int parse_opt_expiry_date_cb(const struct option *, const char *, int);  extern int parse_opt_color_flag_cb(const struct option *, const char *, int);  extern int parse_opt_verbosity_cb(const struct option *, const char *, int);  extern int parse_opt_with_commit(const struct option *, const char *, int);  | 
