Feature #9960

Add support for GNU --long options

Added by Jari Aalto 11 months ago. Updated 11 months ago.

[ruby-core:63244]
Status:Feedback
Priority:Low
Assignee:-

Description

Please consider adding GNU --long option equivalents. Notes:

  • Prefer uppercase "V" for version, as small "v" is customarily user for --verbose.
  • Change word "switches" into more commonly used "options" word in USAGE line.

SUGGESTIONS

Usage: ruby [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)

  -a, --autosplit
        autosplit mode with -n or -p (splits $_ into $F)

  -c, --check
        check syntax only

  -Cdirectory, --directory DIRECTORY
        cd to directory before executing your script

  -d, --debug
        set debugging flags (set $DEBUG to true)

  -e 'command', --eval
        one line of script. Several -e's allowed. Omit [programfile]

  -Eex[:in], --encoding [EXTERNAL:INTERNAL]       
        specify the default external and internal character encodings

  -Fpattern, --autosplit-pattern PATTERN
        split() pattern for autosplit (-a)

  -i[extension], --in-place [EXTENSION]
        edit ARGV files in place (make backup if extension supplied)

  -Idirectory, --include DIRECTORY
        specify $LOAD_PATH directory (may be used more than once)

  -l, --eol-processing
        enable line ending processing

  -n, --autoloop-noprint
        assume 'while gets(); ... end' loop around your script

  -p, --autoloop
        assume loop like -n but print line also like sed

  -rlibrary, --require LIBRARY
        require the library before executing your script

  -s, --switch-parse
        enable some switch parsing for switches after script name

  -S, --search-path
        look for the script using PATH environment variable

  -T[level=1], --taint [NUMBER]
        turn on tainting checks

  -V, --version
        print version number, then turn on verbose mode

  -w, --warning
        turn warnings on for your script

  -W[level=2], --warning-level [NUMBER]
        set warning level; 0=silence, 1=medium, 2=verbose

  -x[directory], --extract [DIRECTORY]
        strip off text before #!ruby line and perhaps cd to directory

  -h, --help
        show this message, --help for more info

History

#1 Updated by Jari Aalto 11 months ago

[With markup]

Please consider adding GNU --long option equivalents. Notes:

  • Prefer uppercase "V" for version, as small "v" is customarily user for --verbose.
  • Change word "switches" into more commonly used "options" word in USAGE line.

SUGGESTIONS

Usage: ruby [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)

  -a, --autosplit
        autosplit mode with -n or -p (splits $_ into $F)

  -c, --check
        check syntax only

  -Cdirectory, --directory DIRECTORY
        cd to directory before executing your script

  -d, --debug
        set debugging flags (set $DEBUG to true)

  -e 'command', --eval
        one line of script. Several -e's allowed. Omit [programfile]

  -Eex[:in], --encoding [EXTERNAL:INTERNAL]       
        specify the default external and internal character encodings

  -Fpattern, --autosplit-pattern PATTERN
        split() pattern for autosplit (-a)

  -i[extension], --in-place [EXTENSION]
        edit ARGV files in place (make backup if extension supplied)

  -Idirectory, --include DIRECTORY
        specify $LOAD_PATH directory (may be used more than once)

  -l, --eol-processing
        enable line ending processing

  -n, --autoloop-noprint
        assume 'while gets(); ... end' loop around your script

  -p, --autoloop
        assume loop like -n but print line also like sed

  -rlibrary, --require LIBRARY
        require the library before executing your script

  -s, --switch-parse
        enable some switch parsing for switches after script name

  -S, --search-path
        look for the script using PATH environment variable

  -T[level=1], --taint [NUMBER]
        turn on tainting checks

  -V, --version
        print version number, then turn on verbose mode

  -w, --warning
        turn warnings on for your script

  -W[level=2], --warning-level [NUMBER]
        set warning level; 0=silence, 1=medium, 2=verbose

  -x[directory], --extract [DIRECTORY]
        strip off text before #!ruby line and perhaps cd to directory

  -h, --help
        show this message, --help for more info

#2 Updated by Nobuyoshi Nakada 11 months ago

  • Description updated (diff)
  • Status changed from Open to Feedback
  • Priority changed from Normal to Low

Jari Aalto wrote:

Please consider adding GNU --long option equivalents. Notes:

  • Prefer uppercase "V" for version, as small "v" is customarily user for --verbose.

What do you mean by "customarily user"?
Options for ruby cannot be customized by users.

#3 Updated by Nobuyoshi Nakada 11 months ago

Jari Aalto wrote:

  • Prefer uppercase "V" for version, as small "v" is customarily user for --verbose.

'-v' is verbose option now.

#4 Updated by Andrew Vit 11 months ago

@nobu "customarily" means "commonly" (English noun "a custom" vs. adjective "custom": a traditional and widely accepted way of behaving or doing something that is specific to a particular society, place, or time)

It is true that most often -v means --verbose and -V means --version but it's not consistent, and not sure it's worth changing now.

#5 Updated by Yusuke Endoh 11 months ago

Prefer uppercase "V" for version, as small "v" is customarily user for --verbose.

I don't think the convention is common. I investigated some compilers and interpreters:

-v users:

  • ruby: -v, --version
  • perl: -v, -version, --version
  • lua: -v
  • php: -v, --version
  • guile: -v, --version
  • gst: -v, -version, --version
  • coffee: -v, -version, --version
  • gforth: -v, -version, --version
  • groovy: -v, -version, --version
  • nodejs: -v, --version
  • ocamlc: -v, -version, -vnum
  • octave: -v, -version, --version
  • pike: -v, --version, -version
  • tcc: -v, -version

-V users:

  • python: -V, --version
  • gosh: -V
  • iverilog: -V
  • gawk: -V --version
  • cobc: -V, -version, --version
  • ghc: -V, --version
  • icont: -V
  • parrot: -V, --version

others that do not use -V nor -v:

  • scala: -version
  • valac: --version
  • gcc: --version
  • mcs: --version
  • clisp: --version
  • gfortran: --version
  • javac: -version
  • fpc: -iV
  • R: --version

Especially, some GNU projects (guile, GNU Smalltalk, and gforth) use "V" for verbose, and "v" for version.

Yusuke Endoh mame@ruby-lang.org

Also available in: Atom PDF