1
0
Fork 0

remove old clonedev script, add WIP warning to new

This commit is contained in:
Luca Bilke 2024-02-17 17:57:36 +01:00
parent d537aa247a
commit 822dab6090
2 changed files with 4 additions and 167 deletions

View File

@ -6,6 +6,10 @@
# TODO: Move update hooks to the actual .git/hooks directory
#
print("This shit ain't done yet!");
exit;
use strict;
use warnings;
use feature ("signatures");

View File

@ -1,167 +0,0 @@
#!/bin/sh
# TODO: Rewrite this in a proper language
set -eu
list() {
# shellcheck disable=2086
curl -s -X "GET" \
"$1" \
$HEADERS |
jq -r "$FILTER"
}
_VAR_REGEX='(?<=^DEVDIRS_)[A-Za-z_-]*(?==)'
get_path() {
reponame=$(echo "$1" | rev | cut -d '/' -f 1 | rev)
echo " $BLOCK_REPOS " | grep -q " $reponame " && return 1
for var in $(env | grep -oP "$_VAR_REGEX"); do
repos=$(eval "echo \$DEVDIRS_$var | xargs -r")
dir=$(echo "$var" | cut -d '_' -f 2)
if echo " $repos " | grep -q " $reponame "; then
return
fi
done
if ! $BLOCK_UNSORTED; then
echo "$BASE/unsorted/$reponame"
return
fi
}
warn() {
tput el
tput setaf 1
tput bold
echo "$@"
tput sgr0
}
info() {
tput el
tput setaf 4
tput bold
echo "$@"
tput sgr0
}
success() {
tput el
tput setaf 2
tput bold
echo "$@"
tput sgr0
}
scroll() {
# info "executing $*"
tput setaf 8
tput sc
while read -r line; do
tput el
echo "$line"
tput rc
done
tput sgr0
}
# pull() {
#
# }
#
# clone() {
#
# }
# FIX: pulling isn't functional yet
ensure() {
repo=$1
dir=$(get_path "$repo") || {
warn "$repo blocked ✗"
return
}
[ -z "$dir" ] && return
if [ -d "$dir/.git" ]; then
git -C "$dir" status | grep -iq 'working tree clean' || {
warn "$repo unclean tree "
git -C "$dir" status | tail -n=+3 | head -n=+2
return
}
tput sc
info "$repo getting pulled 󰚭"
git -C "$dir" pull 2>&1 | scroll || {
tput rc
warn "$repo pull failed "
return
}
tput el
tput cuu1
success "$repo pulled "
target=$(echo "$repo" | rev | cut -d'/' -f1 | rev)
if [ -x "$config_dir/hooks/update/$target" ]; then
cd "$dir"
tput sc
info "Running $target update hook"
"$config_dir/hooks/update/$target" | scroll || {
warn "failed to run update hook for $target"
}
tput el
tput cuu1
success "Ran $target update hook successfully ✓"
cd -
fi
return
fi
mkdir -p "$dir" || {
warn "mkdir -p $dir failed ✗"
return
}
tput sc
info "$repo getting cloned 󰚭"
# shellcheck disable=2086
git clone $CLONE_FLAGS "$repo" "$dir" 2>&1 | scroll || {
tput rc
warn "$repo clone failed ✗"
return
}
tput el
tput cuu1
success "$repo cloned "
target=$(echo "$repo" | rev | cut -d'/' -f1 | rev)
if [ -x "$config_dir/hooks/install/$target" ]; then
cd "$dir"
tput sc
info "Running $target install hook"
"$config_dir/hooks/install/$target" | scroll || {
warn "failed to run install hook for $target"
}
tput el
tput cuu1
success "Ran $target install hook successfully ✓"
cd -
fi
return
}
# ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
# ░ ░░░░ ░░░ ░░░ ░░ ░░░ ░
# ▒ ▒▒ ▒▒ ▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒ ▒
# ▓ ▓▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓ ▓ ▓ ▓
# █ █ █ ██ █████ █████ ██ █
# █ ████ ██ ████ ██ ██ ███ █
# ████████████████████████████████████████
# shellcheck disable=1091
. "${XDG_CONFIG_HOME:-"$HOME/.config"}/clonedev/config"
config_dir=${XDG_CONFIG_HOME:-$HOME/.config}/clonedev
# shellcheck disable=2015
mkdir -p "$BASE" && cd "$BASE" || {
warn "Failed to create/cd $BASE"
}
for target in $TARGETS; do
for repo in $(list "$API_URL/$target/$ENDPOINT" | sed 's|.git$||' | xargs); do
ensure "$repo"
done
done
for repo in $(echo "$EXTRA_REPOS" | xargs); do
ensure "$repo"
done