103 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Joomla installation at:
 | 
						|
JOOMLADIR="/srv/http/joomla5"
 | 
						|
UPDATESERVER="kuschel.at"
 | 
						|
# the following host must be given in .ssh/config configuration:
 | 
						|
UPDATESERVERSSH="kuschel"
 | 
						|
UPDATEDIR="/var/www/kuschel.at/update"
 | 
						|
UPDATEFILE="extensions.xml"
 | 
						|
 | 
						|
# this is a script file to generate a zip package from this source:
 | 
						|
cd "$(dirname "$0")"
 | 
						|
cd ..
 | 
						|
# now we are at the depot directory
 | 
						|
# if there is a file named depot.xml, we ask to increase the version with
 | 
						|
 | 
						|
read -p "Do you want to update/increase the patch (last) version number? (y/N)" -n 1 -r
 | 
						|
echo  # (optional) move to a new line
 | 
						|
if [[ $REPLY =~ ^[YyJj]$ ]]
 | 
						|
then
 | 
						|
	echo "Updating the version"
 | 
						|
#	patch=`xmllint -xpath 'string(//*[local-name()="version"])' depot.xml | rev | cut -f1 -d. | rev`
 | 
						|
#	echo "$patch"
 | 
						|
#	patch=$((patch+1))
 | 
						|
#	echo "$patch"
 | 
						|
	version=`xmllint -xpath 'string(//*[local-name()="version"])' depot.xml`
 | 
						|
	major=`echo "$version" | cut -f1 -d.`
 | 
						|
	minor=`echo "$version" | cut -f2 -d.`
 | 
						|
	patch=`echo "$version" | cut -f3 -d.`
 | 
						|
	echo "$version"
 | 
						|
	patch=$((patch+1))
 | 
						|
	minor=$((minor))
 | 
						|
	newversion="$major.$minor.$patch"
 | 
						|
	echo "$newversion"
 | 
						|
	printf -v date '%(%Y-%m-%d)T\n' -1
 | 
						|
	xmllint --shell depot.xml << EOF
 | 
						|
cd extension/version
 | 
						|
set $newversion
 | 
						|
cd /extension/creationDate
 | 
						|
set $date
 | 
						|
save
 | 
						|
EOF
 | 
						|
 | 
						|
else
 | 
						|
	echo "Keep the version"
 | 
						|
fi
 | 
						|
mkdir -p zip
 | 
						|
# Generate ZIP file without directories zip, script
 | 
						|
zip -q -r zip/depot.zip * -x .git/\* -x script/\* -x zip/\*
 | 
						|
# Make a copy of the ZIP file with version added:
 | 
						|
 | 
						|
## get the version from depot.xml, again:
 | 
						|
version=`xmllint -xpath 'string(//*[local-name()="version"])' depot.xml`
 | 
						|
major=`echo "$version" | cut -f1 -d.`
 | 
						|
minor=`echo "$version" | cut -f2 -d.`
 | 
						|
patch=`echo "$version" | cut -f3 -d.`
 | 
						|
echo "Now the version is: ${version}"
 | 
						|
cp -f zip/depot.zip "zip/depot_${version}.zip"
 | 
						|
echo "Create sha512 checksum"
 | 
						|
sha512sum zip/depot.zip | tee zip/depot.zip.sha512
 | 
						|
 | 
						|
read -p "Do you want to upload the zip file to the update server \"https://kuschel.at/update\"? (y/N)" -n 1 -r
 | 
						|
echo # (optional) move to a new line
 | 
						|
if [[ $REPLY =~ ^[YyJj]$ ]]
 | 
						|
then
 | 
						|
	echo "Uploading to the update server"
 | 
						|
	scp "zip/depot_${version}.zip" ${UPDATESERVERSSH}:${UPDATEDIR}/
 | 
						|
	echo "Create sha512 checksum"
 | 
						|
	sha512sum "zip/depot_${version}.zip" | tee "zip/depot_${version}.zip.sha512"
 | 
						|
	scp "zip/depot_${version}.zip.sha512" ${UPDATESERVERSSH}:${UPDATEDIR}/ 	
 | 
						|
	echo "Now you have to edit the extensions.xml on the update server manually."
 | 
						|
else
 | 
						|
	echo "nothing to do"
 | 
						|
fi
 | 
						|
 | 
						|
# Install this extension to the active Joomla installation per CLI
 | 
						|
 | 
						|
read -p "Do you want to install this to the Joomla installation at \"$JOOMLADIR\"? (Y/n)" -n 1 -r
 | 
						|
echo  # (optional) move to a new line
 | 
						|
if [[ $REPLY =~ ^[Nn]$ ]]
 | 
						|
then
 | 
						|
	echo "Extension was not installed"
 | 
						|
else
 | 
						|
	# Find the CLI php procedure, file joomla.php in cli must exists.
 | 
						|
	FILE="${JOOMLADIR}/cli/joomla.php"
 | 
						|
	if [ -f "$FILE" ]
 | 
						|
	then
 | 
						|
		echo "$FILE exists."
 | 
						|
		php $FILE --version
 | 
						|
		php $FILE --help
 | 
						|
		php $FILE list
 | 
						|
		# sudo -g http php $FILE core:update:check
 | 
						|
		php $FILE core:update:check
 | 
						|
		pwd
 | 
						|
		# sudo -u http php $FILE extension:install --path zip/depot.zip -v
 | 
						|
		php $FILE extension:install --path zip/depot.zip -v
 | 
						|
		php $FILE extension:list --type component
 | 
						|
	else
 | 
						|
		echo "$FILE does not exists."
 | 
						|
		exit 9
 | 
						|
	fi
 | 
						|
fi
 |