diff --git a/src/_git-journal b/src/_git-journal new file mode 100644 index 0000000..8360639 --- /dev/null +++ b/src/_git-journal @@ -0,0 +1,190 @@ +#compdef git-journal + +_git-journal() { + typeset -A opt_args + local ret=1 + + local context curcontext="$curcontext" state line + _arguments -s -S -C \ +"-p+[Sets a custom working path.]" \ +"--path+[Sets a custom working path.]" \ +"-n+[The number of tags until the parser stops when a single revision is given.]" \ +"--tags-count+[The number of tags until the parser stops when a single revision is given.]" \ +"-e+[A pattern to exclude git tags from the processing.]" \ +"-t+[Use a custom output template.]" \ +"--template+[Use a custom output template.]" \ +"-o+[The output file for the changelog.]" \ +"--output+[The output file for the changelog.]" \ +"-a[Do not stop parsing at the first tag when a single revision is given. Overwrites '-n/--tags-count'.]" \ +"--all[Do not stop parsing at the first tag when a single revision is given. Overwrites '-n/--tags-count'.]" \ +"-g[Generate a fresh output template from a commit range.]" \ +"--generate[Generate a fresh output template from a commit range.]" \ +"-s[Print only the shortlog (summary) form.]" \ +"--short[Print only the shortlog (summary) form.]" \ +"-u[Skip entries without any relation to a git TAG.]" \ +"--skip-unreleased[Skip entries without any relation to a git TAG.]" \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +"1:: :_git-journal_commands" \ +"*:: :->git-journal" \ +&& ret=0 + case $state in + (git-journal) + curcontext="${curcontext%:*:*}:git-journal-command-$words[1]:" + case $line[1] in + (p) +_arguments -s -S -C \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +"1:: :_git-journal_prepare_commands" \ +&& ret=0 +;; +(prepare) +_arguments -s -S -C \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +"1:: :_git-journal_prepare_commands" \ +&& ret=0 +;; +(s) +_arguments -s -S -C \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +&& ret=0 +;; +(setup) +_arguments -s -S -C \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +&& ret=0 +;; +(v) +_arguments -s -S -C \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +"1:: :_git-journal_verify_commands" \ +&& ret=0 +;; +(verify) +_arguments -s -S -C \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +"1:: :_git-journal_verify_commands" \ +&& ret=0 +;; +(help) +_arguments -s -S -C \ +"-h[Prints help information]" \ +"--help[Prints help information]" \ +"-V[Prints version information]" \ +"--version[Prints version information]" \ +&& ret=0 +;; + esac + ;; +esac +} + +(( $+functions[_git-journal_commands] )) || +_git-journal_commands() { + local commands; commands=( + "prepare:Prepare a commit message before the user can edit it." \ +"p:Prepare a commit message before the user can edit it." \ +"setup:Creates all necessary git hooks and an initial configuration file. Shell completions for bash and fish will be available inside the current working directory." \ +"s:Creates all necessary git hooks and an initial configuration file. Shell completions for bash and fish will be available inside the current working directory." \ +"verify:Verify the specified commit message." \ +"v:Verify the specified commit message." \ +"help:Prints this message or the help of the given subcommand(s)" \ +"REVISION_RANGE:Specifies the revision range to be processed. If a single revision is specified, the output will stop at the first following git TAG." \ + ) + _describe -t commands 'git-journal commands' commands "$@" +} +(( $+functions[_git-journal_help_commands] )) || +_git-journal_help_commands() { + local commands; commands=( + + ) + _describe -t commands 'git-journal help commands' commands "$@" +} +(( $+functions[_git-journal_p_commands] )) || +_git-journal_p_commands() { + local commands; commands=( + "MESSAGE:The path to the commit message which should be prepared." \ +"TYPE:The type of the commit. For example "message"." \ + ) + _describe -t commands 'git-journal p commands' commands "$@" +} +(( $+functions[_p_commands] )) || +_p_commands() { + local commands; commands=( + "MESSAGE:The path to the commit message which should be prepared." \ +"TYPE:The type of the commit. For example "message"." \ + ) + _describe -t commands 'p commands' commands "$@" +} +(( $+functions[_git-journal_prepare_commands] )) || +_git-journal_prepare_commands() { + local commands; commands=( + "MESSAGE:The path to the commit message which should be prepared." \ +"TYPE:The type of the commit. For example "message"." \ + ) + _describe -t commands 'git-journal prepare commands' commands "$@" +} +(( $+functions[_git-journal_s_commands] )) || +_git-journal_s_commands() { + local commands; commands=( + + ) + _describe -t commands 'git-journal s commands' commands "$@" +} +(( $+functions[_s_commands] )) || +_s_commands() { + local commands; commands=( + + ) + _describe -t commands 's commands' commands "$@" +} +(( $+functions[_git-journal_setup_commands] )) || +_git-journal_setup_commands() { + local commands; commands=( + + ) + _describe -t commands 'git-journal setup commands' commands "$@" +} +(( $+functions[_git-journal_v_commands] )) || +_git-journal_v_commands() { + local commands; commands=( + "MESSAGE:The path to the commit message which should be prepared." \ + ) + _describe -t commands 'git-journal v commands' commands "$@" +} +(( $+functions[_v_commands] )) || +_v_commands() { + local commands; commands=( + "MESSAGE:The path to the commit message which should be prepared." \ + ) + _describe -t commands 'v commands' commands "$@" +} +(( $+functions[_git-journal_verify_commands] )) || +_git-journal_verify_commands() { + local commands; commands=( + "MESSAGE:The path to the commit message which should be prepared." \ + ) + _describe -t commands 'git-journal verify commands' commands "$@" +} + +_git-journal "$@" \ No newline at end of file