Seu programa deve pelo menos sair (3) EXIT_SUCCESS
(ou seja, 0 ) em sucesso e provavelmente EXIT_FAILURE
(ie 1) na falha. Você pode copiar (ou ser inspirado por) FreeBSD sysexits.h para mais códigos de falha (mas não tenho certeza se vale a pena o esforço).
Não esqueça de dar uma mensagem para stderr (ou através de syslog (3) ) para qualquer tipo de falha. Pelo que você descreve, falhar em git clone
até mesmo um (entre muitos) repositórios para seu subcomando install
deve ser uma falha.
O usuário provavelmente faria alguma ação corretiva (por exemplo, corrigir a ortografia da URL com falha) e, em seguida, repetir o mesmo comando, então você pode querer que ele seja idempotente.
Não se esqueça da opção --help
e documente qualquer código de saída fora de 0 e 1.