| 
				
			 | 
			
			
				@@ -33,20 +33,84 @@ VARIANTS='' 
			 | 
		
	
		
			
			| 
				33
			 | 
			
				33
			 | 
			
			
				 IN_DEFAULT_INSTALL=0 
			 | 
		
	
		
			
			| 
				34
			 | 
			
				34
			 | 
			
			
				 SHOW_ON_ABOUT=0 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				35
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				36
			 | 
			
			
				+PELICAN_BLOG_DOMAIN= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				37
			 | 
			
			
				+PELICAN_BLOG_CODE= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				38
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				39
			 | 
			
			
				 STATIC_BLOG_INSTALL_DIR=/etc/staticblog 
			 | 
		
	
		
			
			| 
				37
			 | 
			
				40
			 | 
			
			
				 PELICAN_THEMES_REPO="https://github.com/getpelican/pelican-themes" 
			 | 
		
	
		
			
			| 
				38
			 | 
			
				41
			 | 
			
			
				 PELICAN_PLUGINS_REPO="https://github.com/getpelican/pelican-plugins" 
			 | 
		
	
		
			
			| 
				39
			 | 
			
				42
			 | 
			
			
				 DEFAULT_BLOG_TITLE=$"Freedombone Blog" 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				43
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				41
			 | 
			
				44
			 | 
			
			
				 pelican_variables=(MY_USERNAME 
			 | 
		
	
		
			
			| 
				42
			 | 
			
				
			 | 
			
			
				-                   STATIC_BLOG_DOMAIN) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				45
			 | 
			
			
				+                   ONION_ONLY 
			 | 
		
	
		
			
			| 
				
			 | 
			
				46
			 | 
			
			
				+                   PELICAN_BLOG_DOMAIN 
			 | 
		
	
		
			
			| 
				
			 | 
			
				47
			 | 
			
			
				+                   PELICAN_BLOG_CODE) 
			 | 
		
	
		
			
			| 
				43
			 | 
			
				48
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				44
			 | 
			
				49
			 | 
			
			
				 function configure_interactive_pelican { 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				50
			 | 
			
			
				     echo -n '' 
			 | 
		
	
		
			
			| 
				46
			 | 
			
				51
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				47
			 | 
			
				52
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				48
			 | 
			
				53
			 | 
			
			
				 function install_interactive_pelican { 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				
			 | 
			
			
				-    echo -n '' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				54
			 | 
			
			
				+    if [ ! $ONION_ONLY ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				55
			 | 
			
			
				+        ONION_ONLY='no' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				56
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				57
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				58
			 | 
			
			
				+    if [[ $ONION_ONLY != "no" ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+        PELICAN_BLOG_DOMAIN='pelican.local' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				60
			 | 
			
			
				+    else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				61
			 | 
			
			
				+        PELICAN_DETAILS_COMPLETE= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				62
			 | 
			
			
				+        while [ ! $PELICAN_DETAILS_COMPLETE ] 
			 | 
		
	
		
			
			| 
				
			 | 
			
				63
			 | 
			
			
				+        do 
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+            data=$(tempfile 2>/dev/null) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				65
			 | 
			
			
				+            trap "rm -f $data" 0 1 2 5 15 
			 | 
		
	
		
			
			| 
				
			 | 
			
				66
			 | 
			
			
				+            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				67
			 | 
			
			
				+                dialog --backtitle $"Freedombone Configuration" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				68
			 | 
			
			
				+                       --title $"Pelican Blog Configuration" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				69
			 | 
			
			
				+                       --form $"\nPlease enter your blog details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 65 2 \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				70
			 | 
			
			
				+                       $"Domain:" 1 1 "$(grep 'PELICAN_BLOG_DOMAIN' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				71
			 | 
			
			
				+                       $"Code:" 2 1 "$(grep 'PELICAN_BLOG_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 25 33 255 \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				72
			 | 
			
			
				+                       2> $data 
			 | 
		
	
		
			
			| 
				
			 | 
			
				73
			 | 
			
			
				+            else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				74
			 | 
			
			
				+                dialog --backtitle $"Freedombone Configuration" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				75
			 | 
			
			
				+                       --title $"Pelican Blog Configuration" \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				76
			 | 
			
			
				+                       --form $"\nPlease enter your GNU Social details. The background image URL can be left blank.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 65 2 \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				77
			 | 
			
			
				+                       $"Domain:" 1 1 "$(grep 'PELICAN_BLOG_DOMAIN' temp.cfg | awk -F '=' '{print $2}')" 1 25 33 40 \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				78
			 | 
			
			
				+                       2> $data 
			 | 
		
	
		
			
			| 
				
			 | 
			
				79
			 | 
			
			
				+            fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				80
			 | 
			
			
				+            sel=$? 
			 | 
		
	
		
			
			| 
				
			 | 
			
				81
			 | 
			
			
				+            case $sel in 
			 | 
		
	
		
			
			| 
				
			 | 
			
				82
			 | 
			
			
				+                1) exit 1;; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				83
			 | 
			
			
				+                255) exit 1;; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				84
			 | 
			
			
				+            esac 
			 | 
		
	
		
			
			| 
				
			 | 
			
				85
			 | 
			
			
				+            PELICAN_BLOG_DOMAIN=$(cat $data | sed -n 1p) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				86
			 | 
			
			
				+            if [ $PELICAN_BLOG_DOMAIN ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				87
			 | 
			
			
				+                if [[ $PELICAN_BLOG_DOMAIN == "$HUBZILLA_DOMAIN_NAME" ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				88
			 | 
			
			
				+                    PELICAN_BLOG_DOMAIN="" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				89
			 | 
			
			
				+                fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				90
			 | 
			
			
				+                TEST_DOMAIN_NAME=$PELICAN_BLOG_DOMAIN 
			 | 
		
	
		
			
			| 
				
			 | 
			
				91
			 | 
			
			
				+                validate_domain_name 
			 | 
		
	
		
			
			| 
				
			 | 
			
				92
			 | 
			
			
				+                if [[ $TEST_DOMAIN_NAME != $PELICAN_BLOG_DOMAIN ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				93
			 | 
			
			
				+                    PELICAN_BLOG_DOMAIN= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				94
			 | 
			
			
				+                    dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50 
			 | 
		
	
		
			
			| 
				
			 | 
			
				95
			 | 
			
			
				+                else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				96
			 | 
			
			
				+                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				97
			 | 
			
			
				+                        PELICAN_BLOG_CODE=$(cat $data | sed -n 2p) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				98
			 | 
			
			
				+                        validate_freedns_code "$PELICAN_BLOG_CODE" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				99
			 | 
			
			
				+                        if [ ! $VALID_CODE ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				100
			 | 
			
			
				+                            PELICAN_BLOG_DOMAIN= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				101
			 | 
			
			
				+                        fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				102
			 | 
			
			
				+                    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				103
			 | 
			
			
				+                fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				104
			 | 
			
			
				+            fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				105
			 | 
			
			
				+            if [ $PELICAN_BLOG_DOMAIN ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				106
			 | 
			
			
				+                PELICAN_DETAILS_COMPLETE="yes" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				107
			 | 
			
			
				+            fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				108
			 | 
			
			
				+        done 
			 | 
		
	
		
			
			| 
				
			 | 
			
				109
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				110
			 | 
			
			
				+        # save the results in the config file 
			 | 
		
	
		
			
			| 
				
			 | 
			
				111
			 | 
			
			
				+        write_config_param "PELICAN_BLOG_CODE" "$PELICAN_BLOG_CODE" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				112
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				113
			 | 
			
			
				+    write_config_param "PELICAN_BLOG_DOMAIN" "$PELICAN_BLOG_DOMAIN" 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				114
			 | 
			
			
				     APP_INSTALLED=1 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				115
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				52
			 | 
			
				116
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -75,11 +139,11 @@ function restore_remote_pelican { 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				139
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				76
			 | 
			
				140
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				77
			 | 
			
				141
			 | 
			
			
				 function remove_pelican { 
			 | 
		
	
		
			
			| 
				78
			 | 
			
				
			 | 
			
			
				-    if [ -d /var/www/$STATIC_BLOG_DOMAIN/htdocs ]; then 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				
			 | 
			
			
				-        rm -rf /var/www/$STATIC_BLOG_DOMAIN/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				142
			 | 
			
			
				+    if [ -d /var/www/$PELICAN_BLOG_DOMAIN/htdocs ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				143
			 | 
			
			
				+        rm -rf /var/www/$PELICAN_BLOG_DOMAIN/htdocs 
			 | 
		
	
		
			
			| 
				80
			 | 
			
				144
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				81
			 | 
			
				145
			 | 
			
			
				     pip uninstall pelican 
			 | 
		
	
		
			
			| 
				82
			 | 
			
				
			 | 
			
			
				-    remove_certs $STATIC_BLOG_DOMAIN 
			 | 
		
	
		
			
			| 
				
			 | 
			
				146
			 | 
			
			
				+    remove_certs $PELICAN_BLOG_DOMAIN 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				147
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				84
			 | 
			
				148
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				85
			 | 
			
				149
			 | 
			
			
				 function create_pelican_conf { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -319,7 +383,7 @@ function install_pelican { 
			 | 
		
	
		
			
			| 
				319
			 | 
			
				383
			 | 
			
			
				     pip install pelican 
			 | 
		
	
		
			
			| 
				320
			 | 
			
				384
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				321
			 | 
			
				385
			 | 
			
			
				     STATIC_BLOG_INSTALL_DIR=/etc/blog 
			 | 
		
	
		
			
			| 
				322
			 | 
			
				
			 | 
			
			
				-    STATIC_BLOG_PATH=/var/www/$STATIC_BLOG_DOMAIN/htdocs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				386
			 | 
			
			
				+    STATIC_BLOG_PATH=/var/www/$PELICAN_BLOG_DOMAIN/htdocs 
			 | 
		
	
		
			
			| 
				323
			 | 
			
				387
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				324
			 | 
			
				388
			 | 
			
			
				     if [ ! -d $STATIC_BLOG_INSTALL_DIR ]; then 
			 | 
		
	
		
			
			| 
				325
			 | 
			
				389
			 | 
			
			
				         mkdir -p $STATIC_BLOG_INSTALL_DIR 
			 |