Enviado em 03/05/2023 - 18:10h
./script -u "githubuser" -p -c"comentario"
./script -u "githubuser" --proj --commit"comentario"
Ele esta criando repositório com os nomes:
-ccomentario
e
--commitcomentario
./script -p -u"githubuser"
./script --proj --user"githubuser"
Ele esta criando repositório com os nomes:
-ugithubuser
e
--usergithubuser
./script -u "githubuser" -p " "
Neste comando acima tem um espaço dentro das aspas duplas e um espaço entre a opção -p e as aspas:
Meu script deveria mostrar que falta [ -p | --proj ]
Mas ele esta pegando pasta do usuário $USER do sistema e e inicializando ela como repositório
./script -p -u" "
Meu script deveria mostrar:
Falta: [-p | --proj "<project_name>"]
Falta: [-u | --user "<user_github>"]
note que as aspas duplas estão coladas na opção -u e tem um espaço em branco dentro das aspas duplas
#!/usr/bin/bash
function help() {
echo -e "\n\e[1;34mO script \e[1;31m${0##*/}\033[1;34m deve ser executado dentro da pasta \ndo projeto somente uma única vez.\033[0m"
echo -e "\n\e[1;31mUsage\e[1;34m: \e[1;32m${0##*/} \033[1;35m-u \"<usuario_git>\" -p \"<project_name>\" -c \"comentário sobre projeto\"\033[0m"
echo -e "\n\e[1;31mOptions\e[1;32m:\n\e[1;34m[-u | --user: Opção para usuário github]\n\n[-p | --proj: Opção para nome do projeto a subir no github]\n\n[-c | --commit: Opção para comentar o criação do projeto]\033[0m\n\n"
exit 1
}
ACESS_TOKEN="MY_TOKEN_GITHUB"
# Processa os argumentos usando getopt
# Os ":" após as opções força a digitar um argumento
OPTS=$(getopt -o u:,p:,c:,h --long user:,proj:,commit:,help -n ${0} -- "$@") || exit
# Atribui os argumentos às variáveis
eval set -- "${OPTS}"
if [ $# -lt 3 ]; then
help
else
while :; do
case "${1}" in
-u | --user)
USER_GIT="${2}"
## Pegar o argumento 2 após a opção
shift 2
;;
-p | --proj)
PROJECT_NAME="${2}"
## Pegar o argumento 2 após a opção
shift 2
;;
-c | --commit)
COMMIT="${2}"
## Pega o argumento 2 após a opção
shift 2
;;
-h | --help)
help
# Para não dar loop infinito ao usar -h | --help
shift
;;
--)
# Skip --
shift
break
;;
*)
echo -e "\e[1;31mOpção inválida\033[1;32m: \033[1;31m${1}\033[0m"
exit 1
;;
esac
done
## gitpratico -u -p -c "criação projeto"
## gitpratico -u -p "projeto1" -c "criação projeto"
## gitpratico --user --proj --commit "criação projeto"
## gitpratico --user --proj "projeto1" --commit "criação projeto"
if [[ "${USER_GIT}" == "-p" || "${USER_GIT}" == "--proj" ]]; then
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-u | --user \"<user_github>\"]\033[0m"
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-p | --proj \"<project_name>\"]\033[0m\n"
help
## gitpratico -u -c -p "projeto1"
## gitpratico -u -c "criação projeto" -p "projeto1"
## gitpratico --user --commit --proj "projeto1"
## gitpratico --user --commit "criação projeto" --proj "projeto1"
elif [[ "${USER_GIT}" == "-c" || "${USER_GIT}" == "--commit" ]]; then
echo -e "\e[1;31mFalta\033[1;32m]: \033[1;31m[-u | --user \"<user_github>\"]\033[0m"
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-c | --commit \"coment create project\"]\033[0m\n"
help
## gitpratico -p -u -c "criação projeto"
## gitpratico -p -u "user_github" -c "criação projeto"
## gitpratico --proj --user -commit "criação projeto"
## gitpratico --proj --user "user_github" --commit "criação projeto"
elif [[ "${PROJECT_NAME}" == "-u" || "${PROJECT_NAME}" == "--user" ]]; then
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-p | --proj \"<project_name>\"]\[0m]"
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-u | --user \"<user_github>\"]\033[0m\n"
help
## gitpratico -p -c -u "user_github"
## gitpratico -p -c "criação projeto" -u "user_github"
## gitpratico --proj --commit --user "user_github"
## gitpratico --proj --commit "criação projeto" --user "user_github"
elif [[ "${PROJECT_NAME}" == "-c" || "${PROJECT_NAME}" == "--commit" ]]; then
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-p | --proj \"<project_name>\"]\033[0m"
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-c | --commit \"comment create project\"]\033[0m\n"
help
## gitpratico -c -u -p "projeto1"
## gitpratico -c -u "user_github" -p "projeto1"
## gitpratico --commit --user --proj "projeto1"
## gitpratico --commit --user "user_github" --proj "projeto1"
elif [[ "${COMMIT}" == "-u" || "${COMMIT}" == "--user" ]]; then
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-u | --user \"<user_github>\"]\033[0m"
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-c | --commit \"coment create project\"]\033[0m\n"
help
## gitpratico -c -p -u "user_github"
## gitpratico -c -p "projeto1" -u "user_github"
## gitpratico --commit --proj --user "user_github"
## gitpratico --commit --proj "projeto1" --user "user_github"
elif [[ "${COMMIT}" == "-p" || "${COMMIT}" == "--proj" ]]; then
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-c | --commit \"coment create project\"]\033[0m"
echo -e "\e[1;31mFalta\033[1.32m: \033[1;31m[-p | --proj \"<project_name>\"]\033[0m\n"
help
## gitpratico -u "" -p "" -c "comentario"
## gitpratico --user "" --proj "" --commit "comentario"
elif [[ -z "${USER_GIT}" && -z "${PROJECT_NAME}" ]]; then
echo -e "\e[1;31mFalta &&\033[1;32m: \e[1;31m[-u | --user \"<user_github>\"]\033[0m"
echo -e "\e[1;31mFalta &&\033[1;32m: \033[1;31m[-p | --proj \"<project_name>\"]\033[0m\n"
help
## gitpratico -u "user_github" -c "comentário"
## gitpratico -u "user_github" -c "comentário" -p ""
elif [[ -z "${PROJECT_NAME}" ]]; then
echo -e "\e[1;31mFalta\033[1;32m: \033[1;31m[-p | --proj \"<project_name>\"]\033[0m\n"
help
## gitpratico -p "projeto1" -c "comentário projeto1"
## gitpratico -p "projeto1" -c "comentário projeto1" -u ""
elif [[ -z "${USER_GIT}" ]]; then
echo -e "\e[1;31mFalta\033[1;32m: \e[1;31m[-u | --user \"<user_github>\"]\033[0m\n"
help
## gitpratico -u "user_github" -p "projeto1"
## gitpratico -u "user_github" -p "projeto1" -c ""
elif [[ -z "${COMMIT}" ]]; then
## Caso não especifique um comentario sobre a criação do projeto definiremos um comentario padrão
COMMIT="Repository ${PROJECT_NAME} created by ${USER_GIT}"
fi
curl -i -H "Authorization: token ${ACESS_TOKEN}" -d "{\"name\":\"${PROJECT_NAME}\",\"private\":false}" https://api.github.com/user/repos
fi