diff options
Diffstat (limited to '')
-rw-r--r-- | DEPENDENCIES | 1 | ||||
-rw-r--r-- | Makefile | 34 | ||||
-rw-r--r-- | TODO | 1 | ||||
-rw-r--r-- | src/completion | 39 |
4 files changed, 73 insertions, 2 deletions
diff --git a/DEPENDENCIES b/DEPENDENCIES index 11e3096..af01046 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -1,4 +1,5 @@ https://github.com/maandree/libkeccak https://github.com/maandree/argparser +https://github.com/maandree/auto-auto-complete libc @@ -29,9 +29,15 @@ CMDS = keccak-224sum keccak-256sum keccak-384sum keccak-512sum keccaksum \ +.PHONY: default +default: command shell + .PHONY: all -all: $(foreach C,$(CMDS),bin/$(C)) +all: command shell + +.PHONY: command +commands: $(foreach C,$(CMDS),bin/$(C)) bin/%: obj/%.o obj/common.o @mkdir -p bin @@ -42,6 +48,32 @@ obj/%.o: src/%.c src/*.h $(CC) $(FLAGS) $(COPTIMISE) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) +.PHONY: shell +shell: bash zsh fish + +.PHONY: bash +bash: $(foreach C,$(CMDS),bin/$(C).bash) + +.PHONY: zsh +zsh: $(foreach C,$(CMDS),bin/$(C).zsh) + +.PHONY: fish +fish: $(foreach C,$(CMDS),bin/$(C).fish) + +bin/%.bash: src/completion + @mkdir -p bin + auto-auto-complete bash --output $@ --source $< command=$* + +bin/%.zsh: src/completion + @mkdir -p bin + auto-auto-complete zsh --output $@ --source $< command=$* + +bin/%.fish: src/completion + @mkdir -p bin + auto-auto-complete fish --output $@ --source $< command=$* + + + .PHONY: clean clean: -rm -r bin obj @@ -1,3 +1,2 @@ -use auto-auto-complete write manuals diff --git a/src/completion b/src/completion new file mode 100644 index 0000000..fdc9852 --- /dev/null +++ b/src/completion @@ -0,0 +1,39 @@ +; sha3sum – SHA-3 (Keccak) checksum calculator +; +; Copyright © 2013, 2014 Mattias Andrée (maandree@member.fsf.org) +; +; This program is free software: you can redistribute it and/or modify +; it under the terms of the GNU Affero General Public License as published by +; the Free Software Foundation, either version 3 of the License, or +; (at your option) any later version. +; +; This program is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU Affero General Public License for more details. +; +; You should have received a copy of the GNU Affero General Public License +; along with this program. If not, see <http://www.gnu.org/licenses/>. + + +((value command) + + (multiple unargumented + ((options -h --help) (complete --help) (desc 'Display option summary')) + ((options -U --upper --uppercase --upper-case) (complete --upper-case) (desc 'Use upper-case output')) + ((options -L --lower --lowercase --lower-case) (complete --lower-case) (desc 'Use lower-case output')) + ((options -B --binary) (complete --binary) (desc 'Use binary output')) + ((options -X --hex --hex-input) (complete --hex-input) (desc 'Use hexadecimal input')) + ((options -V --verbose) (complete --verbose) (desc 'Be verbose')) + ) + + (multiple argumented + ((options -r --bitrate --rate) (complete --rate) (arg RATE) (files -0) (desc 'Select rate')) + ((options -c --capacity) (complete --capacity) (arg CAPACITY) (files -0) (desc 'Select capacity')) + ((options -n -o --output-size --output) (complete --output-size) (arg SIZE) (files -0) (desc 'Select output size')) + ((options -s -b --state-size --state) (complete --state-size) (arg SIZE) (files -0) (desc 'Select state size')) + ((options -w --word-size --word) (complete --word-size) (arg SIZE) (files -0) (desc 'Select word size')) + ((options -z --squeezes) (complete --squeezes) (arg COUNT) (files -0) (desc 'Select squeeze count')) + ) +) + |