Init: Update
This commit is contained in:
@@ -1,16 +1,156 @@
|
||||
#!/bin/bash
|
||||
if [ ! "$BASH_VERSION" ] ; then
|
||||
echo "Warén Group - Init"
|
||||
echo "This command requires using BASH shell."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#if [ ! "$BASH_VERSION" ] ; then
|
||||
# bash $0 $1 $2 $3 $4 $5 $6 $7 $8 $9
|
||||
# exit 1
|
||||
#fi
|
||||
if [[ -L "$0" ]]
|
||||
then
|
||||
PWD=$(dirname -- "$(readlink -f -- "$0")")
|
||||
fi
|
||||
|
||||
declare -Ax args
|
||||
declare -Ax config
|
||||
declare -Ax messages
|
||||
wxi-args(){
|
||||
declare -gAx args
|
||||
args=()
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--*=*)
|
||||
key="${1%%=*}"
|
||||
value="${1#*=}"
|
||||
args["${key#--}"]="$value"
|
||||
shift
|
||||
;;
|
||||
|
||||
--*)
|
||||
key="$1"
|
||||
opt="${key#--}"
|
||||
shift
|
||||
if [[ $# -gt 0 && "${1}" != -* ]]; then
|
||||
args["$opt"]="$1"
|
||||
shift
|
||||
else
|
||||
args["$opt"]=true
|
||||
fi
|
||||
;;
|
||||
|
||||
-*=*)
|
||||
key="${1%%=*}"
|
||||
value="${1#*=}"
|
||||
args["${key#-}"]="$value"
|
||||
shift
|
||||
;;
|
||||
|
||||
-*)
|
||||
key="$1"
|
||||
opt="${key#-}"
|
||||
shift
|
||||
if [[ $# -gt 0 && "${1}" != -* ]]; then
|
||||
args["$opt"]="$1"
|
||||
shift
|
||||
else
|
||||
args["$opt"]=true
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
args["$((++pos))"]="${1%%=*}"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
wxi-config(){
|
||||
declare -gAx config
|
||||
case $1 in
|
||||
create)
|
||||
if [[ ! -f $HOME/.warengroup/config.json ]]
|
||||
then
|
||||
echo '{}' > $HOME/.warengroup/config.json
|
||||
fi
|
||||
;;
|
||||
deploy)
|
||||
if [[ ! $(jq -e . $HOME/.warengroup/config.json.tmp >/dev/null 2>&1) ]]
|
||||
then
|
||||
mv $HOME/.warengroup/config.json.tmp $HOME/.warengroup/config.json &> /dev/null
|
||||
fi
|
||||
;;
|
||||
write)
|
||||
jq '.'"$2"' = "'$3'"' $HOME/.warengroup/config.json &> $HOME/.warengroup/config.json.tmp
|
||||
wxi-config deploy
|
||||
;;
|
||||
load)
|
||||
while IFS=$'\t' read -r k v; do config["$k"]="$v"; done < <(
|
||||
jq -r '
|
||||
paths(scalars) as $p
|
||||
| "\( $p|map(tostring)|join(".") )\t\( getpath($p) )"
|
||||
' $HOME/.warengroup/config.json
|
||||
)
|
||||
;;
|
||||
reload)
|
||||
wxi-config load
|
||||
;;
|
||||
*)
|
||||
WX_HOME=$HOME/.warengroup
|
||||
export WX_HOME
|
||||
|
||||
mkdir -p $WX_HOME
|
||||
chmod 700 -R "$WX_HOME"
|
||||
|
||||
mkdir -p "$WX_HOME/credentials" \
|
||||
"$WX_HOME/credentials/ssh" \
|
||||
"$WX_HOME/credentials/ssh/eas" \
|
||||
"$WX_HOME/credentials/ansible-vault/eas" \
|
||||
"$PWD/eas/credentials/ssh"
|
||||
|
||||
find "$WX_HOME" -type d -exec chmod 700 {} +
|
||||
find "$WX_HOME" -type f -exec chmod 600 {} +
|
||||
|
||||
wxi-config create
|
||||
if [[ -n ${args['proxy']} ]]
|
||||
then
|
||||
wxi-config write proxy "${args['proxy']}"
|
||||
fi
|
||||
|
||||
wxi-config load
|
||||
|
||||
PROXY_ARGS=()
|
||||
if [[ -n "${config['proxy']}" ]]; then
|
||||
PROXY_ARGS=(--proxy "${config['proxy']}")
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
wxi-config-legacy(){
|
||||
case $1 in
|
||||
login)
|
||||
case $2 in
|
||||
write)
|
||||
jq '.login.'$ORG'.token = "'$TOKEN'"' $HOME/.warengroup/config.json &> $HOME/.warengroup/config.json.tmp
|
||||
;;
|
||||
read)
|
||||
if [[ -f "$HOME/.warengroup/config.json" && $(cat $HOME/.warengroup/config.json | jq -r .login.$ORG.token) != 'null' && $(cat $HOME/.warengroup/config.json | jq -r .login.$ORG.token) != '' ]]
|
||||
then
|
||||
cat $HOME/.warengroup/config.json | jq -r .login.$ORG.token
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
;;
|
||||
erase)
|
||||
TOKEN=""
|
||||
wxi-config login write
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo -n ""
|
||||
;;
|
||||
esac
|
||||
|
||||
mv $HOME/.warengroup/config.json.tmp $HOME/.warengroup/config.json &> /dev/null
|
||||
}
|
||||
|
||||
wx-init(){
|
||||
@@ -103,7 +243,7 @@ wx-login(){
|
||||
elif [[ ! -z ${args['token']} ]]
|
||||
then
|
||||
AUTH_METHOD=token
|
||||
elif [[ $(wxi-config login read) ]]
|
||||
elif [[ $(wxi-config-legacy login read) ]]
|
||||
then
|
||||
AUTH_METHOD=token
|
||||
elif [[ ! -z ${args['username']} ]]
|
||||
@@ -157,7 +297,7 @@ wx-login(){
|
||||
fi
|
||||
|
||||
TOKEN=$VAULT_LOGIN
|
||||
wxi-config login write
|
||||
wxi-config-legacy login write
|
||||
;;
|
||||
token)
|
||||
echo -n "Token: "
|
||||
@@ -167,9 +307,9 @@ wx-login(){
|
||||
then
|
||||
TOKEN=${args['token']}
|
||||
fi
|
||||
elif [[ $(wxi-config login read) ]]
|
||||
elif [[ $(wxi-config-legacy login read) ]]
|
||||
then
|
||||
TOKEN=$(wxi-config login read)
|
||||
TOKEN=$(wxi-config-legacy login read)
|
||||
else
|
||||
read -s TOKEN
|
||||
fi
|
||||
@@ -199,7 +339,7 @@ wx-login(){
|
||||
wxi-content status "Login" "Failed"
|
||||
wxi-footer
|
||||
|
||||
if [[ $(wxi-config login read) ]]
|
||||
if [[ $(wxi-config-legacy login read) ]]
|
||||
then
|
||||
wx-logout &> /dev/null
|
||||
wx-login
|
||||
@@ -209,7 +349,7 @@ wx-login(){
|
||||
fi
|
||||
|
||||
TOKEN=$VAULT_LOGIN
|
||||
wxi-config login write
|
||||
wxi-config-legacy login write
|
||||
;;
|
||||
*)
|
||||
wxi-content status "Login Type" "Unsupported"
|
||||
@@ -432,52 +572,28 @@ wxi-repeat() {
|
||||
fi
|
||||
}
|
||||
|
||||
#{{ COMMANDS }}
|
||||
|
||||
i=1
|
||||
while [[ "$1" != "" ]]
|
||||
do
|
||||
case $1 in
|
||||
--*)
|
||||
key="${1%%=*}"
|
||||
value="${1#*=}"
|
||||
wxi-args "$@"
|
||||
wxi-config
|
||||
|
||||
if [[ "$value" == "$key" ]]
|
||||
then
|
||||
shift
|
||||
value="$1"
|
||||
fi
|
||||
echo -n $wxiBold$wxiRed
|
||||
cat <<'EOF'
|
||||
|
||||
if [[ -z $value ]]
|
||||
then
|
||||
value=true
|
||||
fi
|
||||
(`\ .-') /` ('-. _ .-') ('-. .-') _
|
||||
`.( OO ),' ( OO ).-.( \( -O ) _( OO) ( OO ) )
|
||||
,--./ .--. / . --. / ,------. (,------.,--./ ,--,'
|
||||
| | | | \-. \ | /`. ' | .---'| \ | |\
|
||||
| | | |,.-'-' | | | / | | | | | \| | )
|
||||
| |.'.| |_)\| |_.' | | |_.' |(| '--. | . |/
|
||||
| | | .-. | | . '.' | .--' | |\ |
|
||||
| ,'. | | | | | | |\ \ | `---.| | \ |
|
||||
'--' '--' `--' `--' `--' '--' `------'`--' `--'
|
||||
|
||||
args["${key#--}"]="$value"
|
||||
;;
|
||||
-*)
|
||||
key="${1%=*}"
|
||||
value="${1#*=}"
|
||||
EOF
|
||||
echo -n $wxiNormal
|
||||
|
||||
if [[ "$value" == "$key" ]]
|
||||
then
|
||||
shift
|
||||
value="$1"
|
||||
fi
|
||||
|
||||
if [[ -z $value ]]
|
||||
then
|
||||
value=true
|
||||
fi
|
||||
|
||||
args["${key#-}"]="$value"
|
||||
;;
|
||||
*)
|
||||
args["$i"]="${1%%=*}"
|
||||
i=$((i + 1))
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
wx-init
|
||||
wxi-start
|
||||
wxi-init
|
||||
wxi-stop
|
||||
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
rm init.ps1
|
||||
cp ../infra/init.ps1 init.ps1
|
||||
rm init.sh
|
||||
cp ../infra/init.sh init.sh
|
||||
Reference in New Issue
Block a user