diff --git a/repoctl b/repoctl index 5adc36f..cc64151 100755 --- a/repoctl +++ b/repoctl @@ -10,12 +10,17 @@ USAGE $scriptname ACTION URL [options] ACTIONS - create URL [description] - Créer un nouveau dépôt avec la description spécifiée - Utiliser l'option -u pour mettre à jour origin dans le dépôt courant - avec l'url du dépôt nouvellement créé + u|update-origin URL + Mettre à jour origin dans le dépôt courant avec l'url spécifié - list URL [VARs...] + c|create URL [description] + Créer un nouveau dépôt avec la description spécifiée + OPTIONS + -u, --update-origin + mettre à jour origin dans le dépôt courant avec l'url du dépôt + nouvellement créé, comme avec l'action update-origin + + l|list URL [VARs...] Lister les dépôts dans l'organisation spécifiée. Si aucune organisation n'est spécifiée dans l'url, lister les dépôts *accessibles* par l'utilisateur (cela inclut les dépôts des organisations auxquelles @@ -23,11 +28,11 @@ ACTIONS VARs est une liste de variables à afficher pour chaque dépôt, séparés par le caractère tabulation. La valeur par défaut est full_name - get URL [VARs...] + g|get URL [VARs...] Afficher les propriétés du dépôt spécifié. VARs est une liste de variables à afficher pour le dépôt, séparés par le caractère tabulation. - edit URL var=value... + e|edit URL var=value... Modifier les propriétés du dépôt. Consulter l'API pour la liste exacte des propriétés pouvant être modifiées. Avec gitea 1.9.3, il y a au moins celles-là: @@ -37,7 +42,7 @@ ACTIONS private default_branch - delete URL + d|delete URL Supprimer le dépôt spécifié" } @@ -125,6 +130,50 @@ function gogs_setvars() { ################################################################################ +function _update_origin() { + estep "Mise à jour de l'origine" + git remote set-url origin "$repourl" +} +function _update_origin_push() { + if ask_yesno "Faut-il faire git push?" O; then + git push --all && git push --tags + else + enote "Ne pas oublier de faire 'git push --all && git push --tags'" + fi +} +function _update_origin_pull() { + if ask_yesno "Faut-il faire git pull?" O; then + git pull + else + enote "Ne pas oublier de faire 'git pull'" + fi +} + +function update_origin_action() { + case "$rtype" in + #gitolite) ;; + gogs|gitea) + gogs_setvars + gogs_update_origin_action "$@" + ;; + *) die "$rtype: type de dépôt non supporté";; + esac +} +function gogs_update_origin_action() { + local repourl + if [ -n "$user" -a "$user" != "$gogs_user" ]; then + # dépôt d'une organisation + repourl="$gogs_url/$user/$path" + else + # dépôt d'un utilisateur + repourl="$gogs_url/$gogs_user/$path" + fi + _update_origin + _update_origin_pull +} + +################################################################################ + function create_action() { case "$rtype" in #gitolite) ;; @@ -165,10 +214,8 @@ result: $result" echo "$result" | json_get "${vars[@]}" if [ -n "$update_origin" ]; then - isatty && estep "Mise à jour de l'origine" - git remote set-url origin "$repourl" - - isatty && enote "Ne pas oublier de faire 'git push --all'" + _update_origin + _update_origin_push fi } @@ -310,7 +357,7 @@ update_origin= args=( --help '$exit_with display_help' -c,--create action=create - -u,--update-origin update_origin=1 + -u,--update,--update-origin update_origin=1 -l,--list action=list -g,--get action=get -e,--edit action=edit @@ -318,6 +365,9 @@ args=( ) parse_args "$@"; set -- "${args[@]}" +if [ -z "$action" -a -n "$update_origin" ]; then + action=update-origin +fi if [ -z "$action" ]; then action="$1"; shift fi @@ -327,6 +377,7 @@ repoctl_init "$1"; shift [ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt" case "$action" in +u|update|update-origin) update_origin_action "$@";; c|create) create_action "$update_origin" "$@";; l|list) list_action "$@";; g|get|s|show) get_action "$@";;