QOwnNotes/build-systems/sourceforge/build-sourceforge-src.sh
Patrizio Bekerle 7aa2fb5297
lint: format with treefmt
Signed-off-by: Patrizio Bekerle <patrizio@bekerle.com>
2025-03-19 22:26:12 +01:00

105 lines
2.8 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# This is the deploy script of the source archives for SourceForge
#
# We need to setup a ssh key to copy files to SourceForge
# https://sourceforge.net/auth/shell_services
#
# Files will be uploaded to:
# https://sourceforge.net/projects/qownnotes/files/src/
#
# Files will be accessible like that:
# http://downloads.sourceforge.net/project/qownnotes/src/qownnotes-16.05.2.tar.xz
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=1.1.3.2
BRANCH=main
#BRANCH=master
PROJECT_PATH="/tmp/QOwnNotes-sourceforge-$$"
echo "Started the SourceForge packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
cd $PROJECT_PATH || exit 1
echo "Project path: $PROJECT_PATH"
# checkout the source code
git clone --depth=1 git@github.com:pbek/QOwnNotes.git QOwnNotes -b $BRANCH
cd QOwnNotes || exit 1
# checkout submodules
git submodule update --init
# build binary translation files
lrelease src/QOwnNotes.pro
# remove huge .git folder
rm -Rf .git
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set the release string
echo '#define RELEASE "SourceForge"' >src/release.h
echo "Using version $QOWNNOTES_VERSION..."
qownnotesSrcDir="qownnotes-${QOWNNOTES_VERSION}"
# copy some needed files file
cp LICENSE src
cp README.md src
cp CHANGELOG.md src
cp webpage/src/getting-started/shortcuts.md src
# rename the src directory
mv src $qownnotesSrcDir
archiveFile="$qownnotesSrcDir.tar.xz"
# archive the source code
echo "Creating archive $archiveFile..."
tar -cJf $archiveFile $qownnotesSrcDir
md5sum $archiveFile >$archiveFile.md5
sha256sum $archiveFile | awk '{ print $1 }' >$archiveFile.sha256
sha512sum $archiveFile | awk '{ print $1 }' >$archiveFile.sha512
remotePath="patbek@frs.sourceforge.net:/home/frs/project/qownnotes/src"
sourceForgeReadme="sourceforge-readme.md"
# generate the readme for sourceforge with a screenshot from GitHub
cat README.md | sed 's/screenshots\/screenshot.png/https:\/\/raw.githubusercontent.com\/pbek\/QOwnNotes\/main\/screenshots\/screenshot.png/g' >>${sourceForgeReadme}
echo >>${sourceForgeReadme}
echo >>${sourceForgeReadme}
cat CHANGELOG.md >>${sourceForgeReadme}
echo "Uploading files to SourceForge..."
# upload the changelog file as README.md
# it will be viewed on the sourceforge webpage
rsync -ahv --progress ${sourceForgeReadme} ${remotePath}/README.md
## upload the screenshots
#rsync -ahv --progress screenshots/* ${remotePath}/screenshots
# upload archive and checksum files
rsync -ahv --progress ${archiveFile}* ${remotePath}
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
fi