Você pode usar todos os 3 idiomas. Eu recomendaria ver como svn, hg, git, docker o fazem.
Eles terão um comando wrapper: por exemplo, dbinv
.
Ele examinará seu primeiro argumento e, em seguida, chamará um script auxiliar. por exemplo, dbinv show arg1
, chamará «directory-containing-dbinv-commands»/dbinv-show arg1
.
Esse wrapper pode ser feito facilmente no bash. Os subcomandos podem ser feitos em outros idiomas (use #!
no topo de um script para especificar o idioma).
Para fazer o wrapper, pesquise "$1"
, "$@"
, shift
e exec
(não tão importante).