-
Lucas Briese authoredLucas Briese authored
venv 2.15 KiB
# simplistic "venv" you can use with "source venv" (pwd = same directory is required)
function info() {
t="$1"
shift
printf "[\033[32minfo\033[0m][venv] $t\n" "$@"
}
function warn() {
t="$1"
shift
printf "[\033[33mwarning\033[0m][venv] $t\n" "$@"
}
function error() {
t="$1"
shift
printf "[\033[31merror\033[0m][venv] $t\n" "$@"
}
project_dir="$(pwd)"
if [ ! -f "$project_dir/venv" ]; then
error "please use for \"source venv\" the git root as working directory. I couldn't find \"$project_dir/venv\""
exit 1
fi
PS1="(OpenCoDE) ${PS1:-}"
info "exporting $(grep -Ece '^[^#=][^#=]*' .env || echo 0) variables from .env"
set -a
source .env
cluster_config="$(realpath "$project_dir/../subcluster1.yaml")"
# set default cluster
if [ -f "$cluster_config" ]; then
# shellcheck disable=SC2034 # false positive due to set -a
KUBECONFIG="$cluster_config"
info "set KUBECONFIG = $KUBECONFIG"
else
warn "no cluster config found at $cluster_config. Only if you want to use kubectl you need one!"
fi
set +a
function set_alias() {
#shellcheck disable=SC2139 # we want to set it during definition
alias "${1:?}=${2:?}"
info "$1\t\t${3:-${2}}"
}
set_alias gradlew "\"$project_dir/gradlew\" --project-dir \"$project_dir\"" "execute gradlew from anywhere"
set_alias compose "docker compose"
set_alias dev "kubectl --namespace=fraunhofer"
set_alias prod "kubectl --namespace=fraunhoferprod"
info "dev-overview\tshow dev pods / containers / state"
function dev-overview() {
echo -e "Namespace:\tPod:\t\t\t\tContainer:\tready:"
dev get pods -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{range .status.containerStatuses[*]}{.name}{"\t"}{.ready}{"\n"}{end}{end}'
}
info "prod-overview\tshow prod pods / containers / state"
function prod-overview() {
echo -e "Namespace:\tPod:\t\t\t\tContainer:\tready:"
prod get pods -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{range .status.containerStatuses[*]}{.name}{"\t"}{.ready}{"\n"}{end}{end}'
}
info "reload-venv\treload venv file"
function reload-venv() {
PS1="${PS1:23}" # remove "(OpenCoDE) "
source "${project_dir:?}/venv"
}