completely 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/README.md +130 -0
 - data/bin/completely +16 -0
 - data/lib/completely.rb +9 -0
 - data/lib/completely/cli.rb +11 -0
 - data/lib/completely/command.rb +72 -0
 - data/lib/completely/completions.rb +45 -0
 - data/lib/completely/sample.yaml +24 -0
 - data/lib/completely/template.erb +20 -0
 - data/lib/completely/version.rb +3 -0
 - metadata +94 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: cd3ae4ec92d7318bd4ef32fdd465d9bff3341931f5f965d2db8f263c1b95e38b
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 01ccb2fa2e1f050b7a45944b552590fad6aab9bafc90ef4cb98b8d6284200392
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: fd06256b9cb4c42364d118ea1392b180ef662e98b2ea9c6b24ca815f5fa5cf1f16d6c0a6792090c9bc5f376ab7dfb04e9b8c732cb83292140acb59676d6090a9
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b1985849259627803ebe3f7c56b4adc98137456b172fb36cbf1379b4677257dca6cc671d85a12106596fb246de02aad07c5e9d51c5dd0abc7301518d9b7529b2
         
     | 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,130 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Completely - Bash Completions Generator
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            [](https://badge.fury.io/rb/completely)
         
     | 
| 
      
 4 
     | 
    
         
            +
            [](https://github.com/DannyBen/completely/actions?query=workflow%3ATest)
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            ---
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Completely is a command line utility and a Ruby library that lets you generate
         
     | 
| 
      
 9 
     | 
    
         
            +
            bash completion scripts from simple YAML configuration.
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            This tool is for you it:
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            1. You develop your own command line tools.
         
     | 
| 
      
 14 
     | 
    
         
            +
            2. Your life feels empty without bash completions.
         
     | 
| 
      
 15 
     | 
    
         
            +
            3. Bash completion scripts scare you.
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ---
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            ## Install
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            ```
         
     | 
| 
      
 23 
     | 
    
         
            +
            $ gem install completely
         
     | 
| 
      
 24 
     | 
    
         
            +
            ```
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            ## Usage
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            The `completely` command line works with a simple YAML configuration file as
         
     | 
| 
      
 29 
     | 
    
         
            +
            input, and generates a bash completions script as output.
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            The configuration file is built like this:
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            ```yaml
         
     | 
| 
      
 34 
     | 
    
         
            +
            pattern:
         
     | 
| 
      
 35 
     | 
    
         
            +
              - --argument
         
     | 
| 
      
 36 
     | 
    
         
            +
              - --param
         
     | 
| 
      
 37 
     | 
    
         
            +
              - command
         
     | 
| 
      
 38 
     | 
    
         
            +
            ```
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            You can save a sample YAML file by running:
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            ```
         
     | 
| 
      
 43 
     | 
    
         
            +
            $ completely new
         
     | 
| 
      
 44 
     | 
    
         
            +
            ```
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            This will generate a file named `completely.yaml` with this content:
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            ```yaml
         
     | 
| 
      
 49 
     | 
    
         
            +
            mygit:
         
     | 
| 
      
 50 
     | 
    
         
            +
            - --help
         
     | 
| 
      
 51 
     | 
    
         
            +
            - --version
         
     | 
| 
      
 52 
     | 
    
         
            +
            - status
         
     | 
| 
      
 53 
     | 
    
         
            +
            - init
         
     | 
| 
      
 54 
     | 
    
         
            +
            - commit
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            mygit status:
         
     | 
| 
      
 57 
     | 
    
         
            +
            - --help
         
     | 
| 
      
 58 
     | 
    
         
            +
            - --verbose
         
     | 
| 
      
 59 
     | 
    
         
            +
            - --branch
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            mygit init:
         
     | 
| 
      
 62 
     | 
    
         
            +
            - --bare
         
     | 
| 
      
 63 
     | 
    
         
            +
            - <directory>
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            mygit commit:
         
     | 
| 
      
 66 
     | 
    
         
            +
            - <file>
         
     | 
| 
      
 67 
     | 
    
         
            +
            - --help
         
     | 
| 
      
 68 
     | 
    
         
            +
            - --message
         
     | 
| 
      
 69 
     | 
    
         
            +
            - --all
         
     | 
| 
      
 70 
     | 
    
         
            +
            - -a
         
     | 
| 
      
 71 
     | 
    
         
            +
            - --quiet
         
     | 
| 
      
 72 
     | 
    
         
            +
            - -q
         
     | 
| 
      
 73 
     | 
    
         
            +
            ```
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            Each pattern in this configuration file will be checked against the user's
         
     | 
| 
      
 76 
     | 
    
         
            +
            input, and if the input **starts with** a matching pattern, the list that 
         
     | 
| 
      
 77 
     | 
    
         
            +
            follows it will be suggested as completions.
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            To generate the bash script, simply run:
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            ```
         
     | 
| 
      
 82 
     | 
    
         
            +
            $ completely generate
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
            # or, to just preview it without saving:
         
     | 
| 
      
 85 
     | 
    
         
            +
            $ completely preview
         
     | 
| 
      
 86 
     | 
    
         
            +
            ```
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            For more options (like setting input/output path), run
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            ```
         
     | 
| 
      
 91 
     | 
    
         
            +
            $ completely --help
         
     | 
| 
      
 92 
     | 
    
         
            +
            ```
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            ### Suggesting files and directories
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            You may have noticed that the sample file contains two special entries:
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            - `<file>`
         
     | 
| 
      
 99 
     | 
    
         
            +
            - `<directory>`
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
            These patterns will add the list of files and directories
         
     | 
| 
      
 102 
     | 
    
         
            +
            (when `<file>` is used) or just directories (when `<directory` is used) to
         
     | 
| 
      
 103 
     | 
    
         
            +
            the list of suggestions.
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            For those interested in the technical details, any word between `<...>` will
         
     | 
| 
      
 106 
     | 
    
         
            +
            simply be added using the [`compgen -A action`][compgen] function, so you can 
         
     | 
| 
      
 107 
     | 
    
         
            +
            in fact use any of its supported arguments.
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            ### Using the generated completion scripts
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            In order to enable the completions, simply source the generated script:
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
            ```
         
     | 
| 
      
 115 
     | 
    
         
            +
            $ source completely.bash
         
     | 
| 
      
 116 
     | 
    
         
            +
            ```
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            You may wish to add this to your `~/.bashrc` file to enable this for future
         
     | 
| 
      
 119 
     | 
    
         
            +
            sessions (just be sure to use absolute path).
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
            ## Contributing / Support
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
            If you experience any issue, have a question or a suggestion, or if you wish
         
     | 
| 
      
 125 
     | 
    
         
            +
            to contribute, feel free to [open an issue][issues].
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
            ---
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
            [issues]: https://github.com/DannyBen/completely/issues
         
     | 
| 
      
 130 
     | 
    
         
            +
            [compgen]: https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html
         
     | 
    
        data/bin/completely
    ADDED
    
    | 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'completely'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'completely/cli'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'colsole'
         
     | 
| 
      
 5 
     | 
    
         
            +
            include Colsole
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            runner = Completely::CLI.runner
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            begin
         
     | 
| 
      
 10 
     | 
    
         
            +
              exit runner.run ARGV
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            rescue => e
         
     | 
| 
      
 13 
     | 
    
         
            +
              puts e.backtrace.reverse if ENV['DEBUG']
         
     | 
| 
      
 14 
     | 
    
         
            +
              say! "!undred!#{e.class}!txtrst!\n#{e.message}"
         
     | 
| 
      
 15 
     | 
    
         
            +
              exit 1
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/completely.rb
    ADDED
    
    
| 
         @@ -0,0 +1,72 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Completely
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Command < MisterBin::Command
         
     | 
| 
      
 3 
     | 
    
         
            +
                help "Bash completion script generator"
         
     | 
| 
      
 4 
     | 
    
         
            +
                version Completely::VERSION
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                usage "completely new [CONFIG_PATH]"
         
     | 
| 
      
 7 
     | 
    
         
            +
                usage "completely preview [CONFIG_PATH --function NAME]"
         
     | 
| 
      
 8 
     | 
    
         
            +
                usage "completely generate [CONFIG_PATH OUTPUT_PATH --function NAME]"
         
     | 
| 
      
 9 
     | 
    
         
            +
                usage "completely (-h|--help|--version)"
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                command "new", "Create a new sample YAML configuration file"
         
     | 
| 
      
 12 
     | 
    
         
            +
                command "preview", "Generate the bash completion script to STDOUT"
         
     | 
| 
      
 13 
     | 
    
         
            +
                command "generate", "Generate the bash completion script to a file"
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                option "-f --function NAME", "Modify the name of the function in the generated script"
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                param "CONFIG_PATH", "Path to the YAML configuration file"
         
     | 
| 
      
 18 
     | 
    
         
            +
                param "OUTPUT_PATH", "Path to the output bash script"
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                example "completely new"
         
     | 
| 
      
 21 
     | 
    
         
            +
                example "completely new input.yaml"
         
     | 
| 
      
 22 
     | 
    
         
            +
                example "completely preview --function my_completions"
         
     | 
| 
      
 23 
     | 
    
         
            +
                example "completely generate"
         
     | 
| 
      
 24 
     | 
    
         
            +
                example "completely generate input.yaml"
         
     | 
| 
      
 25 
     | 
    
         
            +
                example "completely generate input.yaml output.sh -f my_completions"
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                def new_command
         
     | 
| 
      
 28 
     | 
    
         
            +
                  if File.exist? config_path
         
     | 
| 
      
 29 
     | 
    
         
            +
                    raise "File already exists: #{config_path}"
         
     | 
| 
      
 30 
     | 
    
         
            +
                  else
         
     | 
| 
      
 31 
     | 
    
         
            +
                    File.write config_path, sample
         
     | 
| 
      
 32 
     | 
    
         
            +
                    say "Saved !txtpur!#{config_path}"
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def preview_command
         
     | 
| 
      
 37 
     | 
    
         
            +
                  puts script
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
                
         
     | 
| 
      
 40 
     | 
    
         
            +
                def generate_command
         
     | 
| 
      
 41 
     | 
    
         
            +
                  File.write output_path, script
         
     | 
| 
      
 42 
     | 
    
         
            +
                  say "Saved !txtpur!#{output_path}"
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              private
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                def config_path
         
     | 
| 
      
 48 
     | 
    
         
            +
                  @config_path ||= args['CONFIG_PATH'] || "completely.yaml"
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                def output_path
         
     | 
| 
      
 52 
     | 
    
         
            +
                  @output_path ||= args['OUTPUT_PATH'] || "completely.bash"
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                def sample
         
     | 
| 
      
 56 
     | 
    
         
            +
                  @sample ||= File.read(sample_path)
         
     | 
| 
      
 57 
     | 
    
         
            +
                end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                def sample_path
         
     | 
| 
      
 60 
     | 
    
         
            +
                  @sample_path ||= File.expand_path("sample.yaml", __dir__)
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                def script
         
     | 
| 
      
 64 
     | 
    
         
            +
                  @script ||= completions.script
         
     | 
| 
      
 65 
     | 
    
         
            +
                end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                def completions
         
     | 
| 
      
 68 
     | 
    
         
            +
                  @completions ||= Completions.load(config_path, function_name: args['--function'])
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,45 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'yaml'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'erb'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Completely
         
     | 
| 
      
 5 
     | 
    
         
            +
              class Completions
         
     | 
| 
      
 6 
     | 
    
         
            +
                attr_reader :config, :function_name
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 9 
     | 
    
         
            +
                  def load(config_path, function_name: nil)
         
     | 
| 
      
 10 
     | 
    
         
            +
                    new YAML.load_file(config_path), function_name: function_name
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def initialize(config, function_name: nil)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  @config, @function_name = config, function_name
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def script
         
     | 
| 
      
 19 
     | 
    
         
            +
                  ERB.new(template, trim_mode: '%-').result(binding)
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              private
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def template_path
         
     | 
| 
      
 25 
     | 
    
         
            +
                  @template_path ||= File.expand_path("template.erb", __dir__)
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                def template
         
     | 
| 
      
 29 
     | 
    
         
            +
                  @template ||= File.read(template_path)
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def command
         
     | 
| 
      
 33 
     | 
    
         
            +
                  @command ||= config.keys.first
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def patterns
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @patterns ||= config.to_a.sort_by { |k, v| -k.size }.to_h
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                def function_name
         
     | 
| 
      
 41 
     | 
    
         
            +
                  @function_name ||= "_#{command}_completions"
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            mygit:
         
     | 
| 
      
 2 
     | 
    
         
            +
            - --help
         
     | 
| 
      
 3 
     | 
    
         
            +
            - --version
         
     | 
| 
      
 4 
     | 
    
         
            +
            - status
         
     | 
| 
      
 5 
     | 
    
         
            +
            - init
         
     | 
| 
      
 6 
     | 
    
         
            +
            - commit
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            mygit status:
         
     | 
| 
      
 9 
     | 
    
         
            +
            - --help
         
     | 
| 
      
 10 
     | 
    
         
            +
            - --verbose
         
     | 
| 
      
 11 
     | 
    
         
            +
            - --branch
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            mygit init:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - --bare
         
     | 
| 
      
 15 
     | 
    
         
            +
            - <directory>
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            mygit commit:
         
     | 
| 
      
 18 
     | 
    
         
            +
            - <file>
         
     | 
| 
      
 19 
     | 
    
         
            +
            - --help
         
     | 
| 
      
 20 
     | 
    
         
            +
            - --message
         
     | 
| 
      
 21 
     | 
    
         
            +
            - --all
         
     | 
| 
      
 22 
     | 
    
         
            +
            - -a
         
     | 
| 
      
 23 
     | 
    
         
            +
            - --quiet
         
     | 
| 
      
 24 
     | 
    
         
            +
            - -q
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env bash
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            # This bash completions script was generated by
         
     | 
| 
      
 4 
     | 
    
         
            +
            # completely (https://github.com/dannyben/completely)
         
     | 
| 
      
 5 
     | 
    
         
            +
            # Modifying it manually is not recommended
         
     | 
| 
      
 6 
     | 
    
         
            +
            <%= function_name %>() {
         
     | 
| 
      
 7 
     | 
    
         
            +
              local cur=${COMP_WORDS[COMP_CWORD]}
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              case "$COMP_LINE" in    
         
     | 
| 
      
 10 
     | 
    
         
            +
            % patterns.each do |pattern, words|
         
     | 
| 
      
 11 
     | 
    
         
            +
            % next unless words
         
     | 
| 
      
 12 
     | 
    
         
            +
            % clean_words = words.reject { |w| w =~ /^<.*>$/ }.join " "
         
     | 
| 
      
 13 
     | 
    
         
            +
            % functions = words.filter_map { |w| func = w[/^<(.+)>$/, 1] ; "-A #{func}" if func }
         
     | 
| 
      
 14 
     | 
    
         
            +
            % flags = functions.any? ? "#{functions.join ' '} -W" : "-W"
         
     | 
| 
      
 15 
     | 
    
         
            +
                '<%= pattern %>'*) COMPREPLY=($(compgen <%= flags %> "<%= clean_words %>" -- "$cur")) ;;
         
     | 
| 
      
 16 
     | 
    
         
            +
            % end
         
     | 
| 
      
 17 
     | 
    
         
            +
              esac
         
     | 
| 
      
 18 
     | 
    
         
            +
            }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            complete -F <%= function_name %> <%= command %>
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,94 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: completely
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Danny Ben Shitrit
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-07-20 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: colsole
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '0.6'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '0.6'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: mister_bin
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0.7'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0.7'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: requires
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '0.1'
         
     | 
| 
      
 48 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0.1'
         
     | 
| 
      
 55 
     | 
    
         
            +
            description: Generate bash completion scripts using simple YAML configuration
         
     | 
| 
      
 56 
     | 
    
         
            +
            email: db@dannyben.com
         
     | 
| 
      
 57 
     | 
    
         
            +
            executables:
         
     | 
| 
      
 58 
     | 
    
         
            +
            - completely
         
     | 
| 
      
 59 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 60 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 61 
     | 
    
         
            +
            files:
         
     | 
| 
      
 62 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 63 
     | 
    
         
            +
            - bin/completely
         
     | 
| 
      
 64 
     | 
    
         
            +
            - lib/completely.rb
         
     | 
| 
      
 65 
     | 
    
         
            +
            - lib/completely/cli.rb
         
     | 
| 
      
 66 
     | 
    
         
            +
            - lib/completely/command.rb
         
     | 
| 
      
 67 
     | 
    
         
            +
            - lib/completely/completions.rb
         
     | 
| 
      
 68 
     | 
    
         
            +
            - lib/completely/sample.yaml
         
     | 
| 
      
 69 
     | 
    
         
            +
            - lib/completely/template.erb
         
     | 
| 
      
 70 
     | 
    
         
            +
            - lib/completely/version.rb
         
     | 
| 
      
 71 
     | 
    
         
            +
            homepage: https://github.com/dannyben/completely
         
     | 
| 
      
 72 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 73 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 74 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 75 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 76 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 77 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 78 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 79 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 80 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 81 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 82 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 83 
     | 
    
         
            +
                  version: 2.7.0
         
     | 
| 
      
 84 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 85 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 86 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 87 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 88 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 89 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 90 
     | 
    
         
            +
            rubygems_version: 3.2.16
         
     | 
| 
      
 91 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 92 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 93 
     | 
    
         
            +
            summary: Bash Completions Generator
         
     | 
| 
      
 94 
     | 
    
         
            +
            test_files: []
         
     |