devmode
This commit is contained in:
+22
-3
@@ -12,11 +12,12 @@ function assert_normal_user {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function assert_credentials {
|
function assert_credentials {
|
||||||
|
echo "check for credentials"
|
||||||
local base_url
|
local base_url
|
||||||
base_url=$(echo "$GIT_URL" | cut -d: -f1)
|
base_url=$(echo "$GIT_URL" | cut -d: -f1)
|
||||||
if ! ssh -T "${base_url}"; then
|
if ! ssh -T "${base_url}"; then
|
||||||
echo "credentials missing: $base_url"
|
>&2 echo "MIAOU ERROR: development mode unavailable because your credentials are missing: $base_url"
|
||||||
return 2
|
builtin exit 2
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,11 +32,29 @@ function assert_reachable_target {
|
|||||||
sudo -u nobody -g sudo test -x "$(dirname "$target")"
|
sudo -u nobody -g sudo test -x "$(dirname "$target")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function assert_devmode_available {
|
||||||
|
fetch_mode
|
||||||
|
if [[ "$MIAOU_BASH_MODE" == development ]]; then
|
||||||
|
local realpath
|
||||||
|
realpath=$(realpath "$MIAOU_BASH_DIR"/) # / is required to get real target
|
||||||
|
if [[ "$MIAOU_BASH_MODE_OWNER" == "$USER" ]]; then
|
||||||
|
echo "you are already in development mode, check for: $realpath"
|
||||||
|
return 10
|
||||||
|
else
|
||||||
|
>&2 echo "MIAOU ERROR: already in develoment mode, but owned by: $MIAOU_BASH_MODE_OWNER"
|
||||||
|
return 11
|
||||||
|
fi
|
||||||
|
elif [[ "$MIAOU_BASH_MODE" = hosted ]]; then
|
||||||
|
>&2 echo "MIAOU ERROR: hosted mode detected"
|
||||||
|
return 12
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Main
|
# Main
|
||||||
|
|
||||||
source "$MIAOU_BASH_DIR"/lib/functions.bash
|
source "$MIAOU_BASH_DIR"/lib/functions.bash
|
||||||
assert_normal_user
|
assert_normal_user
|
||||||
assert_system_mode
|
assert_devmode_available
|
||||||
assert_credentials
|
assert_credentials
|
||||||
name=$(echo "$GIT_URL" | cut -d/ -f2)
|
name=$(echo "$GIT_URL" | cut -d/ -f2)
|
||||||
name="${name%.git}"
|
name="${name%.git}"
|
||||||
|
|||||||
@@ -16,6 +16,21 @@ function assert_container {
|
|||||||
[[ $(systemd-detect-virt -c) == lxc ]]
|
[[ $(systemd-detect-virt -c) == lxc ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fetch_mode {
|
||||||
|
[[ -v MIAOU_BASH_MODE ]] && return
|
||||||
|
MIAOU_BASH_MODE_OWNER=$(stat -c '%U' "$MIAOU_BASH_DIR"/)
|
||||||
|
if [[ -L "$MIAOU_BASH_DIR" ]]; then
|
||||||
|
MIAOU_BASH_MODE='development'
|
||||||
|
elif [[ "$MIAOU_BASH_MODE_OWNER" == root ]]; then
|
||||||
|
MIAOU_BASH_MODE='system'
|
||||||
|
elif [[ "$MIAOU_BASH_MODE_OWNER" == nobody ]]; then
|
||||||
|
MIAOU_BASH_MODE='hosted'
|
||||||
|
else
|
||||||
|
>&2 echo "MIAOU ERROR: unknown mode: $(realpath "$MIAOU_BASH_DIR") owned by: $MIAOU_BASH_MODE_OWNER" &&
|
||||||
|
return 3
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function assert_system_mode {
|
function assert_system_mode {
|
||||||
[[ -L "$MIAOU_BASH_DIR" ]] &&
|
[[ -L "$MIAOU_BASH_DIR" ]] &&
|
||||||
>&2 echo "ERROR: development mode: $(realpath "$MIAOU_BASH_DIR")" &&
|
>&2 echo "ERROR: development mode: $(realpath "$MIAOU_BASH_DIR")" &&
|
||||||
|
|||||||
Reference in New Issue
Block a user