217 lines
4.5 KiB
Plaintext
217 lines
4.5 KiB
Plaintext
|
#!/bin/bash
|
|||
|
# Functions
|
|||
|
#
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
# FUNCTION: Git Keep (touch routine)
|
|||
|
# Touch .gitkeep files to create folders where they might not exist
|
|||
|
#
|
|||
|
#
|
|||
|
function git_keep_touch_routine() {
|
|||
|
|
|||
|
sudo touch \
|
|||
|
"$APPLICATION_ROOT/audio_queued/.gitkeep" \
|
|||
|
"$APPLICATION_ROOT/config/.gitkeep" \
|
|||
|
"$APPLICATION_ROOT/config/trash/.gitkeep" \
|
|||
|
"$APPLICATION_ROOT/playlists/.gitkeep" \
|
|||
|
"$APPLICATION_ROOT/var/log/.gitkeep" \
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
# FUNCTION: Verify Dependencies
|
|||
|
# Check to make sure that all dependencies are installed, else quit
|
|||
|
#
|
|||
|
#
|
|||
|
function check_for_missing_dependencies() {
|
|||
|
|
|||
|
# Dependencies to check for ($DEPENDENCIES defined in system-declarations)
|
|||
|
MISSING_DEPENDENCIES=0
|
|||
|
|
|||
|
# Iterate and check for missing
|
|||
|
for DEPENDENCY_NAME in "${DEPENDENCIES[@]}"; do :
|
|||
|
|
|||
|
# If missing, then flag as missing exists
|
|||
|
if ! command -v "$DEPENDENCY_NAME" &> /dev/null; then
|
|||
|
MISSING_DEPENDENCIES=1
|
|||
|
fi
|
|||
|
|
|||
|
done
|
|||
|
|
|||
|
# if missing exist, list and exit
|
|||
|
if [[ $MISSING_DEPENDENCIES == 1 ]]; then
|
|||
|
|
|||
|
echo -e "The following missing dependencies are required for soapdish (v${VERSION}):"
|
|||
|
for DEPENDENCY_NAME in "${DEPENDENCIES[@]}"; do :
|
|||
|
|
|||
|
if ! command -v "$DEPENDENCY_NAME" &> /dev/null; then
|
|||
|
printf "%s$DEPENDENCY_NAME "
|
|||
|
fi
|
|||
|
|
|||
|
done
|
|||
|
echo -e "\nPlease install and try again."
|
|||
|
|
|||
|
# Exit
|
|||
|
exit
|
|||
|
|
|||
|
fi
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
# FUNCTION: Verify Config File Identifier Validity
|
|||
|
# Check to make sure that all dependencies are installed, else quit
|
|||
|
#
|
|||
|
#
|
|||
|
function verify_config_file_identifier_validity() {
|
|||
|
|
|||
|
echo -e "Verifying config file identifier validity (WIP)"
|
|||
|
|
|||
|
# Get value of identifier and act accordingly (if blank or not)
|
|||
|
CURRENT_CONFIG_FILE_IDENTIFIER_VALUE=$(<$CONFIG_FILE_IDENTIFIER_PATH)
|
|||
|
if [[ $CURRENT_CONFIG_FILE_IDENTIFIER_VALUE != "" ]]
|
|||
|
|
|||
|
then
|
|||
|
echo -e "Config File Identifier Value == $CURRENT_CONFIG_FILE_IDENTIFIER_VALUE"
|
|||
|
echo -e "Here is where you compare flag to each config file"
|
|||
|
echo -e "constuct array of all config names"
|
|||
|
echo -e "cycle through to verify flag matches"
|
|||
|
echo -e "if no match, then wipe flag"
|
|||
|
echo -e "make sure flag in main menu updates AFTER you wipe flag"
|
|||
|
echo -e "(run this function before anythign else runs)"
|
|||
|
|
|||
|
fi
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
# FUNCTION: Render Horizontal Rule
|
|||
|
# Renders an 80-character horizontal rule
|
|||
|
#
|
|||
|
#
|
|||
|
function render_horizontal_rule() {
|
|||
|
|
|||
|
# # HR style alternaties (uncomment desired style)
|
|||
|
# HR_PIECE="\u2504"
|
|||
|
# HR_PIECE="\u2508"
|
|||
|
HR_PIECE="\u2500"
|
|||
|
# HR_PIECE="–"
|
|||
|
|
|||
|
# Render
|
|||
|
for i in {1..80}
|
|||
|
do
|
|||
|
printf "$HR_PIECE"
|
|||
|
done
|
|||
|
echo ""
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
# FUNCTION: Generate Random Hex Value
|
|||
|
# Renders an a hex string of $1 character length
|
|||
|
#
|
|||
|
#
|
|||
|
function generate_random_hex_value {
|
|||
|
|
|||
|
HEX_NUMBER_COMPILED=$(tr -dc 'A-F0-9' < /dev/urandom | head -c$1)
|
|||
|
echo "$HEX_NUMBER_COMPILED"
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
#
|
|||
|
# FUNCTION: Render Mini Horizontal Rule
|
|||
|
# Renders an 20-character horizontal rule
|
|||
|
#
|
|||
|
#
|
|||
|
function render_mini_horizontal_rule() {
|
|||
|
|
|||
|
# # HR style alternaties (uncomment desired style)
|
|||
|
# HR_PIECE="\u2504"
|
|||
|
# HR_PIECE="\u2508"
|
|||
|
HR_PIECE="\u2500"
|
|||
|
# HR_PIECE="–"
|
|||
|
|
|||
|
# Render
|
|||
|
for i in {1..20}
|
|||
|
do
|
|||
|
printf "$HR_PIECE"
|
|||
|
done
|
|||
|
echo ""
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
#
|
|||
|
# FUNCTION: Reset Permissions
|
|||
|
# Recursively resets permissions within application
|
|||
|
#
|
|||
|
#
|
|||
|
function reset_permissions() {
|
|||
|
|
|||
|
# Specify target directory ($DIR declared in system-declarations), and reset permissions
|
|||
|
DIR=${APPLICATION_ROOT}
|
|||
|
CURRENT_CHOWN_USER=$(whoami)
|
|||
|
sudo chown -R "$CURRENT_CHOWN_USER" "$DIR"
|
|||
|
sudo chmod 755 -R "$DIR"
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
#
|
|||
|
# FUNCTIONS: Alert Messages
|
|||
|
# Styles input string according to message type (red:error, yellow:warning, green:alert)
|
|||
|
#
|
|||
|
#
|
|||
|
function error_message() {
|
|||
|
echo -e "${COLOR_RED}$1${COLOR_DEFAULT}"
|
|||
|
}
|
|||
|
function warning_message() {
|
|||
|
echo -e "${COLOR_YELLOW}$1${COLOR_DEFAULT}"
|
|||
|
}
|
|||
|
function confirmation_message() {
|
|||
|
echo -e "${COLOR_GREEN}$1${COLOR_DEFAULT}"
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#
|
|||
|
#
|
|||
|
# FUNCTIONS: Encode URL
|
|||
|
# Converts string to url-friendly (encoded) string
|
|||
|
#
|
|||
|
#
|
|||
|
function url_encode_string () {
|
|||
|
tab="`echo -en "\x9"`"
|
|||
|
i="$@"
|
|||
|
i=${i//%/%25} ; i=${i//' '/%20} ; i=${i//$tab/%09}
|
|||
|
i=${i//!/%21} ; i=${i//'"'/%22} ; i=${i//#/%23}
|
|||
|
i=${i//\$/%24} ; i=${i//\&/%26} ; i=${i//\'/%27}
|
|||
|
i=${i//(/%28} ; i=${i//)/%29} ; i=${i//\*/%2a}
|
|||
|
i=${i//+/%2b} ; i=${i//,/%2c} ; i=${i//-/%2d}
|
|||
|
i=${i//\./%2e} ; i=${i//\//%2f} ; i=${i//:/%3a}
|
|||
|
i=${i//;/%3b} ; i=${i//</%3c} ; i=${i//=/%3d}
|
|||
|
i=${i//>/%3e} ; i=${i//\?/%3f} ; i=${i//@/%40}
|
|||
|
i=${i//\[/%5b} ; i=${i//\\/%5c} ; i=${i//\]/%5d}
|
|||
|
i=${i//\^/%5e} ; i=${i//_/%5f} ; i=${i//\`/%60}
|
|||
|
i=${i//\{/%7b} ; i=${i//|/%7c} ; i=${i//\}/%7d}
|
|||
|
i=${i//\~/%7e}
|
|||
|
echo "$i"
|
|||
|
i=""
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|