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] $scriptname ACTION URL [options]
ACTIONS ACTIONS
create URL [description] u|update-origin URL
Créer un nouveau dépôt avec la description spécifiée Mettre à jour origin dans le dépôt courant avec l'url spécifié
Utiliser l'option -u pour mettre à jour origin dans le dépôt courant
avec l'url du dépôt nouvellement créé
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 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 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 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 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 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 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. 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 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 des propriétés pouvant être modifiées. Avec gitea 1.9.3, il y a au moins
celles-là: celles-là:
@ -37,7 +42,7 @@ ACTIONS
private private
default_branch default_branch
delete URL d|delete URL
Supprimer le dépôt spécifié" 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() { function create_action() {
case "$rtype" in case "$rtype" in
#gitolite) ;; #gitolite) ;;
@ -165,10 +214,8 @@ result: $result"
echo "$result" | json_get "${vars[@]}" echo "$result" | json_get "${vars[@]}"
if [ -n "$update_origin" ]; then if [ -n "$update_origin" ]; then
isatty && estep "Mise à jour de l'origine" _update_origin
git remote set-url origin "$repourl" _update_origin_push
isatty && enote "Ne pas oublier de faire 'git push --all'"
fi fi
} }
@ -310,7 +357,7 @@ update_origin=
args=( args=(
--help '$exit_with display_help' --help '$exit_with display_help'
-c,--create action=create -c,--create action=create
-u,--update-origin update_origin=1 -u,--update,--update-origin update_origin=1
-l,--list action=list -l,--list action=list
-g,--get action=get -g,--get action=get
-e,--edit action=edit -e,--edit action=edit
@ -318,6 +365,9 @@ args=(
) )
parse_args "$@"; set -- "${args[@]}" parse_args "$@"; set -- "${args[@]}"
if [ -z "$action" -a -n "$update_origin" ]; then
action=update-origin
fi
if [ -z "$action" ]; then if [ -z "$action" ]; then
action="$1"; shift action="$1"; shift
fi fi
@ -327,6 +377,7 @@ repoctl_init "$1"; shift
[ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt" [ -n "$repourl" ] || die "Vous devez spécifier l'url du dépôt"
case "$action" in case "$action" in
u|update|update-origin) update_origin_action "$@";;
c|create) create_action "$update_origin" "$@";; c|create) create_action "$update_origin" "$@";;
l|list) list_action "$@";; l|list) list_action "$@";;
g|get|s|show) get_action "$@";; g|get|s|show) get_action "$@";;