doublecmd/install/linux/update-repo-ppa.sh
2019-01-01 13:27:28 +00:00

155 lines
3.5 KiB
Bash
Executable file

#!/bin/bash
# This script updates Double Commander Personal Package Archive (PPA) repository
# Set Double Commander version
DC_VER=1.0.0
# Set Ubuntu series
DISTRO=( xenial zesty artful )
# Temp directory
DC_TEMP_DIR=/var/tmp/doublecmd-$(date +%y.%m.%d)
# Directory for DC source code
DC_SOURCE_DIR=$DC_TEMP_DIR/doublecmd-$DC_VER
# Directory for DC help
DC_HELP_DIR=$DC_TEMP_DIR/doublecmd-help-$DC_VER
# Recreate temp directory
rm -rf $DC_TEMP_DIR
mkdir -p $DC_TEMP_DIR
update_doublecmd()
{
# Export from SVN
svn export ../../ $DC_SOURCE_DIR
# Save revision number
DC_REVISION=`$(pwd)/update-revision.sh ../../ $DC_SOURCE_DIR`
# Create doublecmd-x.x.x.orig.tar.gz
pushd $DC_SOURCE_DIR/..
tar -cvzf $DC_TEMP_DIR/doublecmd_$DC_VER.orig.tar.gz doublecmd-$DC_VER
popd
# Prepare debian directory
mkdir -p $DC_SOURCE_DIR/debian
cp -r $DC_SOURCE_DIR/install/linux/deb/doublecmd/* $DC_SOURCE_DIR/debian
# Create source package for each distro
for DIST in "${DISTRO[@]}"
do
# Update changelog file
pushd $DC_SOURCE_DIR/debian
dch -D $DIST -v $DC_VER-0+svn$DC_REVISION~$DIST "Non-maintainer upload (revision $DC_REVISION)"
popd
# Create archive with source code
pushd $DC_SOURCE_DIR
if [ $DIST = ${DISTRO[0]} ]
then
debuild -S -sa
else
debuild -S -sd
fi
popd
done
}
update_doublecmd_svn()
{
# Export from SVN
svn export ../../ $DC_SOURCE_DIR
# Save revision number
DC_REVISION=`$(pwd)/update-revision.sh ../../ $DC_SOURCE_DIR`
# Prepare debian directory
mkdir -p $DC_SOURCE_DIR/debian
cp -r $DC_SOURCE_DIR/install/linux/deb/doublecmd/* $DC_SOURCE_DIR/debian
echo '1.0' > $DC_SOURCE_DIR/debian/source/format
# Create source package for each distro
for DIST in "${DISTRO[@]}"
do
# Update changelog file
pushd $DC_SOURCE_DIR/debian
dch -D $DIST -v $DC_VER-0+svn$DC_REVISION~$DIST "Non-maintainer upload (revision $DC_REVISION)"
popd
# Create archive with source code
pushd $DC_SOURCE_DIR
debuild -S -sa
popd
done
# Upload archives to PPA
cd $DC_TEMP_DIR
dput -U ppa:alexx2000/doublecmd-svn $(ls -xrt --file-type *.changes)
# Clean
rm -rf $DC_TEMP_DIR
# Exit
exit 0
}
update_doublecmd_help()
{
# Create output folder
mkdir -p $DC_HELP_DIR
# Save revision number
DC_REVISION=`$(pwd)/update-revision.sh ../../ $DC_SOURCE_DIR`
# Copy help files
cp -r ../../doc/en $DC_HELP_DIR/
cp -r ../../doc/ru $DC_HELP_DIR/
cp -r ../../doc/uk $DC_HELP_DIR/
# Create doublecmd-help-x.x.x.orig.tar.gz
pushd $DC_HELP_DIR/..
tar -cvzf $DC_TEMP_DIR/doublecmd-help_$DC_VER.orig.tar.gz doublecmd-help-$DC_VER
popd
# Prepare debian directory
svn export deb/doublecmd-help $DC_HELP_DIR/debian
# Create source package for each distro
for DIST in "${DISTRO[@]}"
do
# Update changelog file
pushd $DC_HELP_DIR/debian
dch -m -D $DIST -v $DC_VER-$DC_REVISION~$DIST "Update to revision $DC_REVISION"
popd
# Create archive with source code
pushd $DC_HELP_DIR
if [ $DIST = ${DISTRO[0]} ]
then
debuild -S -sa
else
debuild -S -sd
fi
popd
done
}
update_all()
{
update_doublecmd
update_doublecmd_help
}
case $1 in
doublecmd-help) update_doublecmd_help;;
doublecmd-svn) update_doublecmd_svn;;
doublecmd) update_doublecmd;;
*) update_all;;
esac
# Upload archives to PPA
cd $DC_TEMP_DIR
dput -U ppa:alexx2000/doublecmd $(ls -xrt --file-type *.changes)
# Clean
rm -rf $DC_TEMP_DIR