echo "Hello, World!"#!/bin/bash
set -ux
NATS_URL= $(env| grep NATSJS_CLUSTER_URL | grep -oe '[^=]*$');
workdir=$PWD
cd /nsc
vault kv get -format=json "storagecentral/app/nats/sys"| jq -r .data.credentials|base64 -d > /tmp/natsconfig.zip
chmod 777 /tmp/natsconfig.zip
unzip -o /tmp/natsconfig.zip -x .git/*
cp -r * /nsc
account= $(cat /sandbox/authz.yaml|yq '.account.name')
cd /nsc
for ns in $(yq '.account.roles[]' /sandbox/authz.yaml); do
pub_permissions= $(echo "$ns" | yq e '.pub' -)
sub_permissions=$(echo "$ns" | yq e '.sub' -)
role=$(echo "$ns" | yq e '.name' -)
key=$(nsc describe account $account -J|jq --arg role $role '.nats.signing_keys[] | select(.role == $role) | .'|jq -r .key)
if [ ! -n "$key" ] then
echo "$role is not present"
nsc edit account -n $account --sk generate
absolutepath=$(find ./keys -type f -exec stat -c '%X %n' {} \; | sort -nr | awk 'NR==1 {print $2}')
keyPath=$(basename $absolutepath)
echo "Role:$role created with signing_key:s $keyPath"
nsc edit signing-key --account $account --role $role --sk $keyPath --allow-pub $pub_permissions --allow-sub $sub_permissions
else
nsc edit signing-key --account $account --role $role --sk $key --allow-pub $pub_permissions --allow-sub $sub_permissions
fi
done
for usr in $(yq '.account.users[]' /sandbox/authz.yaml); do
user_name= $(echo "$usr" | yq e '.name' -)
role_name= $(echo "$role" | yq e '.role' -)
user_desc= $(nsc describe user $user_name --data-dir . -J)
prefix="Error: user"
if [[ "$user_desc" =~ ^"$prefix" ]]; then
nsc add user $user_name -a $account -K $role_name
else
key=$(nsc describe account $account -J|jq --arg role $role '.nats.signing_keys[] | select(.role == $role_name) | .'|jq -r .key)
issuer=$($user_desc|jq -r .iss)
if (key <> issuer) then
nsc delete user $user_name
nsc add user $user_name -K $role_name
echo "User added: $user_name with role $role_name"
else
echo "User already exists $user_name"
fi
fi
done
nsc push -u $(env| grep NATSJS_CLUSTER_URL | grep -oe '[^=]*$') -A
zip -r natsconfig.zip .
archive_bytes=$(cat natsconfig.zip | base64)
vault kv put "storagecentral/app/nats/sys" "credentials=$archive_bytes"
rm natsconfig.zip
echo "Directory zipped and stored in Vault successfully!"
sleep 300
Write, Run & Share Bash code online using OneCompiler's Online Bash Shell for free. It's one of the robust, feature-rich Bash shell available over online and getting started with the OneCompiler's Bash Shell is simple and pretty fast. The editor shows sample boilerplate code when you choose language as Bash. OneCompiler also has reference scripts, where you can look for the sample scripts and start coding.
Bash (Bourne Again Shell) is a shell program written by Brian Fox and is an upgraded version of Bourne Shell program 'sh'.
name="Foo"
echo $name
echo "$name"
echo "${name}"
if [ conditional-expression ]
then
statements
fi
if [ conditional-expression ]
then
statements
else
statements
fi
if [ conditional-expression ]
then
statements
elif [ conditional-expression ]
then
statements
else
statements
fi