infisical-painless/infisical-init

37 lines
1.5 KiB
Plaintext

if [ -n "$(which apk)" ]; then
if [ -z "$(which infisical)" ]; then
apk update
apk add bash curl
curl -1sLf 'https://dl.cloudsmith.io/public/infisical/infisical-cli/setup.alpine.sh' | bash
apk add infisical
fi;
elif [ -n "$(which apt-get)" ]; then
if [ -z "$(which infisical)" ]; then
apt-get update && apt-get install -y curl
curl -1sLf 'https://artifacts-cli.infisical.com/setup.deb.sh' | bash
apt-get install infisical -y
fi;
else
echo "Unsupported package manager. Exiting."
exit 1
fi
missing=""
[ -z "$INFISICAL_API_URL" ] && missing="$missing INFISICAL_API_URL"
[ -z "$INFISICAL_CLIENT_ID" ] && missing="$missing INFISICAL_CLIENT_ID"
[ -z "$INFISICAL_CLIENT_SECRET" ] && missing="$missing INFISICAL_CLIENT_SECRET"
[ -z "$INFISICAL_PROJECT_ID" ] && missing="$missing INFISICAL_PROJECT_ID"
[ -z "$INFISICAL_ENVIRONMENT" ] && missing="$missing INFISICAL_ENVIRONMENT"
if [ -n "$missing" ]; then
echo "One or more required environment variables are missing:$missing. Exiting."
exit 1
fi
export INFISICAL_TOKEN=$(infisical login --method=universal-auth --client-id=$INFISICAL_CLIENT_ID --client-secret=$INFISICAL_CLIENT_SECRET --silent --plain)
if [ "$1" = "file" ]; then
infisical export --projectId=$INFISICAL_PROJECT_ID --env=$INFISICAL_ENVIRONMENT > $2
elif [ "$1" = "run" ]; then
infisical run --projectId=$INFISICAL_PROJECT_ID --env=$INFISICAL_ENVIRONMENT -- $2
else
echo "Invalid argument. Use 'file' or 'run'."
exit 1
fi