manuskript/package/create_rpm.sh
TheJackiMonster 6fb040d12c
Slightly improve creation scripts for packages
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
2022-09-16 15:42:33 +02:00

96 lines
2.9 KiB
Bash
Executable file

#!/bin/bash
#
# Name: create_rpm.sh
#
# Description: Create Fedora style RPM package for Manuskript
#
# Usage: create_rpm.sh [AppVersion PkgNumber]
#
# Parameters: Appversion - defaults to manuskript/version.py value.
# PkgNumber - default to 1.
# Function to echo command and then run command
# Usage: echo_do eval "command-to-run"
function echo_do() {
echo "\$ $@" | sed 's/eval //'
"$@"
}
# Program vars
ScriptPath="$( cd "$(dirname "$0")" ; pwd -P )"
Root="$ScriptPath/../"
# Manuskript Vars
AppName=manuskript
Version=$(grep -E "__version__.*\".*\"" "$Root/manuskript/version.py" \
| cut -d\" -f2) # Look for version in manuskript/version
AppVersion=${1:-$Version}
PkgNumber=${2:-1}
PkgVersion=$AppVersion-$PkgNumber
Dest="$Root/rpmbuild"
echo "### Using package directory: $Dest"
echo "### Creating folder structure"
echo_do eval "mkdir -p $Dest/{BUILD,RPMS,SOURCES,SPECS,tmp}"
echo_do eval "mkdir -p $Dest/RPMS/noarch"
echo "### Defining rpm macros"
cat <<EOF >~/.rpmmacros
%_topdir %(echo $Dest)
%_tmppath %{_topdir}/tmp
EOF
# Getting manuskript files, by downloading
# pushd $Dest/
# wget https://github.com/olivierkes/manuskript/archive/$AppVersion.tar.gz
# tar -xvf $AppVersion.tar.gz
# rm $AppVersion.tar.gz
# popd
# Using the current direction as source
echo "### Creating tarball folder structure"
echo_do eval "mkdir -p $Dest/$AppName-$AppVersion/{usr/share/applications,usr/bin/}"
echo "### Copying manuskript content"
echo_do eval "rsync -a --exclude=.git \
--include='*.msk' \
--exclude=.github \
--exclude-from='$Root/.gitignore' \
--exclude=rpmbuild \
--exclude=dist \
--exclude=snap \
--exclude=package \
--exclude={.codeclimate.yml,.gitignore,.travis.yml} \
$ScriptPath/../ $Dest/$AppName-$AppVersion/usr/share/manuskript"
# Note: Files manuskript and manuskript.desktop are same as in Debian
echo_do eval "cp $ScriptPath/create_deb/manuskript $Dest/$AppName-$AppVersion/usr/bin/manuskript"
echo_do eval "chmod 0755 $Dest/$AppName-$AppVersion/usr/bin/manuskript"
echo_do eval "cp $ScriptPath/create_deb/manuskript.desktop \
$Dest/$AppName-$AppVersion/usr/share/applications/manuskript.desktop"
echo "### Creating SPECS/manuskript.spec file"
echo_do eval "cp $ScriptPath/create_rpm/manuskript.spec \
$Dest/SPECS/manuskript.spec"
echo_do eval "sed -i \"s/{AppVersion}/$AppVersion/\" \
$Dest/SPECS/manuskript.spec"
echo_do eval "sed -i \"s/{PkgNumber}/$PkgNumber/\" \
$Dest/SPECS/manuskript.spec"
echo "### Creating tarball"
echo_do eval "tar -C $Dest -cf $Dest/SOURCES/$AppName-$AppVersion.tar.gz \
$AppName-$AppVersion"
echo "### Removing temporary tarball directory"
echo_do eval "rm -rf $Dest/$AppName-$AppVersion"
echo "### Building the RPM package…"
echo_do eval "pushd $Dest"
echo_do eval "rpmbuild --target=noarch -bb SPECS/manuskript.spec"
echo_do eval "popd"
echo "### Done"
echo "### RPM File: $Dest/RPMS/noarch/$AppName-$PkgVersion.noarch.rpm"