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 -l
$ cmdx help
$ cmdx help i
# read the top level environment variable
$ cmdx simple
+ echo $FOO
foo
$ cmdx env
+ echo $FOO $BAR $ZOO
foo barbar zoo
# positional argument default value
$ cmdx hello
+ echo "Hello, Bob"
Hello, Bob
# positional argument
$ cmdx hello foo
+ echo "Hello, foo"
Hello, foo
# flag default value
$ cmdx i
+ echo $NAME
Bob
# flag
$ cmdx i --name foo
+ echo $NAME
foo
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
$ cmdx timeout
+ sleep 10
the command is timeout: 3 sec
$ cmdx input --name foo
+ echo foo
foo
$ cmdx input
? name foo
+ echo foo
foo
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?
$ cmdx password
? password ****
+ echo ffff
ffff
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
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
prompt:
type: editor
$ cmdx editor
? profile [Enter to launch editor]
- 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
$ 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"
.