From cc6ec893c5e712cc74a3483ba21d1396ae22304e Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Thu, 18 Aug 2011 19:10:51 -0700 Subject: [PATCH] command-line: interpret "-help" or "--help" and print a brief usage message with the most common options --- basis/bootstrap/finish-bootstrap.factor | 16 +---------- basis/command-line/command-line.factor | 38 ++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/basis/bootstrap/finish-bootstrap.factor b/basis/bootstrap/finish-bootstrap.factor index 387903d1e9..b64de97622 100644 --- a/basis/bootstrap/finish-bootstrap.factor +++ b/basis/bootstrap/finish-bootstrap.factor @@ -4,19 +4,5 @@ namespaces eval kernel vocabs.loader io ; [ boot do-startup-hooks - [ - (command-line) parse-command-line - load-vocab-roots - run-user-init - - "e" get script get or [ - "e" get [ eval( -- ) ] when* - script get [ run-script ] when* - ] [ - "run" get run - ] if - - output-stream get [ stream-flush ] when* - 0 exit - ] [ print-error 1 exit ] recover + [ command-line-startup ] [ print-error 1 exit ] recover ] set-startup-quot diff --git a/basis/command-line/command-line.factor b/basis/command-line/command-line.factor index e902bbc396..eb0231c4c8 100644 --- a/basis/command-line/command-line.factor +++ b/basis/command-line/command-line.factor @@ -3,7 +3,7 @@ USING: init continuations hashtables io io.encodings.utf8 io.files io.pathnames kernel kernel.private namespaces parser sequences source-files strings system splitting vocabs.loader -alien.strings accessors ; +alien.strings accessors eval ; IN: command-line SYMBOL: script @@ -71,3 +71,39 @@ SYMBOL: main-vocab-hook ] bind ; [ default-cli-args ] "command-line" add-startup-hook + +: cli-usage ( -- ) +""" +Usage: """ write vm file-name write """ [Factor arguments] [script] [script arguments] + +Common arguments: + -help print this message and exit + -i= load Factor image file (default """ write vm file-name write """.image) + -run= run the MAIN: entry point of + -e= evaluate + -quiet suppress "Loading vocab.factor" messages + -no-user-init suppress loading of .factor-rc + +Enter + "command-line" help +from within Factor for more information. + +""" write ; + +: command-line-startup ( -- ) + (command-line) parse-command-line + load-vocab-roots + run-user-init + + "help" get "-help" get or "h" get or [ cli-usage ] [ + "e" get script get or [ + "e" get [ eval( -- ) ] when* + script get [ run-script ] when* + ] [ + "run" get run + ] if + ] if + + output-stream get [ stream-flush ] when* + 0 exit ; +