80 lines
2.1 KiB
Bash
Executable File
80 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# ---
|
|
# - Change API Key for user schleuder to enable managing lists
|
|
# -
|
|
# - Note: You can also run this script to initialise user 'schleuder'
|
|
# ---
|
|
|
|
backup_date="$(date +%Y-%m-%d-%H%M)"
|
|
schleuder_config="/etc/schleuder/schleuder.yml"
|
|
user_schleuder_config="/var/lib/schleuder/.schleuder-cli/schleuder-cli.yml"
|
|
|
|
# - Create API Key for user schleuder
|
|
# -
|
|
api_key="$(schleuder new_api_key)"
|
|
|
|
# - Add the generated API Key to the list of valid api keys at
|
|
# - configuration file $schleuder_config
|
|
# -
|
|
if ! grep -q "$api_key" 2> /dev/null $schleuder_config ; then
|
|
perl -i.$backup_date -n -p \
|
|
-e "s/(^(\s*)valid_api_keys:.*)/\1\n\2 - ${api_key}/" \
|
|
$schleuder_config
|
|
fi
|
|
|
|
|
|
# - Add generated API Key to schleuder's configuration file
|
|
# - '${user_schleuder_config}'
|
|
# -
|
|
|
|
# - If no configuration file present, create a new default one.
|
|
# -
|
|
have_dot_schleuder_cli_yml=true
|
|
if [[ ! -d "~schleuder/.schleuder-cli" ]] ; then
|
|
have_dot_schleuder_cli_yml=false
|
|
elif [[ ! -f "~schleuder/.schleuder-cli/schleuder-cli.yml" ]] ; then
|
|
|
|
# - If the directory is present, no default configuration file (see below)
|
|
# - will be written
|
|
# -
|
|
mv "~schleuder/.schleuder-cli" "~schleuder/.schleuder-cli.${backup_date}"
|
|
|
|
have_dot_schleuder_cli_yml=false
|
|
fi
|
|
|
|
if ! $have_dot_schleuder_cli_yml ; then
|
|
|
|
# Creates a default configuration file '${user_schleuder_config}'
|
|
#
|
|
su - schleuder -s /bin/bash -c "/usr//bin/schleuder-cli lists list > /dev/null 2>&1"
|
|
|
|
fi
|
|
|
|
|
|
# - Now, add the API Key..
|
|
# -
|
|
perl -i.$backup_date -n -p \
|
|
-e "s/^(\s*api_key:).*/\1 ${api_key}/" \
|
|
${user_schleuder_config}
|
|
|
|
|
|
# - Get tls fingerprint of configured certificate
|
|
# -
|
|
cert_fingerprint="$(schleuder cert fingerprint | awk '{print$4}')"
|
|
|
|
# - Add the fingerprint to schleuder users private configuration file
|
|
# -
|
|
if ! grep -q "$cert_fingerprint" 2> /dev/null ${user_schleuder_config} ; then
|
|
perl -i.$backup_date -n -p \
|
|
-e "s/^(\s*tls_fingerprint:).*/\1 ${cert_fingerprint}/" \
|
|
${user_schleuder_config}
|
|
fi
|
|
|
|
|
|
# - Restart 'schleuder-api-daemon'
|
|
# -
|
|
systemctl restart schleuder-api-daemon
|
|
|
|
exit 0
|