|
|
|
@ -0,0 +1,48 @@ |
|
|
|
#!/usr/bin/env miaou-bash |
|
|
|
|
|
|
|
# Constants |
|
|
|
GIT_URL=https://git.artcode.re/miaou/miaou-bash |
|
|
|
|
|
|
|
# Functions |
|
|
|
|
|
|
|
function assert_normal_user { |
|
|
|
[[ "$UID" -eq 0 ]] && echo 'normal user expected' && return 1 |
|
|
|
true |
|
|
|
} |
|
|
|
|
|
|
|
function assert_credentials { |
|
|
|
local base_url |
|
|
|
base_url=$(echo "$GIT_URL" | cut -d/ -f3) |
|
|
|
if ! ssh -T "git@${base_url}"; then |
|
|
|
echo "credentials missing: $base_url" |
|
|
|
return 2 |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
function assert_system_mode { |
|
|
|
[[ -L "$MIAOU_BASH_DIR" ]] && echo "already in develoment mode: $(realpath $MIAOU_BASH_DIR)" && return 3 |
|
|
|
true |
|
|
|
} |
|
|
|
|
|
|
|
function dev_mode { |
|
|
|
git clone "$GIT_URL" |
|
|
|
sudo rm "$MIAOU_BASH_DIR" -rf |
|
|
|
sudo ln -s "$target" "$MIAOU_BASH_DIR" |
|
|
|
sudo "$MIAOU_BASH_DIR"/lib/init.sh |
|
|
|
} |
|
|
|
|
|
|
|
function assert_reachable_target { |
|
|
|
sudo -u nobody test -x "$target" |
|
|
|
} |
|
|
|
|
|
|
|
# Main |
|
|
|
|
|
|
|
assert_normal_user |
|
|
|
assert_system_mode |
|
|
|
assert_credentials |
|
|
|
target="$PWD"/ |
|
|
|
target+=$(echo "$GIT_URL" | cut -d/ -f5) |
|
|
|
source "$MIAOU_BASH_DIR"/lib/functions.bash |
|
|
|
_confirm_destructive "target directory will be: ${target}" |
|
|
|
assert_reachable_target |
|
|
|
dev_mode |