getopt-declare 1.09.7 → 1.12
Sign up to get free protection for your applications and to get access to all the features.
- data/Declare.rdoc +1861 -0
- data/HISTORY.txt +10 -0
- data/getoptdeclare.gemspec +22 -0
- data/lib/Getopt/Declare.rb +53 -39
- data/lib/Getopt/DelimScanner.rb +3 -3
- data/samples/cmdline_array.rb +26 -25
- data/samples/cmdline_basic.rb +31 -31
- data/samples/cmdline_code.rb +31 -31
- data/samples/cmdline_defer.rb +23 -23
- data/samples/cmdline_file.rb +38 -38
- data/samples/cmdline_finish.rb +14 -0
- data/samples/cmdline_inlines.rb +27 -24
- data/samples/cmdline_mid.rb +39 -39
- data/samples/cmdline_noargv.rb +29 -29
- data/samples/cmdline_parameters.rb +23 -23
- data/samples/cmdline_pvtype.rb +20 -20
- data/samples/cmdline_pvtype2.rb +20 -20
- data/samples/cmdline_regex.rb +27 -27
- data/samples/cmdline_singles.rb +28 -28
- data/samples/demo_cmdline.rb +70 -70
- data/samples/demo_csv.rb +49 -49
- data/samples/demo_interp.rb +44 -44
- data/samples/demo_shell.rb +37 -37
- metadata +31 -24
data/samples/cmdline_inlines.rb
CHANGED
@@ -1,24 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
def encode(t)
|
6
|
+
return Getopt::Declare.new(t,['-BUILD']).code
|
7
|
+
end
|
8
|
+
|
9
|
+
=begin
|
10
|
+
Just type in something, like:
|
11
|
+
|
12
|
+
=for Getopt::Declare
|
13
|
+
|
14
|
+
-a Append mode
|
15
|
+
=cut
|
16
|
+
|
17
|
+
=end
|
18
|
+
|
19
|
+
$/ = '=cut'
|
20
|
+
if t = $stdin.readline
|
21
|
+
x = t.sub( /^=for\s+Getopt::Declare\s*\n(.*?)\n/esm ) {
|
22
|
+
'(self,source) = []'+encode("#$1")
|
23
|
+
}
|
24
|
+
puts x
|
25
|
+
end
|
26
|
+
|
27
|
+
|
data/samples/cmdline_mid.rb
CHANGED
@@ -1,39 +1,39 @@
|
|
1
|
-
#!/
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
def delold
|
6
|
-
print "would have deleted\n"
|
7
|
-
end
|
8
|
-
|
9
|
-
args = Getopt::Declare.new(<<EOF)
|
10
|
-
|
11
|
-
-a Process all data
|
12
|
-
|
13
|
-
-b <n:n> Set mean byte length threshold to <N>
|
14
|
-
{ bytelen = n }
|
15
|
-
|
16
|
-
+c <FILE> Create new file <FILE>
|
17
|
-
|
18
|
-
--del Delete old file
|
19
|
-
{ delold(); }
|
20
|
-
|
21
|
-
delete [ditto]
|
22
|
-
|
23
|
-
e <w:i>x<h:i> Expand image to height <h> and width <w>
|
24
|
-
{ }
|
25
|
-
|
26
|
-
-F <file>... Process named file(s)
|
27
|
-
{ defer { file.each {|i|
|
28
|
-
process(i) } } }
|
29
|
-
|
30
|
-
=getrand [<n>] Get a random number
|
31
|
-
(or, optionally, <n> of them)
|
32
|
-
{ n = 1 unless !n.empty? }
|
33
|
-
|
34
|
-
-- Traditionally indicates end of arguments
|
35
|
-
{ finish }
|
36
|
-
|
37
|
-
EOF
|
38
|
-
|
39
|
-
print args.inspect
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
def delold
|
6
|
+
print "would have deleted\n"
|
7
|
+
end
|
8
|
+
|
9
|
+
args = Getopt::Declare.new(<<EOF)
|
10
|
+
|
11
|
+
-a Process all data
|
12
|
+
|
13
|
+
-b <n:n> Set mean byte length threshold to <N>
|
14
|
+
{ bytelen = n }
|
15
|
+
|
16
|
+
+c <FILE> Create new file <FILE>
|
17
|
+
|
18
|
+
--del Delete old file
|
19
|
+
{ delold(); }
|
20
|
+
|
21
|
+
delete [ditto]
|
22
|
+
|
23
|
+
e <w:i>x<h:i> Expand image to height <h> and width <w>
|
24
|
+
{ }
|
25
|
+
|
26
|
+
-F <file>... Process named file(s)
|
27
|
+
{ defer { file.each {|i|
|
28
|
+
process(i) } } }
|
29
|
+
|
30
|
+
=getrand [<n>] Get a random number
|
31
|
+
(or, optionally, <n> of them)
|
32
|
+
{ n = 1 unless !n.empty? }
|
33
|
+
|
34
|
+
-- Traditionally indicates end of arguments
|
35
|
+
{ finish }
|
36
|
+
|
37
|
+
EOF
|
38
|
+
|
39
|
+
print args.inspect
|
data/samples/cmdline_noargv.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
#!/
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
argv2 = '-in test'
|
6
|
-
|
7
|
-
# Parse options from another string instead of ARGV
|
8
|
-
args = Getopt::Declare.new(<<'EOPARAM', argv2 )
|
9
|
-
|
10
|
-
============================================================
|
11
|
-
-in <infile> Input file
|
12
|
-
-r[and[om]] Output in random order
|
13
|
-
-p[erm[ute]] Output all permutations
|
14
|
-
-out <outfile> Optional output file
|
15
|
-
============================================================
|
16
|
-
EOPARAM
|
17
|
-
|
18
|
-
puts args.inspect
|
19
|
-
|
20
|
-
# Parse options from another string instead of ARGV
|
21
|
-
argv3 = "-r -in argv3"
|
22
|
-
args.parse(argv3)
|
23
|
-
puts args.inspect
|
24
|
-
|
25
|
-
# Parse options from another array instead of ARGV
|
26
|
-
argv4 = [ '-in', 'opt with spaces' ]
|
27
|
-
|
28
|
-
args.parse(['-ARGV', argv4])
|
29
|
-
puts args.inspect
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
argv2 = '-in test'
|
6
|
+
|
7
|
+
# Parse options from another string instead of ARGV
|
8
|
+
args = Getopt::Declare.new(<<'EOPARAM', argv2 )
|
9
|
+
|
10
|
+
============================================================
|
11
|
+
-in <infile> Input file
|
12
|
+
-r[and[om]] Output in random order
|
13
|
+
-p[erm[ute]] Output all permutations
|
14
|
+
-out <outfile> Optional output file
|
15
|
+
============================================================
|
16
|
+
EOPARAM
|
17
|
+
|
18
|
+
puts args.inspect
|
19
|
+
|
20
|
+
# Parse options from another string instead of ARGV
|
21
|
+
argv3 = "-r -in argv3"
|
22
|
+
args.parse(argv3)
|
23
|
+
puts args.inspect
|
24
|
+
|
25
|
+
# Parse options from another array instead of ARGV
|
26
|
+
argv4 = [ '-in', 'opt with spaces' ]
|
27
|
+
|
28
|
+
args.parse(['-ARGV', argv4])
|
29
|
+
puts args.inspect
|
@@ -1,23 +1,23 @@
|
|
1
|
-
#!/
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
specification = %q%
|
6
|
-
-list <l>... ttt
|
7
|
-
-out <out> ttt
|
8
|
-
in=<infile> ttt
|
9
|
-
+range <from>..<to> ttt
|
10
|
-
--lines <start> - <stop> ttt
|
11
|
-
ignore bad lines ttt
|
12
|
-
<outfile> ttt
|
13
|
-
-copy <files>... <dir> copy files to dir
|
14
|
-
-range <from:i> [[..] [<to:i>] ] opt. range
|
15
|
-
{ to = 10 if to == "" }
|
16
|
-
|
17
|
-
%
|
18
|
-
|
19
|
-
|
20
|
-
args = Getopt::Declare.new(specification)
|
21
|
-
|
22
|
-
|
23
|
-
puts args.inspect
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
specification = %q%
|
6
|
+
-list <l>... ttt
|
7
|
+
-out <out> ttt
|
8
|
+
in=<infile> ttt
|
9
|
+
+range <from>..<to> ttt
|
10
|
+
--lines <start> - <stop> ttt
|
11
|
+
ignore bad lines ttt
|
12
|
+
<outfile> ttt
|
13
|
+
-copy <files>... <dir> copy files to dir
|
14
|
+
-range <from:i> [[..] [<to:i>] ] opt. range
|
15
|
+
{ to = 10 if to == "" }
|
16
|
+
|
17
|
+
%
|
18
|
+
|
19
|
+
|
20
|
+
args = Getopt::Declare.new(specification)
|
21
|
+
|
22
|
+
|
23
|
+
puts args.inspect
|
data/samples/cmdline_pvtype.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
#!/
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
args = Getopt::Declare.new( <<'EOPARAM' )
|
6
|
-
[pvtype: type /AB|[OAB]/ ]
|
7
|
-
[pvtype: Rh? /Rh[+-]/ ]
|
8
|
-
|
9
|
-
|
10
|
-
}
|
11
|
-
|
12
|
-
|
13
|
-
-donated <d:days> Days since last donation
|
14
|
-
-applied <a:days> Days since applied to donate
|
15
|
-
|
16
|
-
-blood <type:type> [<rh:Rh?>] Specify blood type
|
17
|
-
and (optionally) rhesus factor
|
18
|
-
EOPARAM
|
19
|
-
|
20
|
-
print args.inspect
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
args = Getopt::Declare.new( <<'EOPARAM' )
|
6
|
+
[pvtype: type /AB|[OAB]/ ]
|
7
|
+
[pvtype: Rh? /Rh[+-]/ ]
|
8
|
+
[pvtype: days :+i {
|
9
|
+
reject( (_VAL_ < 14)," #{_PARAM_} (too soon!)" )
|
10
|
+
}
|
11
|
+
]
|
12
|
+
|
13
|
+
-donated <d:days> Days since last donation
|
14
|
+
-applied <a:days> Days since applied to donate
|
15
|
+
|
16
|
+
-blood <type:type> [<rh:Rh?>] Specify blood type
|
17
|
+
and (optionally) rhesus factor
|
18
|
+
EOPARAM
|
19
|
+
|
20
|
+
print args.inspect
|
data/samples/cmdline_pvtype2.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
#!/
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
specification = %q(
|
6
|
-
[strict]
|
7
|
-
[pvtype: num /\d+/ { reject if Time.new.localtime.day==3 } ]
|
8
|
-
[pvtype: 'a num' :n { puts "a num!" } ]
|
9
|
-
[pvtype: %q{nbr} :'a num' { reject $no_nbr } ]
|
10
|
-
|
11
|
-
-count1 <n:num> test
|
12
|
-
-count2 <n:a num> test2
|
13
|
-
-count3 <n:nbr> test3
|
14
|
-
|
15
|
-
)
|
16
|
-
|
17
|
-
args = Getopt::Declare.new(specification)
|
18
|
-
|
19
|
-
print args.inspect
|
20
|
-
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
specification = %q(
|
6
|
+
[strict]
|
7
|
+
[pvtype: num /\d+/ { reject if Time.new.localtime.day==3 } ]
|
8
|
+
[pvtype: 'a num' :n { puts "a num!" } ]
|
9
|
+
[pvtype: %q{nbr} :'a num' { reject $no_nbr } ]
|
10
|
+
|
11
|
+
-count1 <n:num> test
|
12
|
+
-count2 <n:a num> test2
|
13
|
+
-count3 <n:nbr> test3
|
14
|
+
|
15
|
+
)
|
16
|
+
|
17
|
+
args = Getopt::Declare.new(specification)
|
18
|
+
|
19
|
+
print args.inspect
|
20
|
+
|
data/samples/cmdline_regex.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
|
-
#!/
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
specification = <<-'EOFPARAMS'
|
6
|
-
-ar <r:n> Set aspect ratio (will be clipped to [0..1] )
|
7
|
-
{
|
8
|
-
r = 0 if r < 0
|
9
|
-
r = 1 if r > 1
|
10
|
-
}
|
11
|
-
-w <pixels:+i> Specify width in pixels
|
12
|
-
-h <pixels:+i> Specify height in pixels
|
13
|
-
-list <all:i>... list of numbers
|
14
|
-
-range <from:i> [- [<to:i>] ] opt. range
|
15
|
-
{ to = 10 if to
|
16
|
-
-parity <p:/even|odd|both/> Set parity (<p> must be "even",
|
17
|
-
"odd" or "both")
|
18
|
-
-file <name:/\w*\.[A-Z]{3}/> File name must have a three-
|
19
|
-
capital-letter extension
|
20
|
-
-find <what:/(%T.)+/> ; look ahead test
|
21
|
-
|
22
|
-
EOFPARAMS
|
23
|
-
|
24
|
-
|
25
|
-
args = Getopt::Declare.new(specification)
|
26
|
-
|
27
|
-
print args.inspect
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
specification = <<-'EOFPARAMS'
|
6
|
+
-ar <r:n> Set aspect ratio (will be clipped to [0..1] )
|
7
|
+
{
|
8
|
+
r = 0 if r < 0
|
9
|
+
r = 1 if r > 1
|
10
|
+
}
|
11
|
+
-w <pixels:+i> Specify width in pixels
|
12
|
+
-h <pixels:+i> Specify height in pixels
|
13
|
+
-list <all:i>... list of numbers
|
14
|
+
-range <from:i> [- [<to:i>] ] opt. range
|
15
|
+
{ to = 10 if to == 0 }
|
16
|
+
-parity <p:/even|odd|both/> Set parity (<p> must be "even",
|
17
|
+
"odd" or "both")
|
18
|
+
-file <name:/\w*\.[A-Z]{3}/> File name must have a three-
|
19
|
+
capital-letter extension
|
20
|
+
-find <what:/(%T.)+/> ; look ahead test
|
21
|
+
|
22
|
+
EOFPARAMS
|
23
|
+
|
24
|
+
|
25
|
+
args = Getopt::Declare.new(specification)
|
26
|
+
|
27
|
+
print args.inspect
|
data/samples/cmdline_singles.rb
CHANGED
@@ -1,28 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
# In the next example, only the <tt>-a</tt> and <tt>-b</tt> parameters may be clustered.
|
6
|
-
# The <tt>-bu</tt> parameter is excluded because it consists of more than one
|
7
|
-
# letter, whilst the <tt>-c</tt> and <tt>-d</tt> parameters are excluded because they
|
8
|
-
# take (or may take, in <tt>-d</tt>'s case) a variable. The <tt>-e[xec]</tt> parameter
|
9
|
-
# is excluded because it may take a trailing punctuator (<tt>[xec]</tt>).
|
10
|
-
#
|
11
|
-
# By comparison, if the directive had been <tt>[cluster: flags]</tt>, then
|
12
|
-
# <tt>-bu</tt> _could_ be clustered, though <tt>-c</tt>, <tt>-d</tt> and <tt>-e[xec]</tt> would
|
13
|
-
# still be excluded since they are not "pure flags").
|
14
|
-
#
|
15
|
-
|
16
|
-
args = Getopt::Declare.new( <<-'EOSPEC' )
|
17
|
-
|
18
|
-
-a Append mode
|
19
|
-
-b Back-up mode
|
20
|
-
-bu [ditto]
|
21
|
-
-c <file> Copy mode
|
22
|
-
-d [<file>] Delete mode
|
23
|
-
-e[xec] Execute mode
|
24
|
-
|
25
|
-
[cluster:singles]
|
26
|
-
EOSPEC
|
27
|
-
|
28
|
-
print args.inspect
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
# In the next example, only the <tt>-a</tt> and <tt>-b</tt> parameters may be clustered.
|
6
|
+
# The <tt>-bu</tt> parameter is excluded because it consists of more than one
|
7
|
+
# letter, whilst the <tt>-c</tt> and <tt>-d</tt> parameters are excluded because they
|
8
|
+
# take (or may take, in <tt>-d</tt>'s case) a variable. The <tt>-e[xec]</tt> parameter
|
9
|
+
# is excluded because it may take a trailing punctuator (<tt>[xec]</tt>).
|
10
|
+
#
|
11
|
+
# By comparison, if the directive had been <tt>[cluster: flags]</tt>, then
|
12
|
+
# <tt>-bu</tt> _could_ be clustered, though <tt>-c</tt>, <tt>-d</tt> and <tt>-e[xec]</tt> would
|
13
|
+
# still be excluded since they are not "pure flags").
|
14
|
+
#
|
15
|
+
|
16
|
+
args = Getopt::Declare.new( <<-'EOSPEC' )
|
17
|
+
|
18
|
+
-a Append mode
|
19
|
+
-b Back-up mode
|
20
|
+
-bu [ditto]
|
21
|
+
-c <file> Copy mode
|
22
|
+
-d [<file>] Delete mode
|
23
|
+
-e[xec] Execute mode
|
24
|
+
|
25
|
+
[cluster:singles]
|
26
|
+
EOSPEC
|
27
|
+
|
28
|
+
print args.inspect
|
data/samples/demo_cmdline.rb
CHANGED
@@ -1,70 +1,70 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require "Getopt/Declare"
|
4
|
-
|
5
|
-
$VERSION = "1.00b";
|
6
|
-
|
7
|
-
config = Getopt::Declare.new( <<'EOCONFIG', ['-CONFIG']);
|
8
|
-
[strict]
|
9
|
-
min = <n> Minimum value [required]
|
10
|
-
max = <n> Maximum value
|
11
|
-
|
12
|
-
EOCONFIG
|
13
|
-
|
14
|
-
print "min: ", config['min'], "\n" if config['min']
|
15
|
-
print "max: ", config['max'], "\n" if config['max']
|
16
|
-
|
17
|
-
args = Getopt::Declare.new( <<'EOARGS' )
|
18
|
-
General options:
|
19
|
-
[tight]
|
20
|
-
-e <f:i>..<t:i> Set expansion factor to specified range
|
21
|
-
[requires: <file>]
|
22
|
-
{ puts "k = [#{f}..#{t}]" }
|
23
|
-
|
24
|
-
-e [<k:n>...] Set expansion factor to <k> (or 2 by default)
|
25
|
-
[required]
|
26
|
-
{ k = [2] unless k
|
27
|
-
print "k = [", k.join(','), "]\n"; }
|
28
|
-
|
29
|
-
-b <blen:i> Use byte length of <blen>
|
30
|
-
[excludes: -a +c]
|
31
|
-
{ print "byte len: #{blen}\n"; }
|
32
|
-
|
33
|
-
<file>... Process files [required] [implies: -a]
|
34
|
-
{ print "files: #{file}\n"; }
|
35
|
-
|
36
|
-
-a [<n:n>] Process all data [except item <n>]
|
37
|
-
{ print "proc all\n"; print "except #{n}\n" if n }
|
38
|
-
|
39
|
-
-fab The fabulous option (is always required :-)
|
40
|
-
[required]
|
41
|
-
{ defer { print "fabulous!\n" } }
|
42
|
-
|
43
|
-
File creation options:
|
44
|
-
|
45
|
-
+c <file> Create file [mutex: +c -a]
|
46
|
-
{ print "create: file\n"; }
|
47
|
-
|
48
|
-
+d <file> Duplicate file [implies: -a and -b 8]
|
49
|
-
This is a second line
|
50
|
-
{ print "dup (+d) $file\n"; }
|
51
|
-
--dup <file> [ditto] (long form)
|
52
|
-
|
53
|
-
-how <n:i> Set height to <n> [repeatable]
|
54
|
-
|
55
|
-
Garbling options:
|
56
|
-
|
57
|
-
-g [<seed:i>] Garble output with optional seed [requires: +c]
|
58
|
-
{ print "garbling with $seed\n"; }
|
59
|
-
-i Case insensitive garbling [required]
|
60
|
-
{ print "insensitive\n"; }
|
61
|
-
-s Case sensitive garbling
|
62
|
-
-w WaReZ m0De 6aRBL1N6
|
63
|
-
|
64
|
-
[mutex: -i -s -w]
|
65
|
-
EOARGS
|
66
|
-
|
67
|
-
print args.unused
|
68
|
-
|
69
|
-
#args.usage();
|
70
|
-
__END__
|
1
|
+
#!/bin/env ruby
|
2
|
+
|
3
|
+
require "Getopt/Declare"
|
4
|
+
|
5
|
+
$VERSION = "1.00b";
|
6
|
+
|
7
|
+
config = Getopt::Declare.new( <<'EOCONFIG', ['-CONFIG']);
|
8
|
+
[strict]
|
9
|
+
min = <n> Minimum value [required]
|
10
|
+
max = <n> Maximum value
|
11
|
+
|
12
|
+
EOCONFIG
|
13
|
+
|
14
|
+
print "min: ", config['min'], "\n" if config['min']
|
15
|
+
print "max: ", config['max'], "\n" if config['max']
|
16
|
+
|
17
|
+
args = Getopt::Declare.new( <<'EOARGS' )
|
18
|
+
General options:
|
19
|
+
[tight]
|
20
|
+
-e <f:i>..<t:i> Set expansion factor to specified range
|
21
|
+
[requires: <file>]
|
22
|
+
{ puts "k = [#{f}..#{t}]" }
|
23
|
+
|
24
|
+
-e [<k:n>...] Set expansion factor to <k> (or 2 by default)
|
25
|
+
[required]
|
26
|
+
{ k = [2] unless k
|
27
|
+
print "k = [", k.join(','), "]\n"; }
|
28
|
+
|
29
|
+
-b <blen:i> Use byte length of <blen>
|
30
|
+
[excludes: -a +c]
|
31
|
+
{ print "byte len: #{blen}\n"; }
|
32
|
+
|
33
|
+
<file>... Process files [required] [implies: -a]
|
34
|
+
{ print "files: #{file}\n"; }
|
35
|
+
|
36
|
+
-a [<n:n>] Process all data [except item <n>]
|
37
|
+
{ print "proc all\n"; print "except #{n}\n" if n }
|
38
|
+
|
39
|
+
-fab The fabulous option (is always required :-)
|
40
|
+
[required]
|
41
|
+
{ defer { print "fabulous!\n" } }
|
42
|
+
|
43
|
+
File creation options:
|
44
|
+
|
45
|
+
+c <file> Create file [mutex: +c -a]
|
46
|
+
{ print "create: file\n"; }
|
47
|
+
|
48
|
+
+d <file> Duplicate file [implies: -a and -b 8]
|
49
|
+
This is a second line
|
50
|
+
{ print "dup (+d) $file\n"; }
|
51
|
+
--dup <file> [ditto] (long form)
|
52
|
+
|
53
|
+
-how <n:i> Set height to <n> [repeatable]
|
54
|
+
|
55
|
+
Garbling options:
|
56
|
+
|
57
|
+
-g [<seed:i>] Garble output with optional seed [requires: +c]
|
58
|
+
{ print "garbling with $seed\n"; }
|
59
|
+
-i Case insensitive garbling [required]
|
60
|
+
{ print "insensitive\n"; }
|
61
|
+
-s Case sensitive garbling
|
62
|
+
-w WaReZ m0De 6aRBL1N6
|
63
|
+
|
64
|
+
[mutex: -i -s -w]
|
65
|
+
EOARGS
|
66
|
+
|
67
|
+
print args.unused
|
68
|
+
|
69
|
+
#args.usage();
|
70
|
+
__END__
|