* Help text for all (non-script) programs, so no more:
$ nix-instantiate --help error: unknown flag `--help` Try `nix-instantiate --help' for more information. :-)
This commit is contained in:
		
							parent
							
								
									905d5b91fa
								
							
						
					
					
						commit
						078e20885e
					
				
					 14 changed files with 126 additions and 32 deletions
				
			
		|  | @ -23,31 +23,42 @@ static void initAndRun(int argc, char * * argv) | |||
|     nixDBPath = (string) NIX_STATE_DIR + "/db"; | ||||
| 
 | ||||
|     /* Put the arguments in a vector. */ | ||||
|     Strings args; | ||||
|     Strings args, remaining; | ||||
|     while (argc--) args.push_back(*argv++); | ||||
|     args.erase(args.begin()); | ||||
|      | ||||
|     /* Expand compound dash options (i.e., `-qlf' -> `-q -l -f'), and
 | ||||
|        ignore options for the ATerm library. */ | ||||
|     for (Strings::iterator it = args.begin(); | ||||
|          it != args.end(); ) | ||||
|     { | ||||
|         string arg = *it; | ||||
|         if (string(arg, 0, 4) == "-at-") | ||||
|             it = args.erase(it); | ||||
|     for (Strings::iterator i = args.begin(); i != args.end(); ++i) { | ||||
|         string arg = *i; | ||||
|         if (string(arg, 0, 4) == "-at-") ; | ||||
|         else if (arg.length() > 2 && arg[0] == '-' && arg[1] != '-') { | ||||
|             for (unsigned int i = 1; i < arg.length(); i++) | ||||
|                 if (isalpha(arg[i])) | ||||
|                     args.insert(it, (string) "-" + arg[i]); | ||||
|             for (unsigned int j = 1; j < arg.length(); j++) | ||||
|                 if (isalpha(arg[j])) | ||||
|                     remaining.push_back((string) "-" + arg[j]); | ||||
|                 else { | ||||
|                     args.insert(it, string(arg, i)); | ||||
|                     remaining.push_back(string(arg, j)); | ||||
|                     break; | ||||
|                 } | ||||
|             it = args.erase(it); | ||||
|         } else it++; | ||||
|         } else remaining.push_back(arg); | ||||
|     } | ||||
|     args = remaining; | ||||
|     remaining.clear(); | ||||
| 
 | ||||
|     /* Process default options. */ | ||||
|     for (Strings::iterator i = args.begin(); i != args.end(); ++i) { | ||||
|         string arg = *i; | ||||
|         if (arg == "--verbose" || arg == "-v") | ||||
|             verbosity = (Verbosity) ((int) verbosity + 1); | ||||
|         else if (arg == "--help") { | ||||
|             printHelp(); | ||||
|             return; | ||||
|         } else if (arg == "--keep-failed" || arg == "-K") | ||||
|             keepFailed = true; | ||||
|         else remaining.push_back(arg); | ||||
|     } | ||||
| 
 | ||||
|     run(args); | ||||
|     run(remaining); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,8 +6,17 @@ | |||
| #include "util.hh" | ||||
| 
 | ||||
| 
 | ||||
| /* These are not implemented here, but must be implemented by a
 | ||||
|    program linking against libmain. */ | ||||
| 
 | ||||
| /* Main program.  Called by main() after the ATerm library has been
 | ||||
|    initialised and some default arguments have been processed (and | ||||
|    removed from `args').  main() will catch all exceptions. */ | ||||
| void run(Strings args); | ||||
| 
 | ||||
| /* Should print a help message to stdout and return. */ | ||||
| void printHelp(); | ||||
| 
 | ||||
| 
 | ||||
| extern string programId; | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,6 +6,11 @@ nix_env_LDADD = ../libmain/libmain.a ../libexpr/libexpr.a \ | |||
|  ../boost/format/libformat.a -L../../externals/inst/lib -ldb_cxx \ | ||||
|  -lsglr -lATB -lconversion -lasfix2 -lmept -lATerm | ||||
| 
 | ||||
| main.o: help.txt.hh | ||||
| 
 | ||||
| %.txt.hh: %.txt | ||||
| 	../bin2c/bin2c helpText < $< > $@ || (rm $@ && exit 1) | ||||
| 
 | ||||
| AM_CXXFLAGS = \ | ||||
|  -I.. -I../../externals/inst/include -I../libutil -I../libstore \ | ||||
|  -I../libexpr -I../libmain | ||||
|  |  | |||
							
								
								
									
										31
									
								
								src/nix-env/help.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/nix-env/help.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| nix-env [OPTIONS...] [ARGUMENTS...] | ||||
| 
 | ||||
| `nix-env' is a tool to manipulate Nix user environments. | ||||
| 
 | ||||
| Operations: | ||||
| 
 | ||||
|   --install / -i FILE: add a derivation to the user environment | ||||
|   --uninstall / -u: remove a derivation to the user environment | ||||
|   --query / -q: perform a query on an environment or Nix expression | ||||
| 
 | ||||
| The previous operations take a list of derivation names.  The special | ||||
| name `*' may be used to indicate all derivations. | ||||
| 
 | ||||
|   --version: output version information | ||||
|   --help: display help | ||||
| 
 | ||||
| Query types: | ||||
| 
 | ||||
|   --name: print derivation names (default) | ||||
|   --expr / -e: print derivation store expression | ||||
|   --status / -s: print installed/present status | ||||
| 
 | ||||
| Query sources: | ||||
| 
 | ||||
|   --installed: use installed derivations (default) | ||||
|   --available / -f FILE: use derivations available in expression FILE | ||||
| 
 | ||||
| Options: | ||||
| 
 | ||||
|   --verbose / -v: verbose operation (may be repeated) | ||||
|   --keep-failed / -K: keep temporary directories of failed builds | ||||
|  | @ -3,6 +3,7 @@ | |||
| #include "shared.hh" | ||||
| #include "parser.hh" | ||||
| #include "eval.hh" | ||||
| #include "help.txt.hh" | ||||
| 
 | ||||
| 
 | ||||
| typedef void (* Operation) (EvalState & state, | ||||
|  | @ -20,6 +21,12 @@ struct DrvInfo | |||
| typedef map<Path, DrvInfo> DrvInfos; | ||||
| 
 | ||||
| 
 | ||||
| void printHelp() | ||||
| { | ||||
|     cout << string((char *) helpText, sizeof helpText); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| bool parseDerivation(EvalState & state, Expr e, DrvInfo & drv) | ||||
| { | ||||
|     ATMatcher m; | ||||
|  | @ -395,10 +402,6 @@ void run(Strings args) | |||
|             op = opUninstall; | ||||
|         else if (arg == "--query" || arg == "-q") | ||||
|             op = opQuery; | ||||
|         else if (arg == "--verbose" || arg == "-v") | ||||
|             verbosity = (Verbosity) ((int) verbosity + 1); | ||||
|         else if (arg[0] == '-') | ||||
|             opFlags.push_back(arg); | ||||
|         else | ||||
|             opArgs.push_back(arg); | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,5 +4,10 @@ nix_hash_SOURCES = nix-hash.cc | |||
| nix_hash_LDADD = ../libmain/libmain.a ../libstore/libstore.a ../libutil/libutil.a \ | ||||
|  ../boost/format/libformat.a -L../../externals/inst/lib -ldb_cxx -lATerm | ||||
| 
 | ||||
| nix-hash.o: help.txt.hh | ||||
| 
 | ||||
| %.txt.hh: %.txt | ||||
| 	../bin2c/bin2c helpText < $< > $@ || (rm $@ && exit 1) | ||||
| 
 | ||||
| AM_CXXFLAGS = \ | ||||
|  -I.. -I../../externals/inst/include -I../libutil -I../libstore -I../libmain | ||||
|  |  | |||
							
								
								
									
										6
									
								
								src/nix-hash/help.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/nix-hash/help.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| nix-hash [OPTIONS...] [FILES...] | ||||
| 
 | ||||
| `nix-hash computes and prints cryptographic hashes for the specified | ||||
| files. | ||||
| 
 | ||||
|   --flat: compute hash of regular file contents, not metadata | ||||
|  | @ -2,6 +2,13 @@ | |||
| 
 | ||||
| #include "hash.hh" | ||||
| #include "shared.hh" | ||||
| #include "help.txt.hh" | ||||
| 
 | ||||
| 
 | ||||
| void printHelp() | ||||
| { | ||||
|     cout << string((char *) helpText, sizeof helpText); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| void run(Strings args) | ||||
|  |  | |||
|  | @ -6,6 +6,11 @@ nix_instantiate_LDADD = ../libmain/libmain.a ../libexpr/libexpr.a \ | |||
|  ../boost/format/libformat.a -L../../externals/inst/lib -ldb_cxx \ | ||||
|  -lsglr -lATB -lconversion -lasfix2 -lmept -lATerm | ||||
| 
 | ||||
| main.o: help.txt.hh | ||||
| 
 | ||||
| %.txt.hh: %.txt | ||||
| 	../bin2c/bin2c helpText < $< > $@ || (rm $@ && exit 1) | ||||
| 
 | ||||
| AM_CXXFLAGS = \ | ||||
|  -I.. -I../../externals/inst/include -I../libutil -I../libstore \ | ||||
|  -I../libexpr -I../libmain | ||||
|  |  | |||
							
								
								
									
										15
									
								
								src/nix-instantiate/help.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/nix-instantiate/help.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | |||
| nix-instantiate [OPTIONS...] [FILES...] | ||||
| 
 | ||||
| `nix-instantiate' turns Nix expressions into store expressions.  | ||||
| 
 | ||||
| The argument `-' may be specified to read a Nix expression from | ||||
| standard input. | ||||
| 
 | ||||
| Options: | ||||
| 
 | ||||
|   --version: output version information | ||||
|   --help: display help | ||||
| 
 | ||||
| Options: | ||||
| 
 | ||||
|   --verbose / -v: verbose operation (may be repeated) | ||||
|  | @ -6,6 +6,13 @@ | |||
| #include "shared.hh" | ||||
| #include "eval.hh" | ||||
| #include "parser.hh" | ||||
| #include "help.txt.hh" | ||||
| 
 | ||||
| 
 | ||||
| void printHelp() | ||||
| { | ||||
|     cout << string((char *) helpText, sizeof helpText); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #if 0 | ||||
|  | @ -87,9 +94,7 @@ void run(Strings args) | |||
|         } | ||||
|         else | ||||
| #endif | ||||
|         if (arg == "--verbose" || arg == "-v") | ||||
|             verbosity = (Verbosity) ((int) verbosity + 1); | ||||
|         else if (arg == "-") | ||||
|         if (arg == "-") | ||||
|             readStdin = true; | ||||
|         else if (arg[0] == '-') | ||||
|             throw UsageError(format("unknown flag `%1%`") % arg); | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ nix_store_LDADD = ../libmain/libmain.a ../libstore/libstore.a ../libutil/libutil | |||
| 
 | ||||
| main.o: help.txt.hh | ||||
| 
 | ||||
| %.hh: % | ||||
| %.txt.hh: %.txt | ||||
| 	../bin2c/bin2c helpText < $< > $@ || (rm $@ && exit 1) | ||||
| 
 | ||||
| AM_CXXFLAGS = \ | ||||
|  |  | |||
|  | @ -12,14 +12,12 @@ | |||
| typedef void (* Operation) (Strings opFlags, Strings opArgs); | ||||
| 
 | ||||
| 
 | ||||
| static void printHelp() | ||||
| void printHelp() | ||||
| { | ||||
|     cout << string((char *) helpText, sizeof helpText); | ||||
|     exit(0); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| static Path checkPath(const Path & arg) | ||||
| { | ||||
|     return arg; /* !!! check that arg is in the store */ | ||||
|  | @ -276,12 +274,6 @@ void run(Strings args) | |||
|             op = opInit; | ||||
|         else if (arg == "--verify") | ||||
|             op = opVerify; | ||||
|         else if (arg == "--verbose" || arg == "-v") | ||||
|             verbosity = (Verbosity) ((int) verbosity + 1); | ||||
|         else if (arg == "--keep-failed" || arg == "-K") | ||||
|             keepFailed = true; | ||||
|         else if (arg == "--help") | ||||
|             printHelp(); | ||||
|         else if (arg[0] == '-') | ||||
|             opFlags.push_back(arg); | ||||
|         else | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue