Skip to content

Latest commit

 

History

History

needs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Needy Flags Example

Demonstrates the use of needy flags that must be executed together.

This example was generated with:

$ bashly init --minimal
# ... now edit src/bashly.yml to match the example ...
$ bashly generate

bashly.yml

name: cli
help: Sample application to demonstrate the use of needy flags
version: 0.1.0

flags:
- long: --add
  short: -a
  arg: alias
  help: Alias to add
  # When using --add, --command and --target must also be provided
  needs: [--command, --target]

- long: --command
  short: -c
  arg: command
  help: Command for the alias
  # Note that this relationship is marked on both sides
  needs: [--add]

- long: --target
  short: -t
  arg: target
  help: Where to add the alias
  needs: [--add]
  allowed: [global, local]

Output

$ ./cli -h

cli - Sample application to demonstrate the use of needy flags

Usage:
  cli [OPTIONS]
  cli --help | -h
  cli --version | -v

Options:
  --add, -a ALIAS
    Alias to add
    Needs: --command, --target

  --command, -c COMMAND
    Command for the alias
    Needs: --add

  --target, -t TARGET
    Where to add the alias
    Allowed: global, local
    Needs: --add

  --help, -h
    Show this help

  --version, -v
    Show version number


$ ./cli --add deploy

--add needs --command

$ ./cli --add deploy --command 'git push'

--add needs --target

$ ./cli --add deploy --command 'git push' --target local

# this file is located in 'src/root_command.sh'
# you can edit it freely and regenerate (it will not be overwritten)
args:
- ${args[--add]} = deploy
- ${args[--command]} = git push
- ${args[--target]} = local