diff --git a/src/freedombone-addcert b/src/freedombone-addcert
index a2a43946..5a60e0f7 100755
--- a/src/freedombone-addcert
+++ b/src/freedombone-addcert
@@ -186,7 +186,11 @@ function add_cert_letsencrypt {
if [ ! $MY_EMAIL_ADDRESS ]; then
if [ -f $COMPLETION_FILE ]; then
if grep -q "Admin user:" $COMPLETION_FILE; then
- ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ function_check get_completion_param
+ ADMIN_USER=$(get_completion_param "Admin user")
+ if [ ${#ADMIN_USER} -eq 0 ]; then
+ exit 463732
+ fi
MY_EMAIL_ADDRESS=$ADMIN_USER@$HOSTNAME
fi
fi
diff --git a/src/freedombone-app-batman b/src/freedombone-app-batman
index f012e415..4bab5f9c 100755
--- a/src/freedombone-app-batman
+++ b/src/freedombone-app-batman
@@ -46,7 +46,7 @@ function change_password_batman {
}
function configure_firewall_for_batman {
- if grep -Fxq "configure_firewall_for_batman" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $ENABLE_BATMAN != "yes" ]]; then
@@ -55,7 +55,7 @@ function configure_firewall_for_batman {
function_check save_firewall_settings
save_firewall_settings
- echo 'configure_firewall_for_batman' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function reconfigure_batman {
diff --git a/src/freedombone-app-dlna b/src/freedombone-app-dlna
index 16df1000..07310f7e 100755
--- a/src/freedombone-app-dlna
+++ b/src/freedombone-app-dlna
@@ -78,7 +78,7 @@ function upgrade_dlna {
}
function configure_firewall_for_dlna {
- if grep -Fxq "configure_firewall_for_dlna" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -92,7 +92,7 @@ function configure_firewall_for_dlna {
OPEN_PORTS+=('DLNA 1900')
OPEN_PORTS+=('DLNA 8200')
- echo 'configure_firewall_for_dlna' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function backup_local_dlna {
@@ -168,7 +168,7 @@ function remove_dlna {
}
function install_dlna_main {
- if grep -Fxq "install_dlna_main" $COMPLETION_FILE; then
+ if [[ $(app_is_installed dlna_main) == "1" ]]; then
return
fi
@@ -217,11 +217,11 @@ function install_dlna_main {
function_check configure_firewall_for_dlna
configure_firewall_for_dlna
- echo 'install_dlna_main' >> $COMPLETION_FILE
+ install_completed dlna_main
}
function script_for_attaching_usb_drive {
- if grep -Fxq "script_for_attaching_usb_drive" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
echo '#!/bin/bash' > /usr/bin/attach-music
@@ -256,7 +256,7 @@ function script_for_attaching_usb_drive {
ln -s /usr/bin/remove-music /usr/bin/detach-pictures
ln -s /usr/bin/remove-music /usr/bin/remove-pictures
- echo 'script_for_attaching_usb_drive' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_dlna {
diff --git a/src/freedombone-app-dokuwiki b/src/freedombone-app-dokuwiki
index 53425403..16af905d 100755
--- a/src/freedombone-app-dokuwiki
+++ b/src/freedombone-app-dokuwiki
@@ -85,7 +85,8 @@ function backup_local_dokuwiki {
function restore_local_dokuwiki {
if [ -d /var/lib/dokuwiki ]; then
echo $"Restoring Dokuwiki installation"
- DOKUWIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "dokuwiki domain" | awk -F ':' '{print $2}')
+ function_check get_completion_param
+ DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
temp_restore_dir=/root/tempdokuwiki
function_check restore_directory_from_usb
restore_directory_from_usb $temp_restore_dir dokuwiki
@@ -131,7 +132,8 @@ function backup_remote_dokuwiki {
function restore_remote_dokuwiki {
if [ -d $SERVER_DIRECTORY/backup/dokuwiki ]; then
- DOKUWIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "dokuwiki domain" | awk -F ':' '{print $2}')
+ function_check get_completion_param
+ DOKUWIKI_DOMAIN_NAME=$(get_completion_param "dokuwiki domain")
echo $"Restoring Dokuwiki installation $DOKUWIKI_DOMAIN_NAME"
function_check restore_directory_from_friend
restore_directory_from_friend /root/tempdokuwiki dokuwiki
@@ -561,11 +563,7 @@ function install_dokuwiki {
chmod 600 /home/$MY_USERNAME/README
fi
- if ! grep -q "dokuwiki domain" $COMPLETION_FILE; then
- echo "dokuwiki domain:$DOKUWIKI_DOMAIN_NAME" >> $COMPLETION_FILE
- else
- sed -i "s|dokuwiki domain.*|dokuwiki domain:$DOKUWIKI_DOMAIN_NAME|g" $COMPLETION_FILE
- fi
+ set_completion_param "dokuwiki domain" "$DOKUWIKI_DOMAIN_NAME"
APP_INSTALLED=1
}
diff --git a/src/freedombone-app-gnusocial b/src/freedombone-app-gnusocial
index 71314f85..9953be4e 100755
--- a/src/freedombone-app-gnusocial
+++ b/src/freedombone-app-gnusocial
@@ -74,7 +74,8 @@ gnusocial_variables=(GNUSOCIAL_COMMIT
function remove_user_gnusocial {
remove_username="$1"
- GNUSOCIAL_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
+ function_check get_completion_param
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
if [ -d /var/www/$GNUSOCIAL_DOMAIN_NAME ]; then
cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
php scripts/deleteprofile.php -n $remove_username -y
@@ -85,7 +86,7 @@ function add_user_gnusocial {
new_username="$1"
new_user_password="$2"
- GNUSOCIAL_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
if [ -d /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs ]; then
cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
php scripts/registeruser.php -n $new_username -w "$new_user_password" -e "$new_username@$HOSTNAME"
@@ -231,7 +232,7 @@ function reconfigure_gnusocial {
function upgrade_gnusocial {
if grep -q "gnusocial domain" $COMPLETION_FILE; then
- GNUSOCIAL_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
fi
# update to the next commit
@@ -246,7 +247,7 @@ function upgrade_gnusocial {
function backup_local_gnusocial {
GNUSOCIAL_DOMAIN_NAME='gnusocial'
if grep -q "gnusocial domain" $COMPLETION_FILE; then
- GNUSOCIAL_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
fi
source_directory=/var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
@@ -274,7 +275,7 @@ function restore_local_gnusocial {
if ! grep -q "gnusocial domain" $COMPLETION_FILE; then
return
fi
- GNUSOCIAL_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
if [ $GNUSOCIAL_DOMAIN_NAME ]; then
echo $"Restoring gnusocial"
temp_restore_dir=/root/tempgnusocial
@@ -300,7 +301,7 @@ function restore_local_gnusocial {
function backup_remote_gnusocial {
if grep -q "gnusocial domain" $COMPLETION_FILE; then
- GNUSOCIAL_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
temp_backup_dir=/var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
if [ -d $temp_backup_dir ]; then
function_check suspend_site
@@ -325,7 +326,7 @@ function backup_remote_gnusocial {
function restore_remote_gnusocial {
if grep -q "gnusocial domain" $COMPLETION_FILE; then
echo $"Restoring gnusocial"
- GNUSOCIAL_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
+ GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
# stop the daemons
cd /var/www/${GNUSOCIAL_DOMAIN_NAME}/htdocs
@@ -412,11 +413,7 @@ function install_gnusocial_main {
cd /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
git checkout $GNUSOCIAL_COMMIT -b $GNUSOCIAL_COMMIT
- if ! grep -q "gnusocial commit" $COMPLETION_FILE; then
- echo "gnusocial commit:$GNUSOCIAL_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/gnusocial commit.*/gnusocial commit:$GNUSOCIAL_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "gnusocial commit" "$GNUSOCIAL_COMMIT"
chmod a+w /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
chown www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
@@ -642,11 +639,7 @@ function install_gnusocial_main {
fi
fi
- if ! grep -q "gnusocial domain" $COMPLETION_FILE; then
- echo "gnusocial domain:$GNUSOCIAL_DOMAIN_NAME" >> $COMPLETION_FILE
- else
- sed -i "s|gnusocial domain.*|gnusocial domain:$GNUSOCIAL_DOMAIN_NAME|g" $COMPLETION_FILE
- fi
+ set_completion_param "gnusocial domain" "$GNUSOCIAL_DOMAIN_NAME"
install_completed gnusocial_main
}
@@ -715,11 +708,7 @@ function install_gnusocial_plugin_sharings {
chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
- if ! grep -q "gnusocial sharings plugin commit" $COMPLETION_FILE; then
- echo "gnusocial sharings plugin commit:$SHARINGS_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s|gnusocial sharings plugin commit.*|gnusocial sharings plugin commit:$SHARINGS_COMMIT|g" $COMPLETION_FILE
- fi
+ set_completion_param gnusocial "sharings plugin commit" "$SHARINGS_COMMIT"
install_completed gnusocial_plugin_sharings
}
@@ -761,11 +750,7 @@ function install_gnusocial_plugin_sharings_theme {
chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
- if ! grep -q "gnusocial sharings plugin theme commit" $COMPLETION_FILE; then
- echo "gnusocial sharings plugin theme commit:$SHARINGS_THEME_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s|gnusocial sharings plugin theme commit.*|gnusocial sharings plugin theme commit:$SHARINGS_THEME_COMMIT|g" $COMPLETION_FILE
- fi
+ set_completions_param "gnusocial sharings plugin theme commit" "$SHARINGS_THEME_COMMIT"
install_completed gnusocial_plugin_sharings_theme
}
@@ -914,11 +899,7 @@ function install_gnusocial_theme {
fi
fi
- if ! grep -q "gnusocial theme commit" $COMPLETION_FILE; then
- echo "gnusocial theme commit:$GNUSOCIAL_THEME_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s|gnusocial theme commit.*|gnusocial theme commit:$GNUSOCIAL_THEME_COMMIT|g" $COMPLETION_FILE
- fi
+ set_completions_param "gnusocial theme commit" "$GNUSOCIAL_THEME_COMMIT"
chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
@@ -957,11 +938,7 @@ function install_gnusocial_markdown {
echo "addPlugin('Markdown');" >> $gnusocial_config_file
fi
- if ! grep -q "gnusocial Markdown commit" $COMPLETION_FILE; then
- echo "gnusocial Markdown commit:$GNUSOCIAL_MARKDOWN_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s|gnusocial Markdown commit.*|gnusocial Markdown commit:$GNUSOCIAL_MARKDOWN_COMMIT|g" $COMPLETION_FILE
- fi
+ set_completions_param "gnusocial markdown commit" "$GNUSOCIAL_MARKDOWN_COMMIT"
chown -R www-data:www-data $GNUSOCIAL_PATH
@@ -978,7 +955,7 @@ function install_gnusocial_plugin_nsfw {
function_check set_repo_commit
set_repo_commit /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs/local/plugins "gnusocial NSFW plugin commit" "$GNUSOCIAL_NSFW_COMMIT" $GNUSOCIAL_NSFW_REPO
- if grep -Fxq "install_gnusocial_plugin_nsfw" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -1006,11 +983,7 @@ function install_gnusocial_plugin_nsfw {
chown -R www-data:www-data /var/www/$GNUSOCIAL_DOMAIN_NAME/htdocs
- if ! grep -q "gnusocial NSFW plugin commit" $COMPLETION_FILE; then
- echo "gnusocial NSFW plugin commit:$GNUSOCIAL_NSFW_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s|gnusocial NSFW plugin commit.*|gnusocial NSFW plugin commit:$GNUSOCIAL_NSFW_COMMIT|g" $COMPLETION_FILE
- fi
+ set_completions_param "gnusocial NSFW plugin commit" "$GNUSOCIAL_NSFW_COMMIT"
install_completed gnusocial_plugin_nsfw
}
diff --git a/src/freedombone-app-gogs b/src/freedombone-app-gogs
index da8d3a40..a94b1bb2 100755
--- a/src/freedombone-app-gogs
+++ b/src/freedombone-app-gogs
@@ -128,7 +128,7 @@ function upgrade_gogs {
return
fi
- CURR_GOGS_VERSION=$(cat $COMPLETION_FILE | grep "gogs version" | head -n 1 | awk -F ':' '{print $2}')
+ CURR_GOGS_VERSION=$(get_completion_param "gogs version")
if [[ "${CURR_GOGS_VERSION}" == "${GOGS_VERSION}" ]]; then
return
fi
@@ -288,7 +288,7 @@ function backup_remote_gogs {
function restore_remote_gogs {
if grep -q "gogs domain" $COMPLETION_FILE; then
- GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gogs domain" | awk -F ':' '{print $2}')
+ GIT_DOMAIN_NAME=$(get_completion_param "gogs domain")
function_check gogs_create_database
gogs_create_database
diff --git a/src/freedombone-app-htmly b/src/freedombone-app-htmly
index cd17dd24..f533c51c 100755
--- a/src/freedombone-app-htmly
+++ b/src/freedombone-app-htmly
@@ -30,18 +30,18 @@
VARIANTS="full full-vim writer"
-HYMLY_DOMAIN_NAME=
-HYMLY_CODE=
-HYMLY_ONION_PORT=8086
-HYMLY_REPO="https://github.com/danpros/htmly"
-HYMLY_COMMIT='bf5fe9486160be4da86d8987d3e5c977e1dc6d32'
+HTMLY_DOMAIN_NAME=
+HTMLY_CODE=
+HTMLY_ONION_PORT=8086
+HTMLY_REPO="https://github.com/danpros/htmly"
+HTMLY_COMMIT='bf5fe9486160be4da86d8987d3e5c977e1dc6d32'
HTMLY_TITLE="My Htmly"
HTMLY_SUBTITLE="Another ${PROJECT_NAME} Htmly"
-htmly_variables=(HYMLY_REPO
- HYMLY_COMMIT
- HYMLY_DOMAIN_NAME
- HYMLY_CODE
+htmly_variables=(HTMLY_REPO
+ HTMLY_COMMIT
+ HTMLY_DOMAIN_NAME
+ HTMLY_CODE
HTMLY_TITLE
HTMLY_SUBTITLE
ONION_ONLY
@@ -91,8 +91,8 @@ function set_avatar_from_url {
function remove_user_htmly {
remove_username="$1"
- if [ -f /var/www/${HYMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini ]; then
- rm /var/www/${HYMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini
+ if [ -f /var/www/${HTMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini ]; then
+ rm /var/www/${HTMLY_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini
fi
}
@@ -105,7 +105,7 @@ function add_user_htmly {
new_username="$1"
new_user_password="$2"
- if [ ! -d /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users ]; then
+ if [ ! -d /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users ]; then
echo '2'
return
fi
@@ -114,11 +114,11 @@ function add_user_htmly {
echo '3'
return
fi
- echo ';Password' > /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
- echo "password = $NEW_USER_PASSWORD_HASH" >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
- echo 'encryption = password_hash' >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
- echo ';Role' >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
- echo 'role = admin' >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo ';Password' > /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo "password = $NEW_USER_PASSWORD_HASH" >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo 'encryption = password_hash' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo ';Role' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
+ echo 'role = admin' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$new_username.ini
echo '0'
}
@@ -152,21 +152,19 @@ function install_interactive_htmly {
if [[ $ONION_ONLY != "no" ]]; then
HTMLY_TITLE='My Htmly'
- HYMLY_DOMAIN_NAME='htmly.local'
+ HTMLY_DOMAIN_NAME='htmly.local'
write_config_param "HTMLY_TITLE" "$HTMLY_TITLE"
- write_config_param "HYMLY_DOMAIN_NAME" "$HYMLY_DOMAIN_NAME"
+ write_config_param "HTMLY_DOMAIN_NAME" "$HTMLY_DOMAIN_NAME"
else
function_check interactive_site_details_with_title
- interactive_site_details_with_title "htmly" "HTMLY_TITLE" "HYMLY_DOMAIN_NAME" "HYMLY_CODE"
+ interactive_site_details_with_title "htmly" "HTMLY_TITLE" "HTMLY_DOMAIN_NAME" "HTMLY_CODE"
fi
APP_INSTALLED=1
}
function change_password_htmly {
- if ! grep -q "htmly domain:" $COMPLETION_FILE; then
- echo "htmly domain:$HYMLY_DOMAIN_NAME" >> $COMPLETION_FILE
- fi
- HYMLY_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "htmly domain" | head -n 1 | awk -F ':' '{print $2}')
+ set_completion_param "htmly domain" "$HTMLY_DOMAIN_NAME"
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
HTMLY_USERNAME="$1"
HTMLY_PASSWORD="$2"
@@ -179,7 +177,7 @@ function change_password_htmly {
echo $'Htmly admin password could not be hashed'
exit 625728
fi
- sed -i "s|password =.*|password = $HTMLY_PASSWORD_HASH|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$HTMLY_USERNAME.ini
+ sed -i "s|password =.*|password = $HTMLY_PASSWORD_HASH|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$HTMLY_USERNAME.ini
}
function reconfigure_htmly {
@@ -187,25 +185,25 @@ function reconfigure_htmly {
}
function upgrade_htmly {
- read_config_param "HYMLY_DOMAIN_NAME"
+ read_config_param "HTMLY_DOMAIN_NAME"
function_check set_repo_commit
- set_repo_commit /var/www/$HYMLY_DOMAIN_NAME/htdocs "htmly commit" "$HYMLY_COMMIT" $HYMLY_REPO
+ set_repo_commit /var/www/$HTMLY_DOMAIN_NAME/htdocs "htmly commit" "$HTMLY_COMMIT" $HTMLY_REPO
}
function backup_local_htmly {
- HYMLY_DOMAIN_NAME='htmly'
+ HTMLY_DOMAIN_NAME='htmly'
if grep -q "htmly domain" $COMPLETION_FILE; then
- HYMLY_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "htmly domain" | awk -F ':' '{print $2}')
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
fi
- source_directory=/var/www/${HYMLY_DOMAIN_NAME}/htdocs
+ source_directory=/var/www/${HTMLY_DOMAIN_NAME}/htdocs
if [ -d $source_directory ]; then
dest_directory=htmly
echo $"Backing up $source_directory to $dest_directory"
function_check suspend_site
- suspend_site ${HYMLY_DOMAIN_NAME}
+ suspend_site ${HTMLY_DOMAIN_NAME}
function_check backup_directory_to_usb
backup_directory_to_usb $source_directory $dest_directory
@@ -218,52 +216,52 @@ function backup_local_htmly {
}
function restore_local_htmly {
- HYMLY_DOMAIN_NAME='htmly'
+ HTMLY_DOMAIN_NAME='htmly'
if grep -q "htmly domain" $COMPLETION_FILE; then
- HYMLY_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "htmly domain" | awk -F ':' '{print $2}')
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
fi
- if [ $HYMLY_DOMAIN_NAME ]; then
+ if [ $HTMLY_DOMAIN_NAME ]; then
echo $"Restoring htmly installation"
temp_restore_dir=/root/temphtmly
restore_directory_from_usb $temp_restore_dir htmly
- rm -rf /var/www/${HYMLY_DOMAIN_NAME}/htdocs
- cp -r $temp_restore_dir/var/www/${HYMLY_DOMAIN_NAME}/htdocs /var/www/${HYMLY_DOMAIN_NAME}/
+ rm -rf /var/www/${HTMLY_DOMAIN_NAME}/htdocs
+ cp -r $temp_restore_dir/var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/
if [ ! "$?" = "0" ]; then
set_user_permissions
backup_unmount_drive
exit 593
fi
rm -rf $temp_restore_dir
- if [ ! -d /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content ]; then
+ if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content ]; then
echo $"No content directory found after restoring htmly"
set_user_permissions
backup_unmount_drive
exit 287
fi
- chown -R www-data:www-data /var/www/${HYMLY_DOMAIN_NAME}/htdocs
+ chown -R www-data:www-data /var/www/${HTMLY_DOMAIN_NAME}/htdocs
# Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${HYMLY_DOMAIN_NAME}.bundle.crt ]; then
- sed -i "s|${HYMLY_DOMAIN_NAME}.crt|${HYMLY_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${HYMLY_DOMAIN_NAME}
+ if [ -f /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${HTMLY_DOMAIN_NAME}.crt|${HTMLY_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${HTMLY_DOMAIN_NAME}
fi
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
- if [ -d /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post ]; then
- mv /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/*.md /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post ]; then
+ mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/*.md /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post
fi
fi
done
- if [ -d /etc/letsencrypt/live/${HYMLY_DOMAIN_NAME} ]; then
- ln -s /etc/letsencrypt/live/${HYMLY_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${HYMLY_DOMAIN_NAME}.key
- ln -s /etc/letsencrypt/live/${HYMLY_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${HYMLY_DOMAIN_NAME}.pem
+ if [ -d /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${HTMLY_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.pem
fi
fi
}
function backup_remote_htmly {
if grep -q "htmly domain" $COMPLETION_FILE; then
- HYMLY_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "htmly domain" | awk -F ':' '{print $2}')
- temp_backup_dir=/var/www/${HYMLY_DOMAIN_NAME}/htdocs
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
+ temp_backup_dir=/var/www/${HTMLY_DOMAIN_NAME}/htdocs
if [ -d $temp_backup_dir ]; then
echo $"Backing up htmly"
backup_directory_to_friend $temp_backup_dir htmly
@@ -277,63 +275,63 @@ function backup_remote_htmly {
function restore_remote_htmly {
if [ -d $SERVER_DIRECTORY/backup/htmly ]; then
- HYMLY_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "htmly domain" | awk -F ':' '{print $2}')
- echo $"Restoring htmly installation $HYMLY_DOMAIN_NAME"
+ HTMLY_DOMAIN_NAME=$(get_completion_param "htmly domain")
+ echo $"Restoring htmly installation $HTMLY_DOMAIN_NAME"
temp_restore_dir=/root/temphtmly
mkdir $temp_restore_dir
function_check restore_directory_from_friend
restore_directory_from_friend $temp_restore_dir htmly
- rm -rf /var/www/${HYMLY_DOMAIN_NAME}/htdocs
- cp -r $temp_restore_dir/var/www/${HYMLY_DOMAIN_NAME}/htdocs /var/www/${HYMLY_DOMAIN_NAME}/
+ rm -rf /var/www/${HTMLY_DOMAIN_NAME}/htdocs
+ cp -r $temp_restore_dir/var/www/${HTMLY_DOMAIN_NAME}/htdocs /var/www/${HTMLY_DOMAIN_NAME}/
if [ ! "$?" = "0" ]; then
exit 593
fi
rm -rf $temp_restore_dir
- if [ ! -d /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content ]; then
+ if [ ! -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content ]; then
echo $"No content directory found after restoring htmly"
exit 287
fi
# Ensure that the bundled SSL cert is being used
- if [ -f /etc/ssl/certs/${HYMLY_DOMAIN_NAME}.bundle.crt ]; then
- sed -i "s|${HYMLY_DOMAIN_NAME}.crt|${HYMLY_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${HYMLY_DOMAIN_NAME}
+ if [ -f /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.bundle.crt ]; then
+ sed -i "s|${HTMLY_DOMAIN_NAME}.crt|${HTMLY_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${HTMLY_DOMAIN_NAME}
fi
for d in /home/*/ ; do
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
- if [ -d /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post ]; then
- mv /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/*.md /var/www/${HYMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post
+ if [ -d /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post ]; then
+ mv /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/*.md /var/www/${HTMLY_DOMAIN_NAME}/htdocs/content/$USERNAME/htmly/uncategorized/post
fi
fi
done
- if [ -d /etc/letsencrypt/live/${HYMLY_DOMAIN_NAME} ]; then
- ln -s /etc/letsencrypt/live/${HYMLY_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${HYMLY_DOMAIN_NAME}.key
- ln -s /etc/letsencrypt/live/${HYMLY_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${HYMLY_DOMAIN_NAME}.pem
+ if [ -d /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME} ]; then
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${HTMLY_DOMAIN_NAME}.key
+ ln -s /etc/letsencrypt/live/${HTMLY_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${HTMLY_DOMAIN_NAME}.pem
fi
echo $"Restore of htmly complete"
fi
}
function remove_htmly {
- if [ ${#HYMLY_DOMAIN_NAME} -eq 0 ]; then
+ if [ ${#HTMLY_DOMAIN_NAME} -eq 0 ]; then
return
fi
- read_config_param "HYMLY_DOMAIN_NAME"
- nginx_dissite $HYMLY_DOMAIN_NAME
- if [ -f /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME ]; then
- rm -f /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ read_config_param "HTMLY_DOMAIN_NAME"
+ nginx_dissite $HTMLY_DOMAIN_NAME
+ if [ -f /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME ]; then
+ rm -f /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
fi
- if [ -d /var/www/$HYMLY_DOMAIN_NAME ]; then
- rm -rf /var/www/$HYMLY_DOMAIN_NAME
+ if [ -d /var/www/$HTMLY_DOMAIN_NAME ]; then
+ rm -rf /var/www/$HTMLY_DOMAIN_NAME
fi
- if [ $HYMLY_CODE ]; then
+ if [ $HTMLY_CODE ]; then
if [ -f /usr/bin/dynamicdns ]; then
- sed -i "/$HYMLY_DOMAIN_NAME/d" /usr/bin/dynamicdns
- sed -i "/$HYMLY_CODE/d" /usr/bin/dynamicdns
+ sed -i "/$HTMLY_DOMAIN_NAME/d" /usr/bin/dynamicdns
+ sed -i "/$HTMLY_CODE/d" /usr/bin/dynamicdns
fi
fi
function_check remove_onion_service
- remove_onion_service htmly ${HYMLY_ONION_PORT}
+ remove_onion_service htmly ${HTMLY_ONION_PORT}
sed -i '/install_htmly/d' $COMPLETION_FILE
sed -i '/Htmly .*/d' $COMPLETION_FILE
}
@@ -341,254 +339,250 @@ function remove_htmly {
function get_htmly_admin_password {
if [ -f /home/$MY_USERNAME/README ]; then
if grep -q "Your htmly password is" /home/$MY_USERNAME/README; then
- HYMLY_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Your htmly password is" | awk -F ':' '{print $2}' | sed 's/^ *//')
+ HTMLY_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Your htmly password is" | awk -F ':' '{print $2}' | sed 's/^ *//')
fi
fi
}
function install_htmly_social_networks {
# set social networks
- if grep -q "social.hubzilla" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini; then
- sed -i "s|;social.hubzilla|social.hubzilla|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i "s|social.hubzilla.*|social.hubzilla = \"$HUBZILLA_DOMAIN_NAME\"|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
+ if grep -q "social.hubzilla" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini; then
+ sed -i "s|;social.hubzilla|social.hubzilla|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|social.hubzilla.*|social.hubzilla = \"$HUBZILLA_DOMAIN_NAME\"|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
fi
- if grep -q "social.gnusocial" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini; then
- sed -i "s|;social.gnusocial|social.gnusocial|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i "s|social.gnusocial.*|social.gnusocial = \"$MICROHTMLY_DOMAIN_NAME\"|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
+ if grep -q "social.gnusocial" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini; then
+ sed -i "s|;social.gnusocial|social.gnusocial|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|social.gnusocial.*|social.gnusocial = \"$MICROHTMLY_DOMAIN_NAME\"|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
fi
# clear proprietary social network strings
- sed -i 's|social.facebook.*|social.facebook = ""|g' /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i 's|social.twitter.*|social.twitter = ""|g' /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i 's|social.google.*|social.google = ""|g' /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i 's|social.facebook.*|social.facebook = ""|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i 's|social.twitter.*|social.twitter = ""|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i 's|social.google.*|social.google = ""|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
}
function install_htmly_user {
# create a user password
function_check get_htmly_admin_password
get_htmly_admin_password
- if [ ! $HYMLY_ADMIN_PASSWORD ]; then
+ if [ ! $HTMLY_ADMIN_PASSWORD ]; then
if [ -f $IMAGE_PASSWORD_FILE ]; then
- HYMLY_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
+ HTMLY_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
else
- HYMLY_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
+ HTMLY_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
fi
echo '' >> /home/$MY_USERNAME/README
echo '' >> /home/$MY_USERNAME/README
echo $'HTMLy Htmly' >> /home/$MY_USERNAME/README
echo '==========' >> /home/$MY_USERNAME/README
echo $"Your htmly username: $MY_USERNAME" >> /home/$MY_USERNAME/README
- echo $"Your htmly password is: $HYMLY_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
+ echo $"Your htmly password is: $HTMLY_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
if [[ $ONION_ONLY == 'no' ]]; then
- echo $"Log into your htmly at https://$HYMLY_DOMAIN_NAME/login" >> /home/$MY_USERNAME/README
+ echo $"Log into your htmly at https://$HTMLY_DOMAIN_NAME/login" >> /home/$MY_USERNAME/README
fi
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
chmod 600 /home/$MY_USERNAME/README
fi
# create a user
- HYMLY_ADMIN_PASSWORD_HASH=$(${PROJECT_NAME}-sec --htmlyhash "$HYMLY_ADMIN_PASSWORD")
- if [ ${#HYMLY_ADMIN_PASSWORD_HASH} -lt 8 ]; then
+ HTMLY_ADMIN_PASSWORD_HASH=$(${PROJECT_NAME}-sec --htmlyhash "$HTMLY_ADMIN_PASSWORD")
+ if [ ${#HTMLY_ADMIN_PASSWORD_HASH} -lt 8 ]; then
echo $'Htmly admin password could not be hashed'
exit 625728
fi
- echo ';Password' > /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo "password = $HYMLY_ADMIN_PASSWORD_HASH" >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo 'encryption = password_hash' >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo ';Role' >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
- echo 'role = admin' >> /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo ';Password' > /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo "password = $HTMLY_ADMIN_PASSWORD_HASH" >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo 'encryption = password_hash' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo ';Role' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
+ echo 'role = admin' >> /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
}
function install_htmly_settings {
- cp /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini.example /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i "s|site.url.*|site.url = '/'|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i "s|htmly.title.*|htmly.title = '$HTMLY_TITLE'|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i "s|htmly.tagline.*|htmly.tagline = '$HTMLY_SUBTITLE'|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i 's|timezone.*|timezone = "Europe/London"|g' /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
- sed -i "s|Your name|$MY_NAME|g" /var/www/$HYMLY_DOMAIN_NAME/htdocs/config/config.ini
+ cp /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini.example /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|site.url.*|site.url = '/'|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|htmly.title.*|htmly.title = '$HTMLY_TITLE'|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|htmly.tagline.*|htmly.tagline = '$HTMLY_SUBTITLE'|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i 's|timezone.*|timezone = "Europe/London"|g' /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
+ sed -i "s|Your name|$MY_NAME|g" /var/www/$HTMLY_DOMAIN_NAME/htdocs/config/config.ini
}
function install_htmly_website {
function_check nginx_http_redirect
- nginx_http_redirect $HYMLY_DOMAIN_NAME
- echo 'server {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' listen 443 ssl;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " root /var/www/$HYMLY_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " server_name $HYMLY_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' access_log off;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " error_log /var/log/nginx/${HYMLY_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' index index.php;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' charset utf-8;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ nginx_http_redirect $HTMLY_DOMAIN_NAME
+ echo 'server {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' listen 443 ssl;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " root /var/www/$HTMLY_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " server_name $HTMLY_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' access_log off;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " error_log /var/log/nginx/${HTMLY_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
function_check nginx_ssl
- nginx_ssl $HYMLY_DOMAIN_NAME
+ nginx_ssl $HTMLY_DOMAIN_NAME
function_check nginx_disable_sniffing
- nginx_disable_sniffing $HYMLY_DOMAIN_NAME
- echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location / {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ nginx_disable_sniffing $HTMLY_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
function_check nginx_limits
- nginx_limits $HYMLY_DOMAIN_NAME
- echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' allow all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' expires 30d;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # block these file types' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # or a unix socket' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' #deny access to store' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /store {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '}' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ nginx_limits $HTMLY_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' allow all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
}
function install_htmly_website_onion {
- echo 'server {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " listen 127.0.0.1:${HYMLY_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " root /var/www/$HYMLY_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " server_name $HYMLY_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' access_log off;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " error_log /var/log/nginx/${HYMLY_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' index index.php;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' charset utf-8;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ echo 'server {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " listen 127.0.0.1:${HTMLY_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " root /var/www/$HTMLY_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " server_name $HTMLY_DOMAIN_NAME;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' access_log off;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " error_log /var/log/nginx/${HTMLY_DOMAIN_NAME}_error_ssl.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' charset utf-8;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' proxy_read_timeout 86400s;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
function_check nginx_disable_sniffing
- nginx_disable_sniffing $HYMLY_DOMAIN_NAME
- echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location / {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ nginx_disable_sniffing $HTMLY_DOMAIN_NAME
+ echo ' add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # rewrite to front controller as default rule' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location / {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
function_check nginx_limits
- nginx_limits $HYMLY_DOMAIN_NAME
- echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' allow all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' expires 30d;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # block these file types' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # or a unix socket' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ nginx_limits $HTMLY_DOMAIN_NAME
+ echo ' rewrite ^/(.*) /index.php?q=$uri&$args last;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # make sure webfinger and other well known services aren't blocked" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # by denying dot files and rewrite request to the front controller' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ^~ /.well-known/ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' allow all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # statically serve these file types when possible' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # otherwise fall back to front controller' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # allow browser to cache them' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # added .htm for advanced source code editor library' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' expires 30d;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri /index.php?q=$uri&$args;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # block these file types' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.(tpl|md|tgz|log|out)$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # or a unix socket' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~* \.php$ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
function_check nginx_limits
- nginx_limits $HYMLY_DOMAIN_NAME
- echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' #deny access to store' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /store {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' deny all;' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo ' }' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
- echo '}' >> /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ nginx_limits $HTMLY_DOMAIN_NAME
+ echo ' # Zero-day exploit defense.' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # http://forum.nginx.org/read.php?2,88845,page=3' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Won't work properly (404 error) if the file is not stored on this" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # server, which is entirely possible with php-fpm/php-fcgi." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on" >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo " # another machine. And then cross your fingers that you won't get hacked." >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' try_files $uri $uri/ /index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_split_path_info ^(.+\.php)(/.+)$;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-cgi alone:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # fastcgi_pass 127.0.0.1:9000;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # With php5-fpm:' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' include fastcgi_params;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_index index.php;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' # deny access to all dot files' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\. {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' #deny access to store' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /store {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /(data|conf|bin|inc)/ {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' location ~ /\.ht {' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' deny all;' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo ' }' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
+ echo '}' >> /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
}
function install_htmly_from_repo {
- if [ ! -d /var/www/$HYMLY_DOMAIN_NAME ]; then
- mkdir /var/www/$HYMLY_DOMAIN_NAME
+ if [ ! -d /var/www/$HTMLY_DOMAIN_NAME ]; then
+ mkdir /var/www/$HTMLY_DOMAIN_NAME
fi
- cd /var/www/$HYMLY_DOMAIN_NAME
- git_clone $HYMLY_REPO htdocs
+ cd /var/www/$HTMLY_DOMAIN_NAME
+ git_clone $HTMLY_REPO htdocs
cd htdocs
- git checkout $HYMLY_COMMIT -b $HYMLY_COMMIT
- if ! grep -q "htmly commit" $COMPLETION_FILE; then
- echo "htmly commit:$HYMLY_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/htmly commit.*/htmly commit:$HYMLY_COMMIT/g" $COMPLETION_FILE
- fi
+ git checkout $HTMLY_COMMIT -b $HTMLY_COMMIT
+ set_completion_param "htmly commit" "$HTMLY_COMMIT"
}
function install_htmly {
@@ -596,7 +590,7 @@ function install_htmly {
ONION_ONLY='no'
fi
- if [ ! $HYMLY_DOMAIN_NAME ]; then
+ if [ ! $HTMLY_DOMAIN_NAME ]; then
echo $'The htmly domain name was not specified'
exit 5062
fi
@@ -611,13 +605,13 @@ function install_htmly {
function_check install_htmly_website
install_htmly_website
else
- echo -n '' > /etc/nginx/sites-available/$HYMLY_DOMAIN_NAME
+ echo -n '' > /etc/nginx/sites-available/$HTMLY_DOMAIN_NAME
fi
function_check install_htmly_website_onion
install_htmly_website_onion
function_check create_site_certificate
- create_site_certificate $HYMLY_DOMAIN_NAME 'yes'
+ create_site_certificate $HTMLY_DOMAIN_NAME 'yes'
function_check configure_php
configure_php
@@ -631,30 +625,28 @@ function install_htmly {
function_check install_htmly_user
install_htmly_user
- chown -R www-data:www-data /var/www/$HYMLY_DOMAIN_NAME/htdocs
+ chown -R www-data:www-data /var/www/$HTMLY_DOMAIN_NAME/htdocs
- HYMLY_ONION_HOSTNAME=$(add_onion_service htmly 80 ${HYMLY_ONION_PORT})
+ HTMLY_ONION_HOSTNAME=$(add_onion_service htmly 80 ${HTMLY_ONION_PORT})
function_check nginx_ensite
- nginx_ensite $HYMLY_DOMAIN_NAME
+ nginx_ensite $HTMLY_DOMAIN_NAME
systemctl restart php5-fpm
systemctl restart nginx
if ! grep -q "Htmly onion domain" /home/$MY_USERNAME/README; then
- echo $"Htmly onion domain: ${HYMLY_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
- echo $"Log into your htmly at https://${HYMLY_ONION_HOSTNAME}/login" >> /home/$MY_USERNAME/README
+ echo $"Htmly onion domain: ${HTMLY_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
+ echo $"Log into your htmly at https://${HTMLY_ONION_HOSTNAME}/login" >> /home/$MY_USERNAME/README
echo '' >> /home/$MY_USERNAME/README
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
chmod 600 /home/$MY_USERNAME/README
fi
function_check add_ddns_domain
- add_ddns_domain $HYMLY_DOMAIN_NAME
+ add_ddns_domain $HTMLY_DOMAIN_NAME
- if ! grep -q "htmly domain:" $COMPLETION_FILE; then
- echo "htmly domain:$HYMLY_DOMAIN_NAME" >> $COMPLETION_FILE
- fi
+ set_completion_param "htmly domain" "$HTMLY_DOMAIN_NAME"
APP_INSTALLED=1
}
diff --git a/src/freedombone-app-hubzilla b/src/freedombone-app-hubzilla
index dfd56cb1..5843f700 100755
--- a/src/freedombone-app-hubzilla
+++ b/src/freedombone-app-hubzilla
@@ -59,7 +59,7 @@ function hubzilla_renew_cert {
1) return;;
255) return;;
esac
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "hubzilla domain" | awk -F ':' '{print $2}')
+ HUBZILLA_DOMAIN_NAME=$(get_completion_param "hubzilla domain")
if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
dialog --title $"Renew SSL certificate" \
--msgbox $"Hubzilla install directory not found" 6 40
@@ -80,7 +80,7 @@ function hubzilla_channel_directory_server {
--msgbox $"Hubzilla is not installed on this system" 6 40
return
fi
- HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "hubzilla domain" | awk -F ':' '{print $2}')
+ HUBZILLA_DOMAIN_NAME=$(get_completion_param "hubzilla domain")
if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs ]; then
dialog --title $"Hubzilla channel directory server" \
--msgbox $"Hubzilla install directory not found" 6 40
@@ -327,11 +327,7 @@ function install_hubzilla {
function_check git_clone
git_clone $HUBZILLA_REPO hubzilla
git checkout $HUBZILLA_COMMIT -b $HUBZILLA_COMMIT
- if ! grep -q "hubzilla commit" $COMPLETION_FILE; then
- echo "hubzilla commit:$HUBZILLA_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/hubzilla commit.*/hubzilla commit:$HUBZILLA_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "hubzilla commit" "$HUBZILLA_COMMIT"
rm -rf $HUBZILLA_PATH
mv hubzilla $HUBZILLA_PATH
@@ -339,11 +335,7 @@ function install_hubzilla {
git_clone $HUBZILLA_ADDONS_REPO $HUBZILLA_PATH/addon
cd $HUBZILLA_PATH/addon
git checkout $HUBZILLA_ADDONS_COMMIT -b $HUBZILLA_ADDONS_COMMIT
- if ! grep -q "hubzilla addons commit" $COMPLETION_FILE; then
- echo "hubzilla addons commit:$HUBZILLA_ADDONS_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/hubzilla addons commit.*/hubzilla addons commit:$HUBZILLA_ADDONS_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "hubzilla addons commit" "$HUBZILLA_ADDONS_COMMIT"
# some extra themes
git_clone $HUBZILLA_THEMES_REPO $HUBZILLA_PATH/redmatrix-themes1
@@ -599,7 +591,7 @@ function install_hubzilla {
${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$HUBZILLA_DOMAIN_NAME" -g hubzilla --public no
- echo "hubzilla domain:${HUBZILLA_DOMAIN_NAME}" >> $COMPLETION_FILE
+ set_completion_param "hubzilla domain" "${HUBZILLA_DOMAIN_NAME}"
APP_INSTALLED=1
}
diff --git a/src/freedombone-app-ipfs b/src/freedombone-app-ipfs
index 1d1a5f34..c81e6ea5 100755
--- a/src/freedombone-app-ipfs
+++ b/src/freedombone-app-ipfs
@@ -89,7 +89,7 @@ function backup_local_ipfs {
if ! grep -q "Admin user" $COMPLETION_FILE; then
return
fi
- ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
source_directory=/home/$ADMIN_USERNAME/.ipfs
if [ -d $source_directory ]; then
dest_directory=ipfs
@@ -111,7 +111,7 @@ function restore_local_ipfs {
temp_restore_dir=/root/tempipfs
function_check restore_directory_from_usb
restore_directory_from_usb $temp_restore_dir ipfs
- ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
cp -rf $temp_restore_dir/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
if [ ! "$?" = "0" ]; then
rm -rf $temp_restore_dir
@@ -130,7 +130,7 @@ function backup_remote_ipfs {
if ! grep -q "Admin user" $COMPLETION_FILE; then
return
fi
- ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
if [ -d /home/$ADMIN_USERNAME/.ipfs ]; then
echo $"Backing up IPFS"
backup_directory_to_friend /home/$ADMIN_USERNAME/.ipfs ipfs
@@ -193,7 +193,7 @@ function remove_ipfs {
}
function configure_firewall_for_ipfs {
- if grep -Fxq "configure_firewall_for_ipfs" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $ONION_ONLY != "no" ]]; then
@@ -204,11 +204,11 @@ function configure_firewall_for_ipfs {
save_firewall_settings
OPEN_PORTS+=("IPFS $IPFS_PORT")
- echo 'configure_firewall_for_ipfs' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function mesh_install_ipfs_js {
- if grep -Fxq "mesh_install_ipfs_js" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -280,7 +280,7 @@ EOF
chroot ${rootdir} systemctl enable ${IPFS_DAEMON_NAME}
- echo 'mesh install_ipfs_js' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_ipfs_js {
@@ -515,11 +515,7 @@ function install_ipfs_go {
exit 735639
fi
- if ! grep -q "ipfs commit" $COMPLETION_FILE; then
- echo "ipfs commit:$IPFS_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/ipfs commit.*/ipfs commit:$IPFS_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "ipfs commit" "$IPFS_COMMIT"
make install
if [ ! "$?" = "0" ]; then
diff --git a/src/freedombone-app-librevault b/src/freedombone-app-librevault
index bafcbf60..fdb1b466 100755
--- a/src/freedombone-app-librevault
+++ b/src/freedombone-app-librevault
@@ -120,7 +120,7 @@ function remove_librevault {
}
function configure_firewall_for_librevault {
- if grep -Fxq "configure_firewall_for_librevault" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
iptables -A INPUT -p udp --dport $LIBREVAULT_PORT -j ACCEPT
@@ -128,7 +128,7 @@ function configure_firewall_for_librevault {
function_check save_firewall_settings
save_firewall_settings
OPEN_PORTS+=("Librevault $LIBREVAULT_PORT")
- echo 'configure_firewall_for_librevault' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function mesh_install_librevault {
@@ -263,11 +263,7 @@ function install_librevault {
make install
ldconfig
- if ! grep -q "Protobuf commit" $COMPLETION_FILE; then
- echo "Protobuf commit:$PROTOBUF_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/Protobuf commit.*/Protobuf commit:$PROTOBUF_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "Protobuf commit" "$PROTOBUF_COMMIT"
git_clone $LIBREVAULT_REPO $INSTALL_DIR/librevault
cd $INSTALL_DIR/librevault
@@ -286,11 +282,7 @@ function install_librevault {
cmake --build .
make install
- if ! grep -q "Librevault commit" $COMPLETION_FILE; then
- echo "Librevault commit:$LIBREVAULT_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/Librevault commit.*/Librevault commit:$LIBREVAULT_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "Librevault commit" "$LIBREVAULT_COMMIT"
LIBREVAULT_DAEMON=/etc/systemd/system/librevault-daemon.service
echo '[Unit]' > $LIBREVAULT_DAEMON
diff --git a/src/freedombone-app-mediagoblin b/src/freedombone-app-mediagoblin
index d280c434..9b26ff44 100755
--- a/src/freedombone-app-mediagoblin
+++ b/src/freedombone-app-mediagoblin
@@ -211,11 +211,7 @@ function install_mediagoblin {
git submodule init
git submodule update
- if ! grep -q "Mediagoblin commit" $COMPLETION_FILE; then
- echo "Mediagoblin commit:$MEDIAGOBLIN_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/Mediagoblin commit.*/Mediagoblin commit:$MEDIAGOBLIN_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "mediagoblin commit" "$MEDIAGOBLIN_COMMIT"
chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bootstrap.sh" - mediagoblin
@@ -497,11 +493,7 @@ function install_mediagoblin {
add_ddns_domain $MEDIAGOBLIN_DOMAIN_NAME
- if ! grep -q "Mediagoblin domain" $COMPLETION_FILE; then
- echo "Mediagoblin domain:$MEDIAGOBLIN_DOMAIN_NAME" >> $COMPLETION_FILE
- else
- sed -i "s/Mediagoblin domain.*/Mediagoblin domain:$MEDIAGOBLIN_DOMAIN_NAME/g" $COMPLETION_FILE
- fi
+ set_completion_param "mediagoblin domain" "$MEDIAGOBLIN_DOMAIN_NAME"
APP_INSTALLED=1
}
diff --git a/src/freedombone-app-mumble b/src/freedombone-app-mumble
index ca763a45..b513570e 100755
--- a/src/freedombone-app-mumble
+++ b/src/freedombone-app-mumble
@@ -178,7 +178,7 @@ function get_mumble_server_password {
}
function configure_firewall_for_mumble {
- if grep -Fxq "configure_firewall_for_mumble" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $ONION_ONLY != "no" ]]; then
@@ -190,7 +190,7 @@ function configure_firewall_for_mumble {
save_firewall_settings
OPEN_PORTS+=("Mumble $MUMBLE_PORT")
- echo 'configure_firewall_for_mumble' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_mumble {
diff --git a/src/freedombone-app-rss b/src/freedombone-app-rss
index 533261e7..73af2fb5 100755
--- a/src/freedombone-app-rss
+++ b/src/freedombone-app-rss
@@ -129,7 +129,7 @@ function upgrade_rss {
function backup_local_rss {
if [ -d /etc/share/tt-rss ]; then
- RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "rss reader domain" | awk -F ':' '{print $2}')
+ RSS_READER_DOMAIN_NAME=$(get_completion_param "rss reader domain")
echo $"Backing up ttrss"
@@ -298,9 +298,7 @@ function install_rss_main {
fi
cd $RSS_READER_PATH
git checkout $RSS_READER_COMMIT -b $RSS_READER_COMMIT
- if ! grep -q "rss reader commit" $COMPLETION_FILE; then
- echo "rss reader commit:$RSS_READER_COMMIT" >> $COMPLETION_FILE
- fi
+ set_completion_param "rss reader commit" "$RSS_READER_COMMIT"
function_check install_mariadb
install_mariadb
@@ -543,9 +541,7 @@ function install_rss_gnusocial {
cp -r $INSTALL_DIR/ttrss-gnusocial $RSS_READER_GNUSOCIAL_PATH
cd $RSS_READER_GNUSOCIAL_PATH
git checkout $RSS_READER_GNUSOCIAL_COMMIT -b $RSS_READER_GNUSOCIAL_COMMIT
- if ! grep -q "rss reader gnusocial commit" $COMPLETION_FILE; then
- echo "rss reader gnusocial commit:$RSS_READER_GNUSOCIAL_COMMIT" >> $COMPLETION_FILE
- fi
+ set_completion_param "rss reader gnusocial commit" "$RSS_READER_GNUSOCIAL_COMMIT"
chown -R www-data:www-data $RSS_READER_GNUSOCIAL_PATH
install_completed rss_gnusocial
}
@@ -584,9 +580,7 @@ function install_rss_mobile_reader {
fi
cd $RSS_MOBILE_READER_PATH
git checkout $RSS_MOBILE_READER_COMMIT -b $RSS_MOBILE_READER_COMMIT
- if ! grep -q "rss mobile reader commit" $COMPLETION_FILE; then
- echo "rss mobile reader commit:$RSS_MOBILE_READER_COMMIT" >> $COMPLETION_FILE
- fi
+ set_completion_param "rss mobile reader commit" "$RSS_MOBILE_READER_COMMIT"
echo 'define({' > $RSS_MOBILE_READER_PATH/scripts/conf.js
echo ' apiPath: "/tt-rss/"' >> $RSS_MOBILE_READER_PATH/scripts/conf.js
diff --git a/src/freedombone-app-searx b/src/freedombone-app-searx
index 2afb7738..7ba450ae 100755
--- a/src/freedombone-app-searx
+++ b/src/freedombone-app-searx
@@ -69,7 +69,7 @@ function upgrade_searx {
echo ' http : socks5://127.0.0.1:9050' >> ${SEARX_PATH}/searx/searx/settings.yml
echo ' https: socks5://127.0.0.1:9050' >> ${SEARX_PATH}/searx/searx/settings.yml
fi
- SEARX_SECRET_KEY=$(cat $COMPLETION_FILE | grep "Search engine key" | awk -F ':' '{print $2}')
+ SEARX_SECRET_KEY=$(get_completion_param "searx key")
sed -i "s|secret_key.*|secret_key : \"${SEARX_SECRET_KEY}\"|g" ${SEARX_PATH}/searx/searx/settings.yml
if [ -f /var/lib/tor/hidden_service_searx/hostname ]; then
SEARX_ONION_HOSTNAME=$(echo /var/lib/tor/hidden_service_searx/hostname)
@@ -164,11 +164,7 @@ function install_searx {
function_check git_clone
git_clone $SEARX_REPO searx
git checkout $SEARX_COMMIT -b $SEARX_COMMIT
- if ! grep -q "Search engine commit" $COMPLETION_FILE; then
- echo "Search engine commit:$SEARX_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/Search engine commit.*/Search engine commit:$SEARX_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "searx commit" "$SEARX_COMMIT"
# create an onion service
SEARX_ONION_HOSTNAME=$(add_onion_service searx 80 ${SEARX_ONION_PORT})
@@ -235,12 +231,10 @@ function install_searx {
echo '}' >> /etc/nginx/sites-available/searx
# replace the secret key
- if ! grep "Search engine key" $COMPLETION_FILE; then
+ if ! grep "searx key" $COMPLETION_FILE; then
SEARX_SECRET_KEY="$(create_password 30)"
- echo "Search engine key:${SEARX_SECRET_KEY}" >> $COMPLETION_FILE
- else
- SEARX_SECRET_KEY=$(cat $COMPLETION_FILE | grep "Search engine key" | awk -F ':' '{print $2}')
fi
+ set_completion_param "searx key" "${SEARX_SECRET_KEY}"
sed -i "s|secret_key.*|secret_key : \"${SEARX_SECRET_KEY}\"|g" ${SEARX_PATH}/searx/searx/settings.yml
sed -i "s|secret_key.*|secret_key : \"${SEARX_SECRET_KEY}\"|g" ${SEARX_PATH}/searx/searx/settings_robot.yml
sed -i '0,/RE/s/base_url.*/base_url : \"http://${SEARX_ONION_HOSTNAME}\/' ${SEARX_PATH}/searx/searx/settings.yml
diff --git a/src/freedombone-app-sip b/src/freedombone-app-sip
index 7061f935..6323a9c8 100755
--- a/src/freedombone-app-sip
+++ b/src/freedombone-app-sip
@@ -183,7 +183,7 @@ function remove_sip {
}
function configure_firewall_for_turn {
- if grep -Fxq "configure_firewall_for_turn" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $ONION_ONLY != "no" ]]; then
@@ -197,12 +197,12 @@ function configure_firewall_for_turn {
OPEN_PORTS+=("TURN $TURN_PORT")
OPEN_PORTS+=("TURN TLS $TURN_TLS_PORT")
- echo 'configure_firewall_for_turn' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_for_sip4 {
- if grep -Fxq "configure_firewall_for_sip4" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $ONION_ONLY != "no" ]]; then
@@ -217,7 +217,7 @@ function configure_firewall_for_sip4 {
OPEN_PORTS+=("SIP $SIP_PORT")
OPEN_PORTS+=("SIP TLS $SIP_TLS_PORT")
- echo 'configure_firewall_for_sip4' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function get_sip_server_password {
diff --git a/src/freedombone-app-syncthing b/src/freedombone-app-syncthing
index 5f47dedd..c0fe2a4d 100755
--- a/src/freedombone-app-syncthing
+++ b/src/freedombone-app-syncthing
@@ -476,7 +476,7 @@ function remove_syncthing {
}
function configure_firewall_for_syncthing {
- if grep -Fxq "configure_firewall_for_syncthing" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -486,7 +486,7 @@ function configure_firewall_for_syncthing {
save_firewall_settings
OPEN_PORTS+=("Syncthing $SYNCTHING_PORT")
- echo 'configure_firewall_for_syncthing' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_syncthing {
diff --git a/src/freedombone-app-tahoelafs b/src/freedombone-app-tahoelafs
index db4e28d5..de92dade 100755
--- a/src/freedombone-app-tahoelafs
+++ b/src/freedombone-app-tahoelafs
@@ -203,7 +203,7 @@ function remove_tahoelafs {
}
function configure_firewall_for_tahoelafs {
- if grep -Fxq "configure_firewall_for_tahoelafs" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
iptables -A INPUT -p udp --dport $TAHOELAFS_PORT -j ACCEPT
@@ -211,7 +211,7 @@ function configure_firewall_for_tahoelafs {
function_check save_firewall_settings
save_firewall_settings
OPEN_PORTS+=("Tahoe-LAFS $TAHOELAFS_PORT")
- echo 'configure_firewall_for_tahoelafs' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function tahoelafs_update_script {
diff --git a/src/freedombone-app-tox b/src/freedombone-app-tox
index 0b7cf005..ab36abf8 100755
--- a/src/freedombone-app-tox
+++ b/src/freedombone-app-tox
@@ -283,7 +283,7 @@ function remove_tox {
function configure_firewall_for_tox {
if [ ! $INSTALLING_MESH ]; then
if [ -f $COMPLETION_FILE ]; then
- if grep -Fxq "configure_firewall_for_tox" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
fi
@@ -312,13 +312,11 @@ function configure_firewall_for_tox {
save_firewall_settings
OPEN_PORTS+=("Tox $TOX_PORT")
- if [ -f $COMPLETION_FILE ]; then
- echo 'configure_firewall_for_tox' >> $COMPLETION_FILE
- fi
+ mark_completed $FUNCNAME
}
function tox_avahi {
- if grep -Fxq "tox_avahi" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -351,7 +349,7 @@ function tox_avahi {
systemctl restart avahi-daemon
- echo 'tox_avahi' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_tox_node {
diff --git a/src/freedombone-app-webmail b/src/freedombone-app-webmail
index cb0e7d26..200138fb 100755
--- a/src/freedombone-app-webmail
+++ b/src/freedombone-app-webmail
@@ -163,11 +163,7 @@ function install_webmail {
git_clone $WEBMAIL_REPO webmail
cd $WEBMAIL_PATH
git checkout $WEBMAIL_COMMIT -b $WEBMAIL_COMMIT
- if ! grep -q "webmail commit" $COMPLETION_FILE; then
- echo "webmail commit:$WEBMAIL_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/webmail commit.*/webmail commit:$WEBMAIL_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "webmail commit" "$WEBMAIL_COMMIT"
fi
if [ ! -f $WEBMAIL_PATH/index.php ]; then
echo $'Did not clone webmail repo'
diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp
index 82f667ad..7ecd97fe 100755
--- a/src/freedombone-app-xmpp
+++ b/src/freedombone-app-xmpp
@@ -238,7 +238,7 @@ function configure_firewall_for_xmpp {
if [ ! -d /etc/prosody ]; then
return
fi
- if grep -Fxq "configure_firewall_for_xmpp" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -257,7 +257,7 @@ function configure_firewall_for_xmpp {
OPEN_PORTS+=('XMPP 5222-5223')
OPEN_PORTS+=('XMPP 5269')
OPEN_PORTS+=('XMPP 5280-5281')
- echo 'configure_firewall_for_xmpp' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function remove_xmpp_client {
@@ -444,11 +444,7 @@ function install_xmpp_main {
echo "VirtualHost \"${XMPP_ONION_HOSTNAME}\"" >> /etc/prosody/conf.avail/xmpp.cfg.lua
echo ' modules_enabled = { "onions" };' >> /etc/prosody/conf.avail/xmpp.cfg.lua
fi
- if ! grep -q "xmpp onion domain" $COMPLETION_FILE; then
- echo "xmpp onion domain:${XMPP_ONION_HOSTNAME}" >> $COMPLETION_FILE
- else
- sed -i "s|xmpp onion domain.*|xmpp onion domain:${XMPP_ONION_HOSTNAME}|g" $COMPLETION_FILE
- fi
+ set_completion_param "xmpp onion domain" "${XMPP_ONION_HOSTNAME}"
if ! grep -q "Your xmpp password is" /home/$MY_USERNAME/README; then
if [ ${#XMPP_PASSWORD} -lt 8 ]; then
diff --git a/src/freedombone-app-zeronet b/src/freedombone-app-zeronet
index c73348e8..3d7fd880 100755
--- a/src/freedombone-app-zeronet
+++ b/src/freedombone-app-zeronet
@@ -138,7 +138,7 @@ function remove_zeronet {
}
function configure_firewall_for_zeronet {
- if grep -Fxq "configure_firewall_for_zeronet" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
iptables -A INPUT -i $WIFI_INTERFACE -p udp --dport $ZERONET_PORT -j ACCEPT
@@ -151,7 +151,7 @@ function configure_firewall_for_zeronet {
OPEN_PORTS+=("ZeroNet $ZERONET_PORT")
OPEN_PORTS+=("Tracker $TRACKER_PORT")
- echo 'configure_firewall_for_zeronet' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_zeronet_blog {
@@ -212,11 +212,7 @@ function install_zeronet_blog {
fi
cd $MESH_INSTALL_DIR/zeronet/ZeroBlog
git checkout $ZERONET_BLOG_COMMIT -b $ZERONET_BLOG_COMMIT
- if ! grep -q "ZeroNet Blog commit" $COMPLETION_FILE; then
- echo "ZeroNet Blog commit:$ZERONET_BLOG_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/ZeroNet Blog commit.*/ZeroNet Blog commit:$ZERONET_BLOG_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "zeroNet blog commit" "$ZERONET_BLOG_COMMIT"
echo $"ZeroNet Blog address: $ZERONET_BLOG_ADDRESS"
echo $"ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY"
@@ -313,11 +309,7 @@ function install_zeronet_mail {
fi
cd $MESH_INSTALL_DIR/zeronet/ZeroMail
git checkout $ZERONET_MAIL_COMMIT -b $ZERONET_MAIL_COMMIT
- if ! grep -q "ZeroNet Mail commit" $COMPLETION_FILE; then
- echo "ZeroNet Mail commit:$ZERONET_MAIL_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/ZeroNet Mail commit.*/ZeroNet Mail commit:$ZERONET_MAIL_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "zeroNet mail commit" "$ZERONET_MAIL_COMMIT"
echo $"ZeroNet Mail address: $ZERONET_MAIL_ADDRESS"
echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY"
@@ -413,11 +405,7 @@ function install_zeronet_forum {
exit 6739
fi
git checkout $ZERONET_FORUM_COMMIT -b $ZERONET_FORUM_COMMIT
- if ! grep -q "ZeroNet Forum commit" $COMPLETION_FILE; then
- echo "ZeroNet Forum commit:$ZERONET_FORUM_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/ZeroNet Forum commit.*/ZeroNet Forum commit:$ZERONET_FORUM_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "zeroNet forum commit" "$ZERONET_FORUM_COMMIT"
echo $"Forum address: $ZERONET_FORUM_ADDRESS"
echo $"Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
diff --git a/src/freedombone-backup-remote b/src/freedombone-backup-remote
index 3f4059bc..8126d25f 100755
--- a/src/freedombone-backup-remote
+++ b/src/freedombone-backup-remote
@@ -57,7 +57,7 @@ SERVER_DIRECTORY=/root/remotebackup
# get the version of Go being used
GO_VERSION=$(cat /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-go | grep 'GO_VERSION=' | head -n 1 | awk -F '=' '{print $2}')
-ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ADMIN_USERNAME=$(get_completion_param "Admin user")
ADMIN_NAME=$(getent passwd $ADMIN_USERNAME | cut -d: -f5 | cut -d, -f1)
ADMIN_EMAIL_ADDRESS=${ADMIN_USERNAME}@${HOSTNAME}
if [ ! -f /etc/ssl/private/backup.key ]; then
diff --git a/src/freedombone-base-email b/src/freedombone-base-email
index 8270a931..3207ad77 100755
--- a/src/freedombone-base-email
+++ b/src/freedombone-base-email
@@ -83,7 +83,7 @@ function backup_email {
}
function configure_firewall_for_email {
- if grep -Fxq "configure_firewall_for_email" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -104,7 +104,7 @@ function configure_firewall_for_email {
OPEN_PORTS+=('Email 587')
OPEN_PORTS+=('Email 465')
OPEN_PORTS+=('Email 993')
- echo 'configure_firewall_for_email' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function encrypt_incoming_email {
@@ -119,7 +119,7 @@ function encrypt_incoming_email {
function_check set_repo_commit
set_repo_commit $INSTALL_DIR/gpgit "gpgit commit" "$GPGIT_COMMIT" $GPGIT_REPO
- if grep -Fxq "encrypt_incoming_email" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -134,11 +134,7 @@ function encrypt_incoming_email {
git_clone $GPGIT_REPO $INSTALL_DIR/gpgit
cd $INSTALL_DIR/gpgit
git checkout $GPGIT_COMMIT -b $GPGIT_COMMIT
- if ! grep -q "gpgit commit" $COMPLETION_FILE; then
- echo "gpgit commit:$GPGIT_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/gpgit commit.*/gpgit commit:$GPGIT_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "gpgit commit" "$GPGIT_COMMIT"
cp gpgit.pl /usr/bin
fi
@@ -153,7 +149,7 @@ function encrypt_incoming_email {
echo -n '| /usr/bin/gpgit.pl --encrypt-mode prefer-inline --inline-flatten $USER@' >> /etc/skel/.procmailrc
echo "$DEFAULT_DOMAIN_NAME" >> /etc/skel/.procmailrc
fi
- echo 'encrypt_incoming_email' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function encrypt_outgoing_email {
@@ -163,7 +159,7 @@ function encrypt_outgoing_email {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "encrypt_outgoing_email" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $GPG_ENCRYPT_STORED_EMAIL != "yes" ]]; then
@@ -203,7 +199,7 @@ function encrypt_outgoing_email {
sed -i "s|set pgp_encrypt_sign_command.*|set pgp_encrypt_sign_command=\"/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x$MY_GPG_PUBLIC_KEY_ID -- -r %r -- %f\"|g" /home/$MY_USERNAME/.muttrc
fi
- echo 'encrypt_outgoing_email' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function encrypt_all_email {
@@ -221,7 +217,7 @@ function encrypt_all_email {
fi
chmod +x /usr/bin/encmaildir
- if grep -Fxq "encrypt_all_email" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -245,7 +241,7 @@ function encrypt_all_email {
chmod 600 /home/$MY_USERNAME/README
fi
- echo 'encrypt_all_email' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function email_client {
@@ -370,7 +366,7 @@ function email_client {
chown ${GENERIC_IMAGE_USERNAME}:${GENERIC_IMAGE_USERNAME} /home/${GENERIC_IMAGE_USERNAME}/.mutt-alias
fi
- echo 'email_client' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function email_archiving {
@@ -395,7 +391,7 @@ function email_archiving {
function_check set_repo_commit
set_repo_commit $INSTALL_DIR/cleanup-maildir "cleanup-maildir commit" "$CLEANUP_MAILDIR_COMMIT" $CLEANUP_MAILDIR_REPO
- if grep -Fxq "email_archiving" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -407,20 +403,16 @@ function email_archiving {
git_clone $CLEANUP_MAILDIR_REPO $INSTALL_DIR/cleanup-maildir
cd $INSTALL_DIR/cleanup-maildir
git checkout $CLEANUP_MAILDIR_COMMIT -b $CLEANUP_MAILDIR_COMMIT
- if ! grep -q "cleanup-maildir commit" $COMPLETION_FILE; then
- echo "cleanup-maildir commit:$CLEANUP_MAILDIR_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/cleanup-maildir commit.*/cleanup-maildir commit:$CLEANUP_MAILDIR_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "cleanup-maildir commit" "$CLEANUP_MAILDIR_COMMIT"
cp $INSTALL_DIR/cleanup-maildir/cleanup-maildir /usr/bin
- echo 'email_archiving' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# Ensure that the from field is correct when sending email from Mutt
function email_from_address {
- if grep -Fxq "email_from_address" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -433,14 +425,14 @@ function email_from_address {
echo "set from='$MY_NAME <$MY_EMAIL_ADDRESS>'" >> /home/$MY_USERNAME/.muttrc
fi
- echo 'email_from_address' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function create_public_mailing_list {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [ ! $PUBLIC_MAILING_LIST ]; then
@@ -530,7 +522,7 @@ function create_public_mailing_list {
${PROJECT_NAME}-addlist -u $MY_USERNAME -l "$PUBLIC_MAILING_LIST" -s "$PUBLIC_MAILING_LIST"
- echo 'create_public_mailing_list' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function create_private_mailing_list {
@@ -539,7 +531,7 @@ function create_private_mailing_list {
fi
# This installation doesn't work, results in ruby errors
# There is currently no schleuder package for Debian jessie
- if grep -Fxq "create_private_mailing_list" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [ ! $PRIVATE_MAILING_LIST ]; then
@@ -590,7 +582,7 @@ function create_private_mailing_list {
adduser Debian-exim schleuder
usermod -a -G mail schleuder
#exim -d -bt $PRIVATE_MAILING_LIST@$DEFAULT_DOMAIN_NAME
- echo 'create_private_mailing_list' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function split_gpg_key_into_fragments {
@@ -648,7 +640,7 @@ function import_email {
exit 9
fi
fi
- echo 'import_email' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
if [[ $SYSTEM_TYPE == "mail"* ]]; then
function_check backup_to_friends_servers
backup_to_friends_servers
@@ -721,11 +713,7 @@ function install_email {
set_hostname ${EMAIL_ONION_HOSTNAME}
MY_EMAIL_ADDRESS=${MY_USERNAME}@${DEFAULT_DOMAIN_NAME}
fi
- if ! grep -q "email onion domain" $COMPLETION_FILE; then
- echo "email onion domain:${EMAIL_ONION_HOSTNAME}" >> $COMPLETION_FILE
- else
- sed -i "s|email onion domain.*|email onion domain:${EMAIL_ONION_HOSTNAME}|g" $COMPLETION_FILE
- fi
+ set_completion_param "email onion domain" "${EMAIL_ONION_HOSTNAME}"
# see https://github.com/petterreinholdtsen/exim4-smtorp
echo '# tor stuff first' > /etc/exim4/conf.d/router/100_exim4-smtorp
@@ -904,14 +892,14 @@ function install_email {
function_check configure_firewall_for_email
configure_firewall_for_email
- echo 'install_email' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function create_procmail {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "create_procmail" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [ ! -f /home/$MY_USERNAME/.procmailrc ]; then
@@ -938,7 +926,7 @@ function create_procmail {
chown root:root /etc/skel/.procmailrc
fi
- echo 'create_procmail' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function handle_admin_emails {
@@ -954,7 +942,7 @@ function spam_filtering {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install exim4-daemon-heavy
@@ -1108,14 +1096,14 @@ function spam_filtering {
systemctl restart exim4
systemctl restart cron
- echo 'spam_filtering' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_imap {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "configure_imap" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -1194,14 +1182,14 @@ function configure_imap {
fi
systemctl restart dovecot
- echo 'configure_imap' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_imap_client_certs {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "configure_imap_client_certs" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
# http://strange.systems/certificate-based-auth-with-dovecot-sendmail/
@@ -1276,14 +1264,14 @@ function configure_imap_client_certs {
echo 0001 > /etc/ssl/sslserial
#${PROJECT_NAME}-clientcert -u $MY_USERNAME
systemctl restart dovecot
- echo 'configure_imap_client_certs' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function create_gpg_subkey {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "create_gpg_subkey" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install gnupg
@@ -1313,7 +1301,7 @@ function create_gpg_subkey {
shred -zu /home/$MY_USERNAME/gpg-genkey.conf
MY_GPG_SUBKEY_ID=$(su -c "gpg --list-keys $MY_EMAIL_ADDRESS | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
- echo 'create_gpg_subkey' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function gpg_key_exists {
@@ -1351,7 +1339,7 @@ function configure_gpg {
if [ ! -d /etc/exim4 ]; then
return
fi
- if grep -Fxq "configure_gpg" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install gnupg
@@ -1369,7 +1357,7 @@ function configure_gpg {
chown -R $MY_USERNAME:$MY_USERNAME $gpg_dir
chmod 700 $gpg_dir
chmod 600 $gpg_dir/*
- echo 'configure_gpg' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
return
fi
@@ -1477,7 +1465,7 @@ function configure_gpg {
fi
fi
- echo 'configure_gpg' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function refresh_gpg_keys {
diff --git a/src/freedombone-base-tripwire b/src/freedombone-base-tripwire
index fcedbba0..b02d98d5 100755
--- a/src/freedombone-base-tripwire
+++ b/src/freedombone-base-tripwire
@@ -49,7 +49,7 @@ function remove_tripwire {
}
function install_tripwire {
- if grep -Fxq "install_tripwire" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install tripwire
@@ -99,7 +99,7 @@ function install_tripwire {
' | reset-tripwire
- echo 'install_tripwire' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel
index 873ec0d4..bdc0e3e0 100755
--- a/src/freedombone-controlpanel
+++ b/src/freedombone-controlpanel
@@ -1746,7 +1746,7 @@ if [ ! -f $COMPLETION_FILE ]; then
exit 1
fi
-ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ADMIN_USER=$(get_completion_param "Admin user")
read_repo_servers
menu_top_level
clear
diff --git a/src/freedombone-encrypt-mail b/src/freedombone-encrypt-mail
index 8e7d6cf1..7c9ada55 100755
--- a/src/freedombone-encrypt-mail
+++ b/src/freedombone-encrypt-mail
@@ -33,7 +33,13 @@ USERNAME=$1
PROJECT_NAME='freedombone'
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
-ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
+
+ADMIN_USER=$(get_completion_param "Admin user")
if [ ! $USERNAME ]; then
USERNAME=$ADMIN_USER
diff --git a/src/freedombone-restore-local b/src/freedombone-restore-local
index b392a068..8d366462 100755
--- a/src/freedombone-restore-local
+++ b/src/freedombone-restore-local
@@ -62,7 +62,7 @@ ADMIN_NAME=
read_config_param USB_DRIVE
if [ -f $COMPLETION_FILE ]; then
- ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
fi
# MariaDB password
@@ -152,7 +152,7 @@ function restore_configuration {
}
function same_admin_user {
- PREV_ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ PREV_ADMIN_USERNAME=$(get_completion_param "Admin user")
if [[ "$PREV_ADMIN_USERNAME" != "$ADMIN_USERNAME" ]]; then
echo $"The admin username has changed from $PREV_ADMIN_USERNAME to $ADMIN_USERNAME. To restore you will first need to install a new ${PROJECT_NAME} system with an initial admin user named $PREV_ADMIN_USERNAME"
set_user_permissions
diff --git a/src/freedombone-restore-remote b/src/freedombone-restore-remote
index f9e477e6..7177dae5 100755
--- a/src/freedombone-restore-remote
+++ b/src/freedombone-restore-remote
@@ -36,7 +36,11 @@ BACKUP_EXTRA_DIRECTORIES=/root/backup-extra-dirs.csv
export TEXTDOMAIN=${PROJECT_NAME}-restore-remote
export TEXTDOMAINDIR="/usr/share/locale"
-source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-validation
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
SERVER_NAME=$1
@@ -47,7 +51,7 @@ if [ ${2} ]; then
RESTORE_APP=${2}
fi
-ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | -nawk -F ':' '{print $2}')
+ADMIN_USERNAME=$(get_completion_param "Admin user")
ADMIN_EMAIL_ADDRESS=${ADMIN_USERNAME}@${HOSTNAME}
# Temporary location for data to be backed up to other servers
diff --git a/src/freedombone-rmuser b/src/freedombone-rmuser
index cd0f7e36..cd9e98ba 100755
--- a/src/freedombone-rmuser
+++ b/src/freedombone-rmuser
@@ -74,7 +74,7 @@ if ! grep -q "Admin user" $COMPLETION_FILE; then
exit 5
fi
-ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ADMIN_USERNAME=$(get_completion_param "Admin user")
if [ ! $ADMIN_USERNAME ]; then
echo $"No admin username specified in $COMPLETION_FILE"
exit 6
diff --git a/src/freedombone-syncthing b/src/freedombone-syncthing
index 9cc9b6a1..7736399c 100755
--- a/src/freedombone-syncthing
+++ b/src/freedombone-syncthing
@@ -36,7 +36,11 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=$PROJECT_NAME-syncthing
export TEXTDOMAINDIR="/usr/share/locale"
-source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-validation
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
+for f in $UTILS_FILES
+do
+ source $f
+done
# File which keeps track of what has already been installed
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
@@ -73,7 +77,7 @@ function new_syncthing_id {
function create_syncthing_config {
if grep -q "syncthing ID" $COMPLETION_FILE; then
- SYNCTHING_ID=$(cat $COMPLETION_FILE | grep "syncthing ID" | awk -F ':' '{print $2}')
+ SYNCTHING_ID=$(get_completion_param "syncthing ID")
else
if [ -f $SYNCTHING_CONFIG_FILE ]; then
SYNCTHING_ID=$(cat $SYNCTHING_CONFIG_FILE | grep "device id=" | head -n 1 | awk -F '"' '{print $2}')
@@ -82,11 +86,7 @@ function create_syncthing_config {
fi
fi
- if ! grep -q "syncthing ID" $COMPLETION_FILE; then
- echo "syncthing ID:$SYNCTHING_ID" >> $COMPLETION_FILE
- else
- sed -i "s|syncthing ID.*|syncthing ID:$SYNCTHING_ID|g" $COMPLETION_FILE
- fi
+ set_completion_param "syncthing ID" "$SYNCTHING_ID"
if [ ! -d $SYNCTHING_CONFIG_PATH ]; then
mkdir -p $SYNCTHING_CONFIG_PATH
diff --git a/src/freedombone-utils-avahi b/src/freedombone-utils-avahi
index 74b583b9..f30fe11f 100755
--- a/src/freedombone-utils-avahi
+++ b/src/freedombone-utils-avahi
@@ -99,7 +99,7 @@ function install_avahi {
mesh_avahi
return
fi
- if grep -Fxq "install_avahi" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
# only enable avahi if we're doing mesh networking
@@ -123,7 +123,7 @@ function install_avahi {
sed -i "s|host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
fi
- echo 'install_avahi' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-backup b/src/freedombone-utils-backup
index 6d7009ab..564d03d3 100755
--- a/src/freedombone-utils-backup
+++ b/src/freedombone-utils-backup
@@ -49,7 +49,7 @@ function restart_site {
}
function configure_backup_key {
- if grep -Fxq "configure_backup_key" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install gnupg
@@ -102,7 +102,7 @@ function configure_backup_key {
shred -zu ${MY_BACKUP_KEY}_public.asc
shred -zu ${MY_BACKUP_KEY}_private.asc
- echo 'configure_backup_key' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function backup_to_friends_servers {
@@ -122,7 +122,7 @@ function backup_mount_drive {
fi
# get the admin user
- ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
+ ADMIN_USERNAME=$(get_completion_param "Admin user")
if [ $2 ]; then
ADMIN_USERNAME=$2
fi
diff --git a/src/freedombone-utils-cmake b/src/freedombone-utils-cmake
index 03b4c304..50a3fc6d 100755
--- a/src/freedombone-utils-cmake
+++ b/src/freedombone-utils-cmake
@@ -75,7 +75,7 @@ function install_cmake {
fi
fi
- if grep -Fxq "install_cmake" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -95,7 +95,7 @@ function install_cmake {
fi
make install
- echo 'install_cmake' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-config b/src/freedombone-utils-config
index 36e10a6b..e8ef5d28 100755
--- a/src/freedombone-utils-config
+++ b/src/freedombone-utils-config
@@ -99,6 +99,91 @@ configuration_variables=(FRIENDS_MIRRORS_SERVER
ENABLE_BATMAN
PUBLIC_MAILING_LIST)
+function get_completion_param {
+ param_name="$1"
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ $COMPLETION_FILE ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if grep -q "${param_name}:" $COMPLETION_FILE; then
+ param_value=$(cat $COMPLETION_FILE | grep "${param_name}:" | head -n 1 | awk -F ':' '{print $2}')
+ echo "$param_value"
+ return
+ fi
+ fi
+ fi
+ fi
+ echo ""
+}
+
+function set_completion_param {
+ param_name="$1"
+ param_value="$2"
+
+ if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+ if [ ${#COMPLETION_FILE} -eq 0 ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ ${#param_value} -gt 0 ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if grep -q "${param_name}:" $COMPLETION_FILE; then
+ sed -i "s|${param_name}:.*|${param_name}:${param_value}|g" $COMPLETION_FILE
+ else
+ echo "${param_name}:${param_value}" >> $COMPLETION_FILE
+ fi
+ else
+ echo "${param_name}:${param_value}" > $COMPLETION_FILE
+ fi
+ fi
+ fi
+}
+
+function mark_completed {
+ param_name="$1"
+
+ if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+ if [ ${#COMPLETION_FILE} -eq 0 ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if ! grep -Fxq "${param_name}" $COMPLETION_FILE; then
+ echo "${param_name}" >> $COMPLETION_FILE
+ fi
+ else
+ echo "${param_name}" > $COMPLETION_FILE
+ fi
+ fi
+}
+
+function is_completed {
+ param_name="$1"
+
+ if [ ! $COMPLETION_FILE ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+ if [ ${#COMPLETION_FILE} -eq 0 ]; then
+ COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
+ fi
+
+ if [ ${#param_name} -gt 0 ]; then
+ if [ -f $COMPLETION_FILE ]; then
+ if grep -Fxq "${param_name}" $COMPLETION_FILE; then
+ echo "1"
+ return
+ fi
+ fi
+ fi
+ echo "0"
+}
+
function read_config_param {
param_name="$1"
diff --git a/src/freedombone-utils-cron b/src/freedombone-utils-cron
index 05f58b76..6c1bf70b 100755
--- a/src/freedombone-utils-cron
+++ b/src/freedombone-utils-cron
@@ -29,48 +29,48 @@
# along with this program. If not, see .
function cron_add_mins {
- if ! grep -q "${2}" /etc/crontab; then
- echo "*/${1} * * * * root ${2}" >> /etc/crontab
- systemctl restart cron
- fi
+ if ! grep -q "${2}" /etc/crontab; then
+ echo "*/${1} * * * * root ${2}" >> /etc/crontab
+ systemctl restart cron
+ fi
}
function randomize_cron {
- # The predictable default timing of Debian cron jobs might
- # be exploitable knowledge. Avoid too much predictability
- # by randomizing the times when cron jobs run
- if grep -Fxq "randomize_cron" $COMPLETION_FILE; then
- return
- fi
+ # The predictable default timing of Debian cron jobs might
+ # be exploitable knowledge. Avoid too much predictability
+ # by randomizing the times when cron jobs run
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
- # randomize the day on which the weekly cron job runs
- randdow=$(($RANDOM%6+1))
- sed -i "s|\* \* 7|* * $randdow|g" /etc/crontab
+ # randomize the day on which the weekly cron job runs
+ randdow=$(($RANDOM%6+1))
+ sed -i "s|\* \* 7|* * $randdow|g" /etc/crontab
- # randomize the time when the weekly cron job runs
- randmin=$(($RANDOM%60))
- randhr=$(($RANDOM%3+1))
- sed -i "s|47 6|$randmin $randhr|g" /etc/crontab
+ # randomize the time when the weekly cron job runs
+ randmin=$(($RANDOM%60))
+ randhr=$(($RANDOM%3+1))
+ sed -i "s|47 6|$randmin $randhr|g" /etc/crontab
- # randomize the time when the daily cron job runs
- randmin=$(($RANDOM%60))
- randhr=$(($RANDOM%3+4))
- sed -i "s|25 6\t\* \* \*|$randmin $randhr\t* * *|g" /etc/crontab
+ # randomize the time when the daily cron job runs
+ randmin=$(($RANDOM%60))
+ randhr=$(($RANDOM%3+4))
+ sed -i "s|25 6\t\* \* \*|$randmin $randhr\t* * *|g" /etc/crontab
- # randomize the time when the hourly cron job runs
- randmin=$(($RANDOM%60))
- sed -i "s|17 \*\t|$randmin *\t|g" /etc/crontab
+ # randomize the time when the hourly cron job runs
+ randmin=$(($RANDOM%60))
+ sed -i "s|17 \*\t|$randmin *\t|g" /etc/crontab
- # randomize monthly cron job time and day
- randmin=$(($RANDOM%60))
- randhr=$(($RANDOM%22+1))
- randdom=$(($RANDOM%27+1))
- sed -i "s|52 6\t|$randmin $randhr\t|g" /etc/crontab
- sed -i "s|\t1 \* \*|\t$randdom * *|g" /etc/crontab
+ # randomize monthly cron job time and day
+ randmin=$(($RANDOM%60))
+ randhr=$(($RANDOM%22+1))
+ randdom=$(($RANDOM%27+1))
+ sed -i "s|52 6\t|$randmin $randhr\t|g" /etc/crontab
+ sed -i "s|\t1 \* \*|\t$randdom * *|g" /etc/crontab
- systemctl restart cron
+ systemctl restart cron
- echo 'randomize_cron' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-cryptopp b/src/freedombone-utils-cryptopp
index 3b291f04..88c33a1f 100755
--- a/src/freedombone-utils-cryptopp
+++ b/src/freedombone-utils-cryptopp
@@ -76,7 +76,7 @@ function install_cryptopp {
fi
fi
- if grep -Fxq "install_cryptopp" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -98,7 +98,7 @@ function install_cryptopp {
fi
make install
- echo 'install_cryptopp' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-database b/src/freedombone-utils-database
index 4147a29b..622e491a 100755
--- a/src/freedombone-utils-database
+++ b/src/freedombone-utils-database
@@ -117,7 +117,7 @@ function get_mariadb_password {
}
function install_mariadb {
- if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install python-software-properties debconf-utils
@@ -160,7 +160,7 @@ function install_mariadb {
fi
mysqladmin -u root password "$MARIADB_PASSWORD"
- echo 'install_mariadb' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function backup_databases_script_header {
@@ -209,7 +209,7 @@ function repair_databases_script {
sed -i "s|/usr/bin/repairdatabase|${PROJECT_NAME}-repair-database|g" /etc/cron.hourly/repair
fi
- if grep -Fxq "repair_databases_script" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -222,7 +222,7 @@ function repair_databases_script {
chmod 600 /etc/cron.hourly/repair
chmod +x /etc/cron.hourly/repair
- echo 'repair_databases_script' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function remove_database {
diff --git a/src/freedombone-utils-dns b/src/freedombone-utils-dns
index a021f20c..88be0069 100755
--- a/src/freedombone-utils-dns
+++ b/src/freedombone-utils-dns
@@ -98,7 +98,7 @@ function create_freedns_updater {
fi
# currently inadyn doesn't work as expected with freeDNS, so this is a workaround
- if grep -Fxq "create_freedns_updater" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $DDNS_PROVIDER != *"freedns"* ]]; then
@@ -114,7 +114,7 @@ function create_freedns_updater {
systemctl restart cron
fi
- echo 'create_freedns_updater' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function add_ddns_domain {
@@ -152,7 +152,7 @@ function add_ddns_domain {
}
function configure_dns {
- if grep -Fxq "configure_dns" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
echo 'domain localdomain' > /etc/resolv.conf
@@ -163,7 +163,7 @@ function configure_dns {
# prevent resolv.conf from changing
chattr +i /etc/resolv.conf
- echo 'configure_dns' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function set_hostname {
@@ -180,14 +180,14 @@ function set_hostname {
}
function set_your_domain_name {
- if grep -Fxq "set_your_domain_name" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
function_check set_hostname
set_hostname $DEFAULT_DOMAIN_NAME
- echo 'set_your_domain_name' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-filesystem b/src/freedombone-utils-filesystem
index 30fe7958..0a441b16 100755
--- a/src/freedombone-utils-filesystem
+++ b/src/freedombone-utils-filesystem
@@ -62,7 +62,7 @@ function install_tomb {
set_repo_commit $INSTALL_DIR/tomb "tomb commit" "$TOMB_COMMIT" $TOMB_REPO
if [ -f $COMPLETION_FILE ]; then
- if grep -Fxq "install_tomb" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
fi
@@ -77,18 +77,14 @@ function install_tomb {
cd $INSTALL_DIR/tomb
git checkout $TOMB_COMMIT -b $TOMB_COMMIT
- if ! grep -q "tomb commit" $COMPLETION_FILE; then
- echo "tomb commit:$TOMB_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/tomb commit.*/tomb commit:$TOMB_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "tomb commit" "$TOMB_COMMIT"
make install
if [ ! -f /usr/local/bin/tomb ]; then
exit 93462
fi
- echo 'install_tomb' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-final b/src/freedombone-utils-final
index 9c448dda..72511e3c 100755
--- a/src/freedombone-utils-final
+++ b/src/freedombone-utils-final
@@ -31,7 +31,7 @@
OPEN_PORTS=()
function install_final {
- if grep -Fxq "install_final" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
# unmount any attached usb drive
@@ -41,7 +41,7 @@ function install_final {
fi
function_check split_gpg_key_into_fragments
split_gpg_key_into_fragments
- echo 'install_final' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
clear
echo ''
diff --git a/src/freedombone-utils-firewall b/src/freedombone-utils-firewall
index 53a78be5..7cae81c7 100755
--- a/src/freedombone-utils-firewall
+++ b/src/freedombone-utils-firewall
@@ -64,7 +64,7 @@ function configure_firewall {
# recreate the firewall to remove RELATED
sed -i "/firewall/d" $COMPLETION_FILE
fi
- if grep -Fxq "configure_firewall" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -98,7 +98,7 @@ function configure_firewall {
# Incoming malformed NULL packets:
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
- echo 'configure_firewall' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_ping {
@@ -113,11 +113,11 @@ function configure_firewall_ping {
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
function_check save_firewall_settings
save_firewall_settings
- echo 'configure_firewall_ping' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_for_avahi {
- if grep -Fxq "configure_firewall_for_avahi" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
iptables -A INPUT -p tcp --dport 548 -j ACCEPT
@@ -128,11 +128,11 @@ function configure_firewall_for_avahi {
iptables -A INPUT -p udp --dport 5354 -j ACCEPT
function_check save_firewall_settings
save_firewall_settings
- echo 'configure_firewall_for_avahi' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_for_dns {
- if grep -Fxq "configure_firewall_for_dns" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -142,11 +142,11 @@ function configure_firewall_for_dns {
iptables -A INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j ACCEPT
function_check save_firewall_settings
save_firewall_settings
- echo 'configure_firewall_for_dns' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_for_web_access {
- if grep -Fxq "configure_firewall_for_web_access" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -161,11 +161,11 @@ function configure_firewall_for_web_access {
function_check save_firewall_settings
save_firewall_settings
- echo 'configure_firewall_for_web_access' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_for_web_server {
- if grep -Fxq "configure_firewall_for_web_server" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -182,11 +182,11 @@ function configure_firewall_for_web_server {
OPEN_PORTS+=('HTTP 80')
OPEN_PORTS+=('HTTPS 443')
- echo 'configure_firewall_for_web_server' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_for_ssh {
- if grep -Fxq "configure_firewall_for_ssh" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -199,11 +199,11 @@ function configure_firewall_for_ssh {
save_firewall_settings
OPEN_PORTS+=("SSH $SSH_PORT")
- echo 'configure_firewall_for_ssh' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_firewall_for_git {
- if grep -Fxq "configure_firewall_for_git" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
@@ -218,11 +218,11 @@ function configure_firewall_for_git {
save_firewall_settings
OPEN_PORTS+=("Git 9418")
- echo 'configure_firewall_for_git' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_internet_protocol {
- if grep -Fxq "configure_internet_protocol" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $SYSTEM_TYPE == "mesh"* ]]; then
@@ -257,7 +257,7 @@ function configure_internet_protocol {
echo 'net.ipv4.tcp_keepalive_intvl = 75' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_keepalive_time = 7200' >> /etc/sysctl.conf
fi
- echo 'configure_internet_protocol' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function mesh_firewall {
diff --git a/src/freedombone-utils-git b/src/freedombone-utils-git
index 6ede5d50..90e95392 100755
--- a/src/freedombone-utils-git
+++ b/src/freedombone-utils-git
@@ -90,7 +90,7 @@ function commit_has_changed {
repo_commit=$3
if [ -d $repo_dir ]; then
if grep -q "$repo_commit_name" $COMPLETION_FILE; then
- CURRENT_REPO_COMMIT=$(grep "$repo_commit_name" $COMPLETION_FILE | awk -F ':' '{print $2}')
+ CURRENT_REPO_COMMIT=$(get_completion_param "$repo_commit_name")
if [[ "$CURRENT_REPO_COMMIT" != "$repo_commit" ]]; then
echo "1"
fi
@@ -131,11 +131,8 @@ function set_repo_commit {
systemctl restart inadyn
fi
- if ! grep -q "${repo_commit_name}:" $COMPLETION_FILE; then
- echo "${repo_commit_name}:${repo_commit}" >> $COMPLETION_FILE
- else
- sed -i "s/${repo_commit_name}.*/${repo_commit_name}:$repo_commit/g" $COMPLETION_FILE
- fi
+ function_check set_completion_param
+ set_completion_param "${repo_commit_name}" "${repo_commit}"
fi
}
diff --git a/src/freedombone-utils-go b/src/freedombone-utils-go
index fec8f287..de4a81ff 100755
--- a/src/freedombone-utils-go
+++ b/src/freedombone-utils-go
@@ -207,7 +207,7 @@ function upgrade_golang {
systemctl restart gogs
fi
- echo "upgrade_golang:$GO_VERSION" >> $COMPLETION_FILE
+ set_completion_param "$FUNCNAME" "$GO_VERSION"
}
# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-international b/src/freedombone-utils-international
index bf56b55b..2943ae73 100755
--- a/src/freedombone-utils-international
+++ b/src/freedombone-utils-international
@@ -29,7 +29,7 @@
# along with this program. If not, see .
function locale_setup {
- if grep -Fxq "locale_setup" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -49,7 +49,7 @@ function locale_setup {
update-locale LC_ALL=${DEFAULT_LANGUAGE}
update-locale LC_CTYPE=${DEFAULT_LANGUAGE}
- echo 'locale_setup' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-login b/src/freedombone-utils-login
index bde35af8..9a465e5d 100755
--- a/src/freedombone-utils-login
+++ b/src/freedombone-utils-login
@@ -29,7 +29,7 @@
# along with this program. If not, see .
function change_login_message {
- if grep -Fxq "change_login_message" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -46,7 +46,7 @@ function change_login_message {
echo "' ' --' --' -' - -' ' ' -' -' -' ' - --'" >> /etc/motd
echo $' Freedom in the Cloud' >> /etc/motd
echo '' >> /etc/motd
- echo 'change_login_message' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-monkeysphere b/src/freedombone-utils-monkeysphere
index 3107e868..6c2d24c0 100755
--- a/src/freedombone-utils-monkeysphere
+++ b/src/freedombone-utils-monkeysphere
@@ -29,38 +29,38 @@
# along with this program. If not, see .
function install_monkeysphere {
- if grep -Fxq "install_monkeysphere" $COMPLETION_FILE; then
- return
- fi
- apt-get -y install monkeysphere msva-perl
- #su -c "monkeysphere gen-subkey $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
- mkdir /home/$MY_USERNAME/.monkeysphere
- chmod 755 /home/$MY_USERNAME/.monkeysphere
- echo "$MY_NAME <${MY_EMAIL_ADDRESS}>" > /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
- chmod 644 /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.monkeysphere
- monkeysphere-authentication update-users
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ apt-get -y install monkeysphere msva-perl
+ #su -c "monkeysphere gen-subkey $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
+ mkdir /home/$MY_USERNAME/.monkeysphere
+ chmod 755 /home/$MY_USERNAME/.monkeysphere
+ echo "$MY_NAME <${MY_EMAIL_ADDRESS}>" > /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
+ chmod 644 /home/$MY_USERNAME/.monkeysphere/authorized_user_ids
+ chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.monkeysphere
+ monkeysphere-authentication update-users
- if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
- echo $'monkeysphere import: ssh host key not found'
- exit 76295
- fi
- monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$DEFAULT_DOMAIN_NAME
- SSH_ONION_HOSTNAME=$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')
- monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$SSH_ONION_HOSTNAME
+ if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
+ echo $'monkeysphere import: ssh host key not found'
+ exit 76295
+ fi
+ monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$DEFAULT_DOMAIN_NAME
+ SSH_ONION_HOSTNAME=$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')
+ monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key ssh://$SSH_ONION_HOSTNAME
- if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
- MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_USERNAME@$HOSTNAME")
- if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
- echo $'monkeysphere unable to get GPG key ID for user $MY_USERNAME'
- exit 52825
- fi
- fi
- # The admin user is the identity certifier
- fpr=$(gpg --with-colons --fingerprint $MY_GPG_PUBLIC_KEY_ID | grep fpr | head -n 1 | awk -F ':' '{print $10}')
- monkeysphere-authentication add-identity-certifier $fpr
+ if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
+ MY_GPG_PUBLIC_KEY_ID=$(gpg_pubkey_from_email "$MY_USERNAME" "$MY_USERNAME@$HOSTNAME")
+ if [ ${#MY_GPG_PUBLIC_KEY_ID} -lt 4 ]; then
+ echo $'monkeysphere unable to get GPG key ID for user $MY_USERNAME'
+ exit 52825
+ fi
+ fi
+ # The admin user is the identity certifier
+ fpr=$(gpg --with-colons --fingerprint $MY_GPG_PUBLIC_KEY_ID | grep fpr | head -n 1 | awk -F ':' '{print $10}')
+ monkeysphere-authentication add-identity-certifier $fpr
- echo 'install_monkeysphere' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-network b/src/freedombone-utils-network
index ae311ce1..60ee896d 100755
--- a/src/freedombone-utils-network
+++ b/src/freedombone-utils-network
@@ -41,50 +41,50 @@ ROUTER_IP_ADDRESS="192.168.1.254"
MESH_INSTALL_DIR=/var/lib
function install_static_network {
- if grep -Fxq "install_static_network" $COMPLETION_FILE; then
- return
- fi
- if [[ $INSTALLING_ON_BBB == "yes" ]]; then
- return
- fi
- if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
- return
- fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLING_ON_BBB == "yes" ]]; then
+ return
+ fi
+ if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
+ return
+ fi
- echo '# The loopback network interface' > /etc/network/interfaces
- echo 'auto lo' >> /etc/network/interfaces
- echo 'iface lo inet loopback' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# The primary network interface' >> /etc/network/interfaces
- echo 'auto eth0' >> /etc/network/interfaces
- echo 'iface eth0 inet static' >> /etc/network/interfaces
- echo " address $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/network/interfaces
- echo ' netmask 255.255.255.0' >> /etc/network/interfaces
- echo " gateway $ROUTER_IP_ADDRESS" >> /etc/network/interfaces
- echo " dns-nameservers $NAMESERVER1 $NAMESERVER2" >> /etc/network/interfaces
- echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
- echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# The secondary network interface' >> /etc/network/interfaces
- echo '#auto eth1' >> /etc/network/interfaces
- echo '#iface eth1 inet dhcp' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# WiFi Example' >> /etc/network/interfaces
- echo "#auto $WIFI_INTERFACE" >> /etc/network/interfaces
- echo "#iface $WIFI_INTERFACE inet dhcp" >> /etc/network/interfaces
- echo '# wpa-ssid "essid"' >> /etc/network/interfaces
- echo '# wpa-psk "password"' >> /etc/network/interfaces
- echo '' >> /etc/network/interfaces
- echo '# Ethernet/RNDIS gadget (g_ether)' >> /etc/network/interfaces
- echo '# ... or on host side, usbnet and random hwaddr' >> /etc/network/interfaces
- echo '# Note on some boards, usb0 is automaticly setup with an init script' >> /etc/network/interfaces
- echo '#iface usb0 inet static' >> /etc/network/interfaces
- echo '# address 192.168.7.2' >> /etc/network/interfaces
- echo '# netmask 255.255.255.0' >> /etc/network/interfaces
- echo '# network 192.168.7.0' >> /etc/network/interfaces
- echo '# gateway 192.168.7.1' >> /etc/network/interfaces
+ echo '# The loopback network interface' > /etc/network/interfaces
+ echo 'auto lo' >> /etc/network/interfaces
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# The primary network interface' >> /etc/network/interfaces
+ echo 'auto eth0' >> /etc/network/interfaces
+ echo 'iface eth0 inet static' >> /etc/network/interfaces
+ echo " address $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/network/interfaces
+ echo ' netmask 255.255.255.0' >> /etc/network/interfaces
+ echo " gateway $ROUTER_IP_ADDRESS" >> /etc/network/interfaces
+ echo " dns-nameservers $NAMESERVER1 $NAMESERVER2" >> /etc/network/interfaces
+ echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
+ echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# The secondary network interface' >> /etc/network/interfaces
+ echo '#auto eth1' >> /etc/network/interfaces
+ echo '#iface eth1 inet dhcp' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# WiFi Example' >> /etc/network/interfaces
+ echo "#auto $WIFI_INTERFACE" >> /etc/network/interfaces
+ echo "#iface $WIFI_INTERFACE inet dhcp" >> /etc/network/interfaces
+ echo '# wpa-ssid "essid"' >> /etc/network/interfaces
+ echo '# wpa-psk "password"' >> /etc/network/interfaces
+ echo '' >> /etc/network/interfaces
+ echo '# Ethernet/RNDIS gadget (g_ether)' >> /etc/network/interfaces
+ echo '# ... or on host side, usbnet and random hwaddr' >> /etc/network/interfaces
+ echo '# Note on some boards, usb0 is automaticly setup with an init script' >> /etc/network/interfaces
+ echo '#iface usb0 inet static' >> /etc/network/interfaces
+ echo '# address 192.168.7.2' >> /etc/network/interfaces
+ echo '# netmask 255.255.255.0' >> /etc/network/interfaces
+ echo '# network 192.168.7.0' >> /etc/network/interfaces
+ echo '# gateway 192.168.7.1' >> /etc/network/interfaces
- echo 'install_static_network' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-nodejs b/src/freedombone-utils-nodejs
index 4272c51b..17624c46 100755
--- a/src/freedombone-utils-nodejs
+++ b/src/freedombone-utils-nodejs
@@ -70,7 +70,7 @@ function install_nodejs {
mesh_install_nodejs
return
fi
- if grep -Fxq "install_nodejs" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -101,7 +101,7 @@ EOF
fi
rm -f /root/install-nodejs.sh
- echo 'install_nodejs' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately there is no "exit 0"
diff --git a/src/freedombone-utils-onion b/src/freedombone-utils-onion
index 72d141b5..e6ae2750 100755
--- a/src/freedombone-utils-onion
+++ b/src/freedombone-utils-onion
@@ -107,13 +107,7 @@ function add_onion_service {
onion_address=$(cat /var/lib/tor/hidden_service_${onion_service_name}/hostname)
# Record the domain in the completion file
- if [ -f $COMPLETION_FILE ]; then
- if ! grep "${onion_service_name} onion domain" $COMPLETION_FILE; then
- echo "${onion_service_name} onion domain:${onion_address}" >> $COMPLETION_FILE
- else
- sed -i "s|${onion_service_name} onion domain.*|${onion_service_name} onion domain:${onion_address}|g" $COMPLETION_FILE
- fi
- fi
+ set_completion_param "${onion_service_name} onion domain" "${onion_address}"
echo $onion_address
}
@@ -179,7 +173,7 @@ function enable_ssh_via_onion {
if [[ $SYSTEM_TYPE == "mesh"* ]]; then
return
fi
- if grep -Fxq "enable_ssh_via_onion" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install tor connect-proxy
@@ -199,11 +193,11 @@ function enable_ssh_via_onion {
echo 'Host *.onion' >> /root/.ssh/config
echo 'ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p' >> /root/.ssh/config
fi
- echo 'enable_ssh_via_onion' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function configure_ssh_onion {
- if grep -Fxq "configure_ssh_onion" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $SYSTEM_TYPE == "mesh"* ]]; then
@@ -212,20 +206,16 @@ function configure_ssh_onion {
SSH_ONION_HOSTNAME=$(add_onion_service ssh ${SSH_PORT} ${SSH_PORT})
- if ! grep -q "ssh onion domain" $COMPLETION_FILE; then
- echo "ssh onion domain:${SSH_ONION_HOSTNAME}" >> $COMPLETION_FILE
- else
- sed -i "s|ssh onion domain.*|ssh onion domain:${SSH_ONION_HOSTNAME}|g" $COMPLETION_FILE
- fi
+ set_completion_param "ssh onion domain" "${SSH_ONION_HOSTNAME}"
- echo 'configure_ssh_onion' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_tor {
if [[ $SYSTEM_TYPE == "mesh*" ]]; then
return
fi
- if grep -Fxq "install_tor" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install tor
@@ -233,14 +223,14 @@ function install_tor {
echo 'Tor failed to install'
exit 38259
fi
- echo 'install_tor' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function resolve_dns_via_tor {
if [[ $SYSTEM_TYPE == "mesh"* ]]; then
return
fi
- if grep -Fxq "resolve_dns_via_tor" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [ ! -f /etc/tor/torrc ]; then
@@ -265,13 +255,13 @@ function resolve_dns_via_tor {
# prevent resolv.conf from changing
chattr +i /etc/resolv.conf
- echo 'resolve_dns_via_tor' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# see https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
# Local Redirection and Anonymizing Middlebox
function route_outgoing_traffic_through_tor {
- if grep -Fxq "route_outgoing_traffic_through_tor" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [[ $ROUTE_THROUGH_TOR != "yes" ]]; then
@@ -364,7 +354,7 @@ function route_outgoing_traffic_through_tor {
echo "DNSListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/tor/torrc
fi
- echo 'route_outgoing_traffic_through_tor' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-passwords b/src/freedombone-utils-passwords
index d096af14..61fdb30c 100755
--- a/src/freedombone-utils-passwords
+++ b/src/freedombone-utils-passwords
@@ -41,13 +41,13 @@ DEFAULT_PASSWORD_LENGTH=20
function enforce_good_passwords {
# because humans are generally bad at choosing passwords
- if grep -Fxq "enforce_good_passwords" $COMPLETION_FILE; then
+ if [[ $(is_completd $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install libpam-cracklib
sed -i 's/password.*requisite.*pam_cracklib.so.*/password required pam_cracklib.so retry=2 dcredit=-4 ucredit=-1 ocredit=-1 lcredit=0 minlen=10 reject_username/g' /etc/pam.d/common-password
- echo 'enforce_good_passwords' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function create_password {
diff --git a/src/freedombone-utils-repos b/src/freedombone-utils-repos
index 4002cc8c..a379cd97 100755
--- a/src/freedombone-utils-repos
+++ b/src/freedombone-utils-repos
@@ -39,7 +39,7 @@ FRIENDS_MIRRORS_SERVER=
FRIENDS_MIRRORS_SSH_PORT=2222
function create_repo_sources {
- if grep -Fxq "create_repo_sources" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
rm -rf /var/lib/apt/lists/*
@@ -60,7 +60,7 @@ function create_repo_sources {
apt-get update
apt-get -y install apt-transport-https
- echo 'create_repo_sources' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function read_repo_servers {
@@ -105,7 +105,7 @@ function read_repo_servers {
# A command to create a git repository for a project
function create_git_project {
- if grep -Fxq "create_git_project" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install git
@@ -133,18 +133,18 @@ function create_git_project {
echo 'exit 0' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
chmod +x /usr/bin/$CREATE_GIT_PROJECT_COMMAND
- echo 'create_git_project' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function create_mirrors {
if [ -d /home/trove ]; then
userdel -r trove
fi
- if grep -Fxq "create_mirrors" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
${PROJECT_NAME}-mirrors
- echo 'create_mirrors' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-rng b/src/freedombone-utils-rng
index 8a8f5b31..30e1a9fa 100755
--- a/src/freedombone-utils-rng
+++ b/src/freedombone-utils-rng
@@ -42,126 +42,126 @@ ONERNG_PACKAGE_HASH='78f1c2f52ae573e3b398a695ece7ab9f41868252657ea269f0d5cf0bd4f
ONERNG_DEVICE='ttyACM0'
function check_hwrng {
- if [[ $HWRNG_TYPE == "beaglebone" ]]; then
- # If hardware random number generation was enabled then make sure that the device exists.
- # if /dev/hwrng is not found then any subsequent cryptographic key generation would
- # suffer from low entropy and might be insecure
- if [ ! -e /dev/hwrng ]; then
- ls /dev/hw*
- echo $'The hardware random number generator is enabled but could not be detected on'
- echo $'/dev/hwrng. There may be a problem with the installation or the Beaglebone hardware.'
- exit 75
- fi
- fi
+ if [[ $HWRNG_TYPE == "beaglebone" ]]; then
+ # If hardware random number generation was enabled then make sure that the device exists.
+ # if /dev/hwrng is not found then any subsequent cryptographic key generation would
+ # suffer from low entropy and might be insecure
+ if [ ! -e /dev/hwrng ]; then
+ ls /dev/hw*
+ echo $'The hardware random number generator is enabled but could not be detected on'
+ echo $'/dev/hwrng. There may be a problem with the installation or the Beaglebone hardware.'
+ exit 75
+ fi
+ fi
- # If a OneRNG device was installed then verify its firmware
- #check_onerng_verification
+ # If a OneRNG device was installed then verify its firmware
+ #check_onerng_verification
}
function check_onerng_verification {
- if grep -Fxq "check_onerng_verification" $COMPLETION_FILE; then
- return
- fi
- if [[ $HWRNG_TYPE != "onerng" ]]; then
- return
- fi
- echo $'Checking OneRNG firmware verification'
- last_onerng_validation=$(cat /var/log/syslog.1 | grep "OneRNG: firmware verification" | awk '/./{line=$0} END{print line}')
- if [[ $last_onerng_validation != *"passed OK"* ]]; then
- last_onerng_validation=$(cat /var/log/syslog | grep "OneRNG: firmware verification" | awk '/./{line=$0} END{print line}')
- if [[ $last_onerng_validation != *"passed OK"* ]]; then
- echo $last_onerng_validation
- echo $'OneRNG firmware verification failed'
- exit 735026
- fi
- fi
- echo $'OneRNG firmware verification passed'
- # if haveged was previously installed then remove it
- apt-get -y remove haveged
- echo 'check_onerng_verification' >> $COMPLETION_FILE
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $HWRNG_TYPE != "onerng" ]]; then
+ return
+ fi
+ echo $'Checking OneRNG firmware verification'
+ last_onerng_validation=$(cat /var/log/syslog.1 | grep "OneRNG: firmware verification" | awk '/./{line=$0} END{print line}')
+ if [[ $last_onerng_validation != *"passed OK"* ]]; then
+ last_onerng_validation=$(cat /var/log/syslog | grep "OneRNG: firmware verification" | awk '/./{line=$0} END{print line}')
+ if [[ $last_onerng_validation != *"passed OK"* ]]; then
+ echo $last_onerng_validation
+ echo $'OneRNG firmware verification failed'
+ exit 735026
+ fi
+ fi
+ echo $'OneRNG firmware verification passed'
+ # if haveged was previously installed then remove it
+ apt-get -y remove haveged
+ mark_completed $FUNCNAME
}
function install_onerng {
- apt-get -y install rng-tools at python-gnupg
+ apt-get -y install rng-tools at python-gnupg
- # Move to the installation directory
- if [ ! -d $INSTALL_DIR ]; then
- mkdir $INSTALL_DIR
- fi
- cd $INSTALL_DIR
+ # Move to the installation directory
+ if [ ! -d $INSTALL_DIR ]; then
+ mkdir $INSTALL_DIR
+ fi
+ cd $INSTALL_DIR
- # Download the package
- if [ ! -f $ONERNG_PACKAGE ]; then
- wget $ONERNG_PACKAGE_DOWNLOAD
- mv "$ONERNG_PACKAGE?raw=true" $ONERNG_PACKAGE
- fi
- if [ ! -f $ONERNG_PACKAGE ]; then
- echo $"OneRNG package could not be downloaded"
- exit 59249
- fi
+ # Download the package
+ if [ ! -f $ONERNG_PACKAGE ]; then
+ wget $ONERNG_PACKAGE_DOWNLOAD
+ mv "$ONERNG_PACKAGE?raw=true" $ONERNG_PACKAGE
+ fi
+ if [ ! -f $ONERNG_PACKAGE ]; then
+ echo $"OneRNG package could not be downloaded"
+ exit 59249
+ fi
- # Check the hash
- hash=$(sha256sum $ONERNG_PACKAGE | awk -F ' ' '{print $1}')
- if [[ $hash != $ONERNG_PACKAGE_HASH ]]; then
- echo $"OneRNG package: $ONERNG_PACKAGE"
- echo $"Hash does not match. This could indicate that the package has been tampered with."
- echo $"OneRNG expected package hash: $ONERNG_PACKAGE_HASH"
- echo $"OneRNG actual hash: $hash"
- exit 25934
- fi
+ # Check the hash
+ hash=$(sha256sum $ONERNG_PACKAGE | awk -F ' ' '{print $1}')
+ if [[ $hash != $ONERNG_PACKAGE_HASH ]]; then
+ echo $"OneRNG package: $ONERNG_PACKAGE"
+ echo $"Hash does not match. This could indicate that the package has been tampered with."
+ echo $"OneRNG expected package hash: $ONERNG_PACKAGE_HASH"
+ echo $"OneRNG actual hash: $hash"
+ exit 25934
+ fi
- # install the package
- dpkg -i $ONERNG_PACKAGE
+ # install the package
+ dpkg -i $ONERNG_PACKAGE
- # Check that the install worked
- if [ ! -f /etc/onerng.conf ]; then
- echo $'OneRNG configuration file not found. The package may not have installed successfully.'
- exit 42904
- fi
+ # Check that the install worked
+ if [ ! -f /etc/onerng.conf ]; then
+ echo $'OneRNG configuration file not found. The package may not have installed successfully.'
+ exit 42904
+ fi
- dialog --title $"OneRNG Device" \
- --msgbox $"Please plug in the OneRNG device" 6 40
+ dialog --title $"OneRNG Device" \
+ --msgbox $"Please plug in the OneRNG device" 6 40
- # check rng-tools configuration
- if ! grep -q "/dev/$ONERNG_DEVICE" /etc/default/rng-tools; then
- echo "HRNGDEVICE=/dev/$ONERNG_DEVICE" >> /etc/default/rng-tools
- fi
+ # check rng-tools configuration
+ if ! grep -q "/dev/$ONERNG_DEVICE" /etc/default/rng-tools; then
+ echo "HRNGDEVICE=/dev/$ONERNG_DEVICE" >> /etc/default/rng-tools
+ fi
- systemctl restart rng-tools
+ systemctl restart rng-tools
}
function random_number_generator {
- if grep -Fxq "random_number_generator" $COMPLETION_FILE; then
- return
- fi
- if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
- # it is assumed that docker uses the random number
- # generator of the host system
- return
- fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
+ # it is assumed that docker uses the random number
+ # generator of the host system
+ return
+ fi
- # if the hrng type has not been set but /dev/hwrng is detected
- if [[ $HWRNG_TYPE != "beaglebone" ]]; then
- if [ -e /dev/hwrng ]; then
- HWRNG_TYPE="beaglebone"
- fi
- fi
+ # if the hrng type has not been set but /dev/hwrng is detected
+ if [[ $HWRNG_TYPE != "beaglebone" ]]; then
+ if [ -e /dev/hwrng ]; then
+ HWRNG_TYPE="beaglebone"
+ fi
+ fi
- case $HWRNG_TYPE in
- beaglebone)
- apt-get -y install rng-tools
- sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' /etc/default/rng-tools
- ;;
- onerng)
- function_check install_onerng
- install_onerng
- ;;
- *)
- apt-get -y install haveged
- ;;
- esac
+ case $HWRNG_TYPE in
+ beaglebone)
+ apt-get -y install rng-tools
+ sed -i 's|#HRNGDEVICE=/dev/hwrng|HRNGDEVICE=/dev/hwrng|g' /etc/default/rng-tools
+ ;;
+ onerng)
+ function_check install_onerng
+ install_onerng
+ ;;
+ *)
+ apt-get -y install haveged
+ ;;
+ esac
- echo 'random_number_generator' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-selector b/src/freedombone-utils-selector
index 9ab9447d..f8b4a963 100755
--- a/src/freedombone-utils-selector
+++ b/src/freedombone-utils-selector
@@ -230,7 +230,9 @@ function install_completed {
if [ ! ${1} ]; then
exit 673935
fi
- echo "install_${1}" >> $COMPLETION_FILE
+ if ! grep -Fxq "install_${1}" $COMPLETION_FILE; then
+ echo "install_${1}" >> $COMPLETION_FILE
+ fi
}
# populates an array of "0" or "1" for whether apps are installed
diff --git a/src/freedombone-utils-setup b/src/freedombone-utils-setup
index af10032c..84b8101d 100755
--- a/src/freedombone-utils-setup
+++ b/src/freedombone-utils-setup
@@ -82,7 +82,7 @@ CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/
DH_KEYLENGTH=2048
function initial_setup {
- if grep -Fxq "initial_setup" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -104,7 +104,7 @@ function initial_setup {
mkdir -p $INSTALL_DIR
fi
- echo 'initial_setup' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function search_for_attached_usb_drive {
@@ -210,13 +210,11 @@ function search_for_attached_usb_drive {
fi
echo $'No USB drive attached'
fi
- echo 'search_for_attached_usb_drive' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function mark_admin_user_account {
- if ! grep -q "Admin user:" $COMPLETION_FILE; then
- echo "Admin user:$MY_USERNAME" >> $COMPLETION_FILE
- fi
+ set_completion_param "Admin user" "$MY_USERNAME"
}
function remove_instructions_from_motd {
diff --git a/src/freedombone-utils-ssh b/src/freedombone-utils-ssh
index 6e99f8e2..106a8204 100755
--- a/src/freedombone-utils-ssh
+++ b/src/freedombone-utils-ssh
@@ -37,7 +37,7 @@ SSH_KEX="diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie
SSH_HOST_KEY_ALGORITHMS="ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-ed25519,ssh-rsa"
function configure_ssh {
- if grep -Fxq "configure_ssh" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
sed -i "s/Port .*/Port $SSH_PORT/g" /etc/ssh/sshd_config
@@ -82,7 +82,7 @@ function configure_ssh {
function_check configure_firewall_for_ssh
configure_firewall_for_ssh
- echo 'configure_ssh' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# see https://stribika.github.io/2015/01/04/secure-secure-shell.html
@@ -92,7 +92,7 @@ function ssh_remove_small_moduli {
}
function configure_ssh_client {
- if grep -Fxq "configure_ssh_client" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
#sed -i 's/# PasswordAuthentication.*/ PasswordAuthentication no/g' /etc/ssh/ssh_config
@@ -122,11 +122,11 @@ function configure_ssh_client {
function_check ssh_remove_small_moduli
ssh_remove_small_moduli
- echo 'configure_ssh_client' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function regenerate_ssh_keys {
- if grep -Fxq "regenerate_ssh_keys" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
rm -f /etc/ssh/ssh_host_*
@@ -136,7 +136,7 @@ function regenerate_ssh_keys {
ssh_remove_small_moduli
systemctl restart ssh
- echo 'regenerate_ssh_keys' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-tracker b/src/freedombone-utils-tracker
index 3a715a9e..67d404df 100755
--- a/src/freedombone-utils-tracker
+++ b/src/freedombone-utils-tracker
@@ -65,7 +65,7 @@ function install_tracker {
return
fi
- if grep -Fxq "install_tracker" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -97,7 +97,7 @@ function install_tracker {
systemctl enable tracker.service
systemctl start tracker.service
- echo 'install_tracker' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-upgrade b/src/freedombone-utils-upgrade
index e7bdce38..3ab84bfb 100755
--- a/src/freedombone-utils-upgrade
+++ b/src/freedombone-utils-upgrade
@@ -38,20 +38,20 @@ function create_upgrade_script {
cp /usr/bin/${PROJECT_NAME}-upgrade /etc/cron.weekly/$UPGRADE_SCRIPT_NAME
fi
- if grep -Fxq "create_upgrade_script" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install unattended-upgrades
- echo 'create_upgrade_script' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function upgrade_installation_from_previous_versions {
if [ ! -f $COMPLETION_FILE ]; then
return
fi
- if grep -Fxq "upgrade_installation_from_previous_versions" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -84,7 +84,7 @@ function upgrade_installation_from_previous_versions {
rm /usr/local/bin/zeronetavahi
fi
- echo 'upgrade_installation_from_previous_versions' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-watchdog b/src/freedombone-utils-watchdog
index 025957f9..be270011 100755
--- a/src/freedombone-utils-watchdog
+++ b/src/freedombone-utils-watchdog
@@ -34,7 +34,7 @@
WATCHDOG_SCRIPT_NAME="keepon"
function install_watchdog_script {
- if grep -Fxq "install_watchdog_script" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
echo '#!/bin/bash' > /usr/bin/$WATCHDOG_SCRIPT_NAME
@@ -46,7 +46,7 @@ function install_watchdog_script {
function_check cron_add_mins
cron_add_mins 1 "/usr/bin/$WATCHDOG_SCRIPT_NAME"
- echo 'install_watchdog_script' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function add_watchdog_daemon {
diff --git a/src/freedombone-utils-web b/src/freedombone-utils-web
index 24314bb4..2403976b 100755
--- a/src/freedombone-utils-web
+++ b/src/freedombone-utils-web
@@ -336,7 +336,7 @@ function install_dynamicdns {
function_check set_repo_commit
set_repo_commit $INSTALL_DIR/inadyn "inadyn commit" "$INADYN_COMMIT" $INADYN_REPO
- if grep -Fxq "install_dynamicdns" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -357,11 +357,7 @@ function install_dynamicdns {
fi
cd $INSTALL_DIR/inadyn
git checkout $INADYN_COMMIT -b $INADYN_COMMIT
- if ! grep -q "inadyn commit" $COMPLETION_FILE; then
- echo "inadyn commit:$INADYN_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/inadyn commit.*/inadyn commit:$INADYN_COMMIT/g" $COMPLETION_FILE
- fi
+ set_completion_param "inadyn commit" "$INADYN_COMMIT"
./configure
if [ ! "$?" = "0" ]; then
@@ -403,11 +399,11 @@ function install_dynamicdns {
systemctl start inadyn
systemctl daemon-reload
- echo 'install_dynamicdns' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function install_command_line_browser {
- if grep -Fxq "install_command_line_browser" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
apt-get -y install elinks
@@ -421,7 +417,7 @@ function install_command_line_browser {
fi
fi
- echo 'install_command_line_browser' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
function mesh_web_server {
@@ -448,7 +444,7 @@ function install_web_server {
function_check set_repo_commit
set_repo_commit $INSTALL_DIR/nginx_ensite "nginx-ensite commit" "$NGINX_ENSITE_COMMIT" $NGINX_ENSITE_REPO
- if grep -Fxq "install_web_server" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
# remove apache
@@ -562,11 +558,8 @@ function install_web_server {
git_clone $NGINX_ENSITE_REPO $INSTALL_DIR/nginx_ensite
cd $INSTALL_DIR/nginx_ensite
git checkout $NGINX_ENSITE_COMMIT -b $NGINX_ENSITE_COMMIT
- if ! grep -q "nginx-ensite commit" $COMPLETION_FILE; then
- echo "nginx-ensite commit:$NGINX_ENSITE_COMMIT" >> $COMPLETION_FILE
- else
- sed -i "s/nginx-ensite commit.*/nginx-ensite commit:$NGINX_ENSITE_COMMIT/g" $COMPLETION_FILE
- fi
+
+ set_completion_param "nginx-ensite commit" "$NGINX_ENSITE_COMMIT"
make install
nginx_dissite default
@@ -574,7 +567,7 @@ function install_web_server {
function_check configure_firewall_for_web_access
configure_firewall_for_web_access
- echo 'install_web_server' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-wifi b/src/freedombone-utils-wifi
index 9608da54..5152c09e 100755
--- a/src/freedombone-utils-wifi
+++ b/src/freedombone-utils-wifi
@@ -49,7 +49,8 @@ function setup_wifi {
if [ ${#WIFI_SSID} -lt 2 ]; then
return
fi
- if grep -Fxq "setup_wifi" $COMPLETION_FILE; then
+
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
@@ -60,7 +61,7 @@ function setup_wifi {
if [ -f $WIFI_NETWORKS_FILE ]; then
${PROJECT_NAME}-wifi -i $WIFI_INTERFACE --networks $WIFI_NETWORKS_FILE
- echo 'setup_wifi' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
return
fi
@@ -77,12 +78,12 @@ function setup_wifi {
else
${PROJECT_NAME}-wifi -i $WIFI_INTERFACE -s $WIFI_SSID -t $WIFI_TYPE --hotspot $HOTSPOT --networks $WIFI_NETWORKS_FILE
fi
- echo 'setup_wifi' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# ath9k_htc driver
function install_atheros_wifi {
- if grep -Fxq "install_atheros_wifi" $COMPLETION_FILE; then
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
return
fi
if [ $INSTALLING_ON_BBB != "yes" ]; then
@@ -127,7 +128,7 @@ function install_atheros_wifi {
if [ ! "$?" = "0" ]; then
exit 74681
fi
- echo 'install_atheros_wifi' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0
diff --git a/src/freedombone-utils-zram b/src/freedombone-utils-zram
index 38336791..b3600539 100755
--- a/src/freedombone-utils-zram
+++ b/src/freedombone-utils-zram
@@ -29,18 +29,18 @@
# along with this program. If not, see .
function enable_zram {
- if grep -Fxq "enable_zram" $COMPLETION_FILE; then
- return
- fi
+ if [[ $(is_completed $FUNCNAME) == "1" ]]; then
+ return
+ fi
- if [[ $INSTALLED_WITHIN_DOCKER == "yes" || $INSTALLING_ON_BBB != "yes" ]]; then
- ${PROJECT_NAME}-zram off
- return
- fi
+ if [[ $INSTALLED_WITHIN_DOCKER == "yes" || $INSTALLING_ON_BBB != "yes" ]]; then
+ ${PROJECT_NAME}-zram off
+ return
+ fi
- ${PROJECT_NAME}-zram on
+ ${PROJECT_NAME}-zram on
- echo 'enable_zram' >> $COMPLETION_FILE
+ mark_completed $FUNCNAME
}
# NOTE: deliberately no exit 0