function init_repos(){ if [ -d "$WA_REPO" ]; then echo "$WA_REPO does exist, skipping cloning" source $WA_REPO/export_client_name.sh echo "found client name: $CLIENT_NAME" source $HOME/.zshrc git_pull else echo -n "client name: " read -r CLIENT_NAME if [ ! -f $HOME/.ssh/deploy_key ]; then echo -n "deploy key suffix. Leave blank if first key to be deployed for user: " read -r DEPLOY_KEY_SUFFIX echo "create ssh key" echo -n "ssh passphrase: " stty_orig=$(stty -g) # save original terminal setting. stty -echo read -r passphrase stty "$stty_orig" # restore terminal setting. echo "1. client name: $CLIENT_NAME" mkdir -p $HOME/.ssh ssh-keygen -t rsa -N "$passphrase" -C "deploy_key_$CLIENT_NAME$DEPLOY_KEY_SUFFIX" -f $HOME/.ssh/deploy_key echo "please upload now pub key by logging into user $CLIENT_NAME keys ..." echo "if user does not exit. login with admin user and create new user with name: $CLIENT_NAME" echo "make sure the user $CLIENT_NAME is in team shared_deployments and is allowed to pull repository cimp_$CLIENT_NAME" echo "https://git.service.wiseadvice.eu/user/settings/keys" echo " " cat $HOME/.ssh/deploy_key.pub fi echo " " echo -n "ready to pull? type yes: " read -r ready_to_pull if [ "$ready_to_pull" = "yes" ]; then start_ssh_agent echo "preparing" if grep "git.service.wiseadvice.eu" $HOME/.ssh/config > /dev/null then echo "ssh configuration already set" else echo "set ssh configuration" cat <> $HOME/.ssh/config Host git.service.wiseadvice.eu HostName git.service.wiseadvice.eu IdentityFile ~/.ssh/deploy_key Port 8422 IdentitiesOnly yes EOT fi mkdir -p $WA_REPO echo "export CLIENT_NAME=$CLIENT_NAME" > $WA_REPO/export_client_name.sh source $WA_REPO/export_client_name.sh cd $WA_REPO clone_repo_with_retry cimp_$CLIENT_NAME clone_repo_with_retry common_sysadmin if [ "$TASK_PERFORMING" = "k8s_setup" ]; then clone_repo_with_retry shared_resources_k8s ln -sf $WA_REPO/common_sysadmin/k8s $HOME/kubeconfs_common ln -sf $WA_REPO/shared_resources_k8s/k8s $HOME/kubeconfs_common ln -sf $WA_REPO/shared_resources_k8s/manifest.sh $HOME/.zshrc ln -sf $WA_REPO/cimp_$CLIENT_NAME/k8s $HOME/kubeconfs else ln -sf $WA_REPO/common_sysadmin/manifest.sh $HOME/.zshrc fi echo "source .zshrc after pull" echo "change default SHELL of user sysadmin:" chsh -s /usr/bin/zsh source $HOME/.zshrc else echo "Aborting" exit 0 fi fi } function clone_repo_with_retry(){ REPO_NAME=$1 echo "starting to pull into $(pwd) with command" echo "git clone git@git.service.wiseadvice.eu:wiseadvice_apps/$REPO_NAME.git -b main" git clone git@git.service.wiseadvice.eu:wiseadvice_apps/$REPO_NAME.git -b main if [ "$?" != "0" ]; then echo " " echo "Have you checked? " echo "add deployment user as colaborator to the cimp repo" echo "and add deployment user to the team shared_deployments" echo "https://git.service.wiseadvice.eu/org/wiseadvice_apps/teams/shared_deployments" echo -n "Have you checked? Should we try again? type yes: " read -r yes_no if [ "$yes_no" = "yes" ]; then echo "starting to pull into $(pwd)" git clone git@git.service.wiseadvice.eu:wiseadvice_apps/$REPO_NAME.git -b main else echo "Aborting" exit 0 fi fi if [ "$?" != "0" ]; then echo "Aborting" exit 0 fi } # Oh-my-zsh compatible bash ssh-agent start script function _start_agent() { if [[ -f "$ssh_env_cache" ]]; then . "$ssh_env_cache" > /dev/null fi if [[ -S "$SSH_AUTH_SOCK" ]]; then return 0 fi echo "Starting ssh-agent ..." ssh-agent -s | sed '/^echo/d' > "$ssh_env_cache" chmod 600 "$ssh_env_cache" . "$ssh_env_cache" > /dev/null } function start_ssh_agent(){ SHORT_HOST="${HOSTNAME/.*/}" ssh_env_cache="$HOME/.ssh/environment-$SHORT_HOST" _start_agent unset ssh_env_cache unset -f _start_agent ssh-add ~/.ssh/deploy_key }