diff --git a/repoctl b/repoctl index 5bef360..b65b795 100755 --- a/repoctl +++ b/repoctl @@ -23,10 +23,9 @@ ACTIONS delete URL Supprimer le dépôt spécifié" - # pas encore possible d'implémenter pour le moment: - #move URL ORG[/NAME] - # Déplacer le dépôt spécifié dans l'organisation spécifiée. Le cas - # échéant, le dépôt est renommé + # pas encore implémenté pour le moment: + #edit URL var=value... + # Modifier les propriétés du dépôt. } function json_build() { @@ -191,26 +190,31 @@ result: $result" } ################################################################################ -#XXX à implémenter. ça ne semble pas encore possible pour le moment. peut-être -# uniquement le renommage?! +#XXX à implémenter -function move_action() { +function edit_action() { case "$rtype" in #gitolite) ;; gogs|gitea) gogs_setvars - gogs_move_action "$@" + gogs_edit_action "$@" ;; *) die "$rtype: type de dépôt non supporté";; esac } -function gogs_move_action() { +function gogs_edit_action() { local url payload result local -a vars - setx payload=json_build name="$new_name" url="$gogs_url/api/v1/repos/$user/$path" - local HTTP_METHOD=PATCH + vars=(owner="$user" repo="$path") + while [[ "$1" == *=* ]]; do + vars+=("body.$1") + shift + done + setx payload=json_build "${vars[@]}" + [ $# -gt 0 ] && vars=("$@") || vars=("") + local HTTP_METHOD=PATCH setx result=curlto "$url" "$payload" "" \ -H 'Content-Type: application/json' \ -H "Authorization: token $gogs_key" || \ @@ -257,7 +261,7 @@ args=( --help '$exit_with display_help' -c,--create action=create -l,--list action=list - #-m,--move action=move + #-e,--edit action=edit -d,--delete action=delete ) parse_args "$@"; set -- "${args[@]}" @@ -273,6 +277,6 @@ repoctl_init "$1"; shift case "$action" in c|create) create_action "$@";; l|list) list_action "$@";; -#m|move) move_action "$@";; +e|edit) edit_action "$@";; d|del|delete|rm|remove) delete_action "$@";; esac