repoctl: ajout de update-origin

This commit is contained in:
Jephté Clain 2020-09-10 11:15:40 +04:00
parent cc1b45d0fc
commit 856c948eeb
1 changed files with 64 additions and 13 deletions

77
repoctl
View File

@ -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 "$@";;