Compare commits
No commits in common. "87b8d5b5b095cd25950c0c272defeb77163e8845" and "ef1c8f2996a9f8bd86408c7d308fefbf29065e8d" have entirely different histories.
87b8d5b5b0
...
ef1c8f2996
@ -2,30 +2,10 @@
|
|||||||
<?php # -*- coding: utf-8 mode: php -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
|
<?php # -*- coding: utf-8 mode: php -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
function fix_value($value) {
|
function fix_value($value) {
|
||||||
if ($value === "true") return true;
|
if ($value === "true") return true;
|
||||||
elseif ($value === "false") return false;
|
elseif ($value === "false") return false;
|
||||||
elseif ($value === "null") return null;
|
elseif ($value === "null") return null;
|
||||||
else return $value;
|
else return $value;
|
||||||
}
|
|
||||||
function setp(&$array, $keys, $value) {
|
|
||||||
if (is_array($keys)) $keys = implode(".", $keys);
|
|
||||||
$keys = explode(".", $keys);
|
|
||||||
$last = count($keys) - 1;
|
|
||||||
$i = 0;
|
|
||||||
if ($array === null) $array = array();
|
|
||||||
$current =& $array;
|
|
||||||
foreach ($keys as $key) {
|
|
||||||
if ($i == $last) break;
|
|
||||||
if (!array_key_exists($key, $current)) $current[$key] = array();
|
|
||||||
if (!is_array($current[$key])) $current[$key] = array($current[$key]);
|
|
||||||
$current =& $current[$key];
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
if ($key === "") {
|
|
||||||
$current[] = $value;
|
|
||||||
} else {
|
|
||||||
$current[$key] = $value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = array();
|
$data = array();
|
||||||
@ -35,10 +15,9 @@ for ($i = 1; $i < $argc; $i++) {
|
|||||||
if (preg_match('/(.*?)=(.*)/', $namevalue, $ms)) {
|
if (preg_match('/(.*?)=(.*)/', $namevalue, $ms)) {
|
||||||
$name = $ms[1];
|
$name = $ms[1];
|
||||||
$value = fix_value($ms[2]);
|
$value = fix_value($ms[2]);
|
||||||
setp($data, $name, $value);
|
$data[$name] = $value;
|
||||||
} else {
|
} else {
|
||||||
$value = fix_value($namevalue);
|
$data[] = fix_value($namevalue);
|
||||||
$data[] = $value;
|
|
||||||
}
|
}
|
||||||
$empty = false;
|
$empty = false;
|
||||||
}
|
}
|
||||||
|
72
repoctl
72
repoctl
@ -21,22 +21,12 @@ 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...]
|
|
||||||
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...
|
|
||||||
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à:
|
|
||||||
name
|
|
||||||
description
|
|
||||||
website
|
|
||||||
private
|
|
||||||
default_branch
|
|
||||||
|
|
||||||
delete URL
|
delete URL
|
||||||
Supprimer le dépôt spécifié"
|
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é
|
||||||
}
|
}
|
||||||
|
|
||||||
function json_build() {
|
function json_build() {
|
||||||
@ -201,60 +191,26 @@ result: $result"
|
|||||||
}
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
#XXX à implémenter. ça ne semble pas encore possible pour le moment. peut-être
|
||||||
|
# uniquement le renommage?!
|
||||||
|
|
||||||
function get_action() {
|
function move_action() {
|
||||||
case "$rtype" in
|
case "$rtype" in
|
||||||
#gitolite) ;;
|
#gitolite) ;;
|
||||||
gogs|gitea)
|
gogs|gitea)
|
||||||
gogs_setvars
|
gogs_setvars
|
||||||
gogs_get_action "$@"
|
gogs_move_action "$@"
|
||||||
;;
|
;;
|
||||||
*) die "$rtype: type de dépôt non supporté";;
|
*) die "$rtype: type de dépôt non supporté";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
function gogs_get_action() {
|
function gogs_move_action() {
|
||||||
local url payload result
|
local url payload result
|
||||||
local -a vars
|
local -a vars
|
||||||
|
setx payload=json_build name="$new_name"
|
||||||
url="$gogs_url/api/v1/repos/$user/$path"
|
url="$gogs_url/api/v1/repos/$user/$path"
|
||||||
setx payload=json_build owner="$user" repo="$path"
|
|
||||||
|
|
||||||
[ $# -gt 0 ] && vars=("$@") || vars=("")
|
|
||||||
local HTTP_METHOD=GET
|
|
||||||
setx result=curlto "$url" "$payload" "" \
|
|
||||||
-H 'Content-Type: application/json' \
|
|
||||||
-H "Authorization: token $gogs_key" || \
|
|
||||||
die "Une erreur s'est produite lors de la tentative de déplacement du dépôt
|
|
||||||
url: $url
|
|
||||||
payload: $payload
|
|
||||||
result: $result"
|
|
||||||
echo "$result" | json_get "${vars[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
function edit_action() {
|
|
||||||
case "$rtype" in
|
|
||||||
#gitolite) ;;
|
|
||||||
gogs|gitea)
|
|
||||||
gogs_setvars
|
|
||||||
gogs_edit_action "$@"
|
|
||||||
;;
|
|
||||||
*) die "$rtype: type de dépôt non supporté";;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
function gogs_edit_action() {
|
|
||||||
local url payload result
|
|
||||||
local -a vars
|
|
||||||
url="$gogs_url/api/v1/repos/$user/$path"
|
|
||||||
vars=(owner="$user" repo="$path")
|
|
||||||
while [[ "$1" == *=* ]]; do
|
|
||||||
vars+=("$1")
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
setx payload=json_build "${vars[@]}"
|
|
||||||
|
|
||||||
[ $# -gt 0 ] && vars=("$@") || vars=("")
|
|
||||||
local HTTP_METHOD=PATCH
|
local HTTP_METHOD=PATCH
|
||||||
|
[ $# -gt 0 ] && vars=("$@") || vars=("")
|
||||||
setx result=curlto "$url" "$payload" "" \
|
setx result=curlto "$url" "$payload" "" \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
-H "Authorization: token $gogs_key" || \
|
-H "Authorization: token $gogs_key" || \
|
||||||
@ -301,8 +257,7 @@ args=(
|
|||||||
--help '$exit_with display_help'
|
--help '$exit_with display_help'
|
||||||
-c,--create action=create
|
-c,--create action=create
|
||||||
-l,--list action=list
|
-l,--list action=list
|
||||||
-g,--get action=get
|
#-m,--move action=move
|
||||||
-e,--edit action=edit
|
|
||||||
-d,--delete action=delete
|
-d,--delete action=delete
|
||||||
)
|
)
|
||||||
parse_args "$@"; set -- "${args[@]}"
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
@ -318,7 +273,6 @@ repoctl_init "$1"; shift
|
|||||||
case "$action" in
|
case "$action" in
|
||||||
c|create) create_action "$@";;
|
c|create) create_action "$@";;
|
||||||
l|list) list_action "$@";;
|
l|list) list_action "$@";;
|
||||||
g|get|s|show) get_action "$@";;
|
#m|move) move_action "$@";;
|
||||||
e|edit) edit_action "$@";;
|
|
||||||
d|del|delete|rm|remove) delete_action "$@";;
|
d|del|delete|rm|remove) delete_action "$@";;
|
||||||
esac
|
esac
|
||||||
|
Loading…
Reference in New Issue
Block a user