Skip to content

Latest commit

 

History

History

examples

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Example

In order to understand cmdx, it is good to execute cmdx command actually. We prepare the sample configuration file for you to execute cmdx.

cmdx.yaml

$ cmdx -l
$ cmdx help
$ cmdx help i
# read the top level environment variable
$ cmdx simple
+ echo $FOO
foo

environment

$ cmdx env
+ echo $FOO $BAR $ZOO
foo barbar zoo

positional argument

# positional argument default value
$ cmdx hello
+ echo "Hello, Bob"
Hello, Bob
# positional argument
$ cmdx hello foo
+ echo "Hello, foo"
Hello, foo

flag argument

# flag default value
$ cmdx i
+ echo $NAME
Bob
# flag
$ cmdx i --name foo
+ echo $NAME
foo

input_envs, script_envs

  script: "echo $INSTALL_NAME"
  flags:
  - name: name
    usage: your name
    default: Bob
    input_envs:
    - "{{.name}}"
    script_envs:
    - "INSTALL_{{.name}}"
# NAME -(input_envs)-> .name -(script_envs)-> INSTALL_NAME
$ NAME=zzz cmdx i
+ echo $INSTALL_NAME
zzz

timeout

$ cmdx timeout
+ sleep 10
the command is timeout: 3 sec

interactive input

$ cmdx input --name foo
+ echo foo
foo
$ cmdx input
? name foo
+ echo foo
foo

interactive input's message and help

prompt:
  type: input
  message: What's your name?
  help: Please input your name.
$ cmdx input-help
? What's your name? [? for help]

Type "?".

$ cmdx input-help
? Please input your name.
? What's your name?

interactive password

$ cmdx password
? password ****
+ echo ffff
ffff

interactive select

prompt:
  type: select
  options:
  - red
  - green
  - blue
$ cmdx select
? select  [Use arrows to move, type to filter]
> red
  green
  blue

Select "green".

$ cmdx select
? select green
+ echo green
green

multiline

prompt:
  type: multiline
$ cmdx multiline
? multiline [Enter 2 empty lines to finish]
fff
bbb

aaa
? multiline
fff
bbb

aaa
+ echo 'fff
bbb

aaa'
fff
bbb

aaa

editor

prompt:
  type: editor
$ cmdx editor
? profile [Enter to launch editor]

confirm

- name: confirm
  script: "echo '{{if .confirm}}Good morning{{else}}Good afternoon{{end}}' $CONFIRM"
  flags:
  - name: confirm
    prompt:
      type: confirm
    script_envs:
    - CONFIRM
$ cmdx confirm
? confirm (y/N)

Type "N".

$ cmdx confirm
? confirm No
+ echo 'Good afternoon' $CONFIRM
Good afternoon false

multi select

$ cmdx multi-select
? select  [Use arrows to move, space to select, type to filter]
> [ ]  red
  [ ]  green
  [ ]  blue

Select "red" and "blue".

$ cmdx multi-select
? select  [Use arrows to move, space to select, type to filter]
  [x]  red
  [ ]  green
> [x]  blue
$ cmdx multi-select
? select red, blue
+ echo [red blue] $COLORS
[red blue] red,blue

{{.select}} is array ["red", "blue"] and the environment variable COLORS is "red,blue".