From 600af502aaedcc496ac3dc0771888de978f3e31c Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 3 Dec 2014 10:57:37 +0100 Subject: add completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- Makefile | 29 +++++++++++++++++++++++++++-- src/completion | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/completion diff --git a/Makefile b/Makefile index ba128c6..8efdab5 100644 --- a/Makefile +++ b/Makefile @@ -50,10 +50,10 @@ FLAGS = $(WARN) -std=gnu99 .PHONY: default -default: command +default: command shell .PHONY: all -all: command +all: command shell .PHONY: command @@ -68,6 +68,31 @@ obj/%.o: src/%.c $(CC) $(FLAGS) $(COPTIMISE) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) +.PHONY: shell +shell: bash zsh fish + +.PHONY: bash +bash: bin/$(COMMAND).bash + +.PHONY: zsh +zsh: bin/$(COMMAND).zsh + +.PHONY: fish +fish: bin/$(COMMAND).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: diff --git a/src/completion b/src/completion new file mode 100644 index 0000000..8af4b9d --- /dev/null +++ b/src/completion @@ -0,0 +1,33 @@ +; krandom – Keccak-based userspace pseudorandom number generator +; Copyright © 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 . + + +((value command) + + (multiple unargumented + ((options -h --help) (complete --help) (desc 'Display option summary')) + ((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')) + ) +) + -- cgit v1.2.3-70-g09d2