test expand recurse

master
Bel LaPointe 2022-02-01 10:56:55 -07:00
parent 4907dcdc4f
commit 451bef450c
2 changed files with 23 additions and 6 deletions

View File

@ -47,7 +47,7 @@ gitlab() (
local root="${2:-"/"}" local root="${2:-"/"}"
local b64_files=() local b64_files=()
local b64_trees=("$root") local b64_trees=("$(echo "$root" | base64)")
local i=0 local i=0
find_each() { find_each() {
@ -61,7 +61,7 @@ gitlab() (
| grep . | grep .
} }
while [ "$i" -lt "${#b64_trees[@]}" ]; do while [ "$i" -lt "${#b64_trees[@]}" ]; do
got="$(_list_tree "$project" "${b64_trees[i]}")" got="$(_list_tree "$project" "$(echo "${b64_trees[i]}" | base64 --decode)")"
for b64_tree in $(find_each "tree" "$got"); do for b64_tree in $(find_each "tree" "$got"); do
if ! echo "${b64_trees[@]}" | grep -q "[ ^]$b64_tree[ $]"; then if ! echo "${b64_trees[@]}" | grep -q "[ ^]$b64_tree[ $]"; then
b64_trees+=("$b64_tree") b64_trees+=("$b64_tree")
@ -82,7 +82,7 @@ gitlab() (
_list_tree() { _list_tree() {
local project="$(urlencode "$1")" local project="$(urlencode "$1")"
local path="/api/v4/projects/$project/repository/tree" local path="api/v4/projects/$project/repository/tree"
local query="recursive=true&path=$2" local query="recursive=true&path=$2"
_gcurl "https://gitlab-app.eng.qops.net/$path?$query" _gcurl "https://gitlab-app.eng.qops.net/$path?$query"
} }

View File

@ -1,11 +1,28 @@
#! /bin/bash #! /bin/bash
test_get() { test___expand() {
gitlab eval "$(cat <<EOF gitlab eval "$(cat <<EOF
_gcurl() { _gcurl() {
echo "\$*" | grep -q api.v4.projects.my%20project.repository.files.my%20file.raw case "\$1" in
'https://gitlab-app.eng.qops.net/api/v4/projects/project/repository/tree?recursive=true&path=dir' )
echo '[
{"id": "a", "name": "dir2", "type": "tree", "path": "dir/dir2", "mode": "040000"},
{"id": "b", "name": "blob", "type": "blob", "path": "dir/blob", "mode": "100644"}
]'
;;
'https://gitlab-app.eng.qops.net/api/v4/projects/project/repository/tree?recursive=true&path=dir/dir2' )
echo '[
{"id": "c", "name": "blob2", "type": "blob", "path": "dir/dir2/blob2", "mode": "100644"}
]'
;;
* )
return 1
;;
esac
} }
get "my project" "my file" __expand project dir | grep -q ^$(echo project | base64)$
__expand project dir | grep -q ^$(echo dir/blob | base64)$
__expand project dir | grep -q ^$(echo dir/dir2/blob2 | base64)$
EOF EOF
)" )"
} }