#!/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