diff --git a/mygb.sh b/mygb.sh index b4887b406d99c08b2466d1c30209b524eeb18c7a..0319d11da0b6897a217df1d986169928749a64c7 100755 --- a/mygb.sh +++ b/mygb.sh @@ -15,4 +15,71 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. -echo "Hello World !" +# Constant +readonly USAGE=' +mygb.sh <command> [options] \n + \n +Command : \n +init : create the configuration file \n +export : export from GitLab \n +import : import to GitLab \n + \n +Options : \n + -h : print help \n + -c path/to/conf : read one config file \n + -p path/to/projet : export the projet \n + -g path/to/group : export the group and is subgroups and projects \n + -a : export all my group and subgroup \n +' + +# Vars +config_file='.mygb_config' +export_all=false + +_help() { + echo -e "${USAGE}" + exit 1 +} + +_load_config() { + if [[ -e ${config_file} ]]; then + # shellcheck disable=SC1090 + source ${config_file} + else + _create_config + fi +} + +_create_config() { + echo "There is no file!" + + echo "What is the GitLab URL :" + read -r gitlab_url + + echo "What is the GitLab API token :" + read -rs gitlab_api_token + + echo "gitlab_url=\"${gitlab_url}\"" >${config_file} + echo "gitlab_api_token=\"${gitlab_api_token}\"" >>${config_file} + + echo "The file ${config_file} was created with this content." + echo "Please add the line below on your .gitignore" + echo "${config_file}" +} + +main() { + echo "My GitLab Backup" + while getopts c:p:g:ah flag; do + case "${flag}" in + c) config_file=${OPTARG} ;; + p) project=${OPTARG} ;; + g) groups=${OPTARG} ;; + a) export_all=true ;; + h | *) _help ;; + esac + done + + _load_config +} + +main "$@"