Compare commits
	
		
			10 Commits
		
	
	
		
			2023-02
			...
			d789c8e1b0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						d789c8e1b0
	
				 | 
					
					
						|||
| 
						
						
							
						
						e7e752f1e8
	
				 | 
					
					
						|||
| 
						
						
							
						
						094287837c
	
				 | 
					
					
						|||
| 
						
						
							
						
						a53f201842
	
				 | 
					
					
						|||
| 
						
						
							
						
						2ce1280cc0
	
				 | 
					
					
						|||
| 
						
						
							
						
						d45ca0de96
	
				 | 
					
					
						|||
| 
						
						
							
						
						13aeb647ad
	
				 | 
					
					
						|||
| 
						
						
							
						
						ee6a4e601d
	
				 | 
					
					
						|||
| 
						
						
							
						
						b544687f0f
	
				 | 
					
					
						|||
| 
						
						
							
						
						0ed7efe93b
	
				 | 
					
					
						
							
								
								
									
										13
									
								
								site.cfg
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								site.cfg
									
									
									
									
									
								
							@@ -2,10 +2,15 @@
 | 
				
			|||||||
# with the database.
 | 
					# with the database.
 | 
				
			||||||
# dbi:<driver name [SQLite, CSV, ADO, mSQL, etc.]>:<database name>
 | 
					# dbi:<driver name [SQLite, CSV, ADO, mSQL, etc.]>:<database name>
 | 
				
			||||||
[DBI]
 | 
					[DBI]
 | 
				
			||||||
database: mysql
 | 
					# Configuration for SQLite (uncomment following settings)
 | 
				
			||||||
driver: dbi:mysql:database=hpr_hpr:hostname=localhost 
 | 
					#driver: dbi:SQLite:hpr.db 
 | 
				
			||||||
user: hpr-generator
 | 
					#user: (unused -- leave blank)
 | 
				
			||||||
password: zBozqN-Z2zNAz
 | 
					#password: (unused -- leave blank)
 | 
				
			||||||
 | 
					# Configuration for MySQL (uncomment and update following settings)
 | 
				
			||||||
 | 
					#database: mysql
 | 
				
			||||||
 | 
					#driver: dbi:mysql:database=hpr_hpr:hostname=localhost 
 | 
				
			||||||
 | 
					#user: hpr-generator (suggested user with read only permissions)
 | 
				
			||||||
 | 
					#password: ********* (password created for user)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure the root template page which pulls in the navigation and 
 | 
					# Configure the root template page which pulls in the navigation and 
 | 
				
			||||||
# content templates used by each page. An optional baseurl property may 
 | 
					# content templates used by each page. An optional baseurl property may 
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										184
									
								
								utils/lib_utils.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										184
									
								
								utils/lib_utils.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,184 @@
 | 
				
			|||||||
 | 
					#!/bin/bash - 
 | 
				
			||||||
 | 
					#===============================================================================
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#          FILE: lib_utils.sh
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					#         USAGE: ./lib_utils.sh 
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					#   DESCRIPTION: functions for scripts used to update local HPR installations 
 | 
				
			||||||
 | 
					#				 using the HPR static site generator
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					#       OPTIONS: ---
 | 
				
			||||||
 | 
					#  REQUIREMENTS: mysql2sqlite (https://github.com/dumblob/mysql2sqlite)
 | 
				
			||||||
 | 
					#          BUGS: ---
 | 
				
			||||||
 | 
					#         NOTES: ---
 | 
				
			||||||
 | 
					#        AUTHOR: Roan "Rho`n" Horning <roan.horning@gmail.com>
 | 
				
			||||||
 | 
					#       CREATED: 02/26/2023 03:27:08 PM -5 UTC
 | 
				
			||||||
 | 
					#      REVISION: ---
 | 
				
			||||||
 | 
					#       LICENSE: GNU AGPLv3 
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					#    it under the terms of the GNU Affero General Public License as published by
 | 
				
			||||||
 | 
					#    the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					#    (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					#    GNU Affero General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    You should have received a copy of the GNU Affero General Public License
 | 
				
			||||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>.	
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#===============================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -o nounset                              # Treat unset variables as an error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#---  FUNCTION  ----------------------------------------------------------------
 | 
				
			||||||
 | 
					#          NAME:  make_working_dir
 | 
				
			||||||
 | 
					#   DESCRIPTION:  Creates a local temporary working directory
 | 
				
			||||||
 | 
					#				  SEE: https://stackoverflow.com/questions/4632028/how-to-create-a-temporary-directory#answer-34676160
 | 
				
			||||||
 | 
					#    PARAMETERS:  
 | 
				
			||||||
 | 
					#       RETURNS: The path to the working directory 
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					function make_working_dir { 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# the directory of the script
 | 
				
			||||||
 | 
						local DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# the temp directory used, within $DIR
 | 
				
			||||||
 | 
						# omit the -p parameter to create a temporal directory in 
 | 
				
			||||||
 | 
						# the default location
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						local WORK_DIR=`mktemp -d -p "$DIR"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# check if tmp dir was created
 | 
				
			||||||
 | 
						if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
 | 
				
			||||||
 | 
							echo "Could not create temp dir"
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						echo $WORK_DIR
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#---  FUNCTION  ----------------------------------------------------------------
 | 
				
			||||||
 | 
					#          NAME:  clean_working_dir
 | 
				
			||||||
 | 
					#   DESCRIPTION:  Remove local temporary working directory 
 | 
				
			||||||
 | 
					#    PARAMETERS: WORK_DIR -- Temporay directory to be delted
 | 
				
			||||||
 | 
					#       RETURNS:  
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					function clean_working_dir {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [[ -d $1  ]] && expr $1 : '.*/tmp.*' ; then
 | 
				
			||||||
 | 
							rm -rf $1
 | 
				
			||||||
 | 
							echo "Deleted temp working directory $1" 
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							echo "Did not delete directory: $1"
 | 
				
			||||||
 | 
							echo "Not a temporary directory."
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#---  FUNCTION  ----------------------------------------------------------------
 | 
				
			||||||
 | 
					#          NAME:  download_hpr_sql
 | 
				
			||||||
 | 
					#   DESCRIPTION:  Download the HPR SQL dump file into a working directory 
 | 
				
			||||||
 | 
					#    PARAMETERS:  
 | 
				
			||||||
 | 
					#       RETURNS:  
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					function download_hpr_sql { 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [[ ! -d $1  ]] || ! expr $1 : '.*/tmp.*' ; 
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							echo "Please provide the temporary directory when calling this function"
 | 
				
			||||||
 | 
							return 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local CURL=`which curl`
 | 
				
			||||||
 | 
						local WGET=`which wget`
 | 
				
			||||||
 | 
						local HPR_URL=https://www.hackerpublicradio.org/hpr.sql
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ -f $1/hpr.sql ];
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							echo "Removing temporary hpr.sql"
 | 
				
			||||||
 | 
							rm $1/hpr.sql
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							echo "No temporary hpr.sql to remove"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ "$CURL" != "" ]; 
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							curl $HPR_URL --output $1/hpr.sql
 | 
				
			||||||
 | 
							echo "Downloaded hpr.sql via curl"
 | 
				
			||||||
 | 
						elif [ "$WGET" != "" ];
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							wget --directory-prefix=$1 $HPR_URL
 | 
				
			||||||
 | 
							echo "Downloaded hpr.sql via wget"
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							echo "Could not download file. Please install either curl or wget."
 | 
				
			||||||
 | 
							return 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#---  FUNCTION  ----------------------------------------------------------------
 | 
				
			||||||
 | 
					#          NAME:  make_hpr_sqlite_db
 | 
				
			||||||
 | 
					#   DESCRIPTION:  Converts the hpr sql file into an sqlite db file
 | 
				
			||||||
 | 
					#    PARAMETERS:  
 | 
				
			||||||
 | 
					#       RETURNS:  
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					function make_hpr_sqlite_db { 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [[ ! -d $1  ]] || ! expr $1 : '.*/tmp.*' ; 
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							echo "Please provide the temporary directory when calling this function"
 | 
				
			||||||
 | 
							return 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local MYSQL2SQLITE=`which mysql2sqlite`
 | 
				
			||||||
 | 
						local BIN_PATH=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ "$MYSQL2SQLITE" = "" ];
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							if [ $# -gt 1 ] && [ -z "$2" ];
 | 
				
			||||||
 | 
							then
 | 
				
			||||||
 | 
								BIN_PATH=$2
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								BIN_PATH=`find . -type f -name "mysql2sqlite" -print | head -1`
 | 
				
			||||||
 | 
								if [ "$BIN_PATH" != "" ]; 
 | 
				
			||||||
 | 
								then
 | 
				
			||||||
 | 
									BIN_PATH=${BIN_PATH/mysql2sqlite//}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									echo "Could not find mysql2sqlite script."
 | 
				
			||||||
 | 
									return 1
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						echo $BIN_PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ -f $1/hpr.db ];
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							rm $1/hpr.db
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Remove lines from hpr.sql that mysql2sqlite can't handle
 | 
				
			||||||
 | 
						sed '/^DELIMITER ;;/,/^DELIMITER ;/d' < $1/hpr.sql > $1/hpr-sqlite.sql
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						${BIN_PATH}mysql2sqlite $1/hpr-sqlite.sql | sqlite3 $1/hpr.db
 | 
				
			||||||
 | 
						echo "Created hpr.db"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#---  FUNCTION  ----------------------------------------------------------------
 | 
				
			||||||
 | 
					#          NAME:  copy_to_public_dir
 | 
				
			||||||
 | 
					#   DESCRIPTION: Move HPR sql and db files to public website folder 
 | 
				
			||||||
 | 
					#    PARAMETERS:  
 | 
				
			||||||
 | 
					#       RETURNS:  
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					function copy_to_public_dir { 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ $# -gt 1 ] && [ ! -z "$1" ] && [ ! -z "$2" ];
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							cp $1/hpr.sql $2/hpr.sql
 | 
				
			||||||
 | 
							cp $1/hpr.db $2/hpr.db
 | 
				
			||||||
 | 
							return 0
 | 
				
			||||||
 | 
						else 
 | 
				
			||||||
 | 
							echo "Bad arguments. Can't copy files to public directory."
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user