85 lines
2.2 KiB
Bash
Executable File
85 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
PROJECT_ROOT=${PWD}
|
|
FPM_DIR=${PWD}/playerctl-fpm
|
|
DEB_DIR=${FPM_DIR}/deb
|
|
RPM_DIR=${FPM_DIR}/rpm
|
|
MESON_DIR=${FPM_DIR}/build
|
|
|
|
# sanity check
|
|
if [[ ! -f playerctl/playerctl.h ]]; then
|
|
echo 'You must run this from the playerctl project directory'
|
|
exit 1
|
|
fi
|
|
|
|
packages=(fpm rpm dpkg)
|
|
for pkg in ${packages[@]}; do
|
|
if ! hash ${pkg}; then
|
|
echo "you need ${pkg} to package playerctl"
|
|
exit 127
|
|
fi
|
|
done
|
|
|
|
rm -rf ${FPM_DIR}
|
|
mkdir -p ${FPM_DIR}
|
|
|
|
fpm_deb() {
|
|
cd ${PROJECT_ROOT}
|
|
meson ${DEB_DIR}/build --prefix=/usr --libdir=/usr/lib
|
|
DESTDIR=${DEB_DIR}/install ninja -C ${DEB_DIR}/build install
|
|
VERSION=`LD_LIBRARY_PATH=${DEB_DIR}/install/usr/lib ${DEB_DIR}/install/usr/bin/playerctl -v | sed s/^v// | sed s/-.*//`
|
|
|
|
cd ${DEB_DIR}/install
|
|
|
|
fpm -s dir -t deb -n playerctl -v ${VERSION} \
|
|
-p playerctl-VERSION_ARCH.deb \
|
|
-d "libglib2.0-0" \
|
|
usr/include usr/lib usr/bin usr/share
|
|
|
|
echo -e "\nDEBIAN PACKAGE CONTENTS"
|
|
echo -e "-----------------------"
|
|
dpkg -c ${DEB_DIR}/install/playerctl-${VERSION}_amd64.deb
|
|
|
|
mv ${DEB_DIR}/install/playerctl-${VERSION}_amd64.deb ${FPM_DIR}
|
|
|
|
cd - &> /dev/null
|
|
}
|
|
|
|
fpm_rpm() {
|
|
cd ${PROJECT_ROOT}
|
|
meson ${RPM_DIR}/build --prefix=/usr --libdir=/usr/lib64
|
|
DESTDIR=${RPM_DIR}/install ninja -C ${RPM_DIR}/build install
|
|
VERSION=`LD_LIBRARY_PATH=${RPM_DIR}/install/usr/lib64 ${RPM_DIR}/install/usr/bin/playerctl -v | sed s/^v// | sed s/-.*//`
|
|
|
|
cd ${RPM_DIR}/install
|
|
|
|
fpm -s dir -t rpm -n playerctl -v ${VERSION} \
|
|
-p playerctl-VERSION_ARCH.rpm \
|
|
-d "glib2" \
|
|
usr/include usr/lib64 usr/bin usr/share
|
|
|
|
echo -e "\nRPM PACKAGE CONTENTS"
|
|
echo -e "--------------------"
|
|
rpm -qlp ${RPM_DIR}/install/playerctl-${VERSION}_x86_64.rpm
|
|
|
|
mv ${RPM_DIR}/install/playerctl-${VERSION}_x86_64.rpm ${FPM_DIR}
|
|
|
|
cd - &> /dev/null
|
|
}
|
|
|
|
do_dist() {
|
|
local DIST_DIR=${FPM_DIR}/dist
|
|
meson ${DIST_DIR}
|
|
ninja -C ${DIST_DIR}
|
|
local version=$(${DIST_DIR}/playerctl/playerctl --version | sed s/^v//)
|
|
local archive_path="${FPM_DIR}/playerctl-${version}.tar.gz"
|
|
git archive --prefix="playerctl-${version}/" -o ${archive_path} "v${version}"
|
|
gpg --sign --armor --detach-sign ${archive_path}
|
|
}
|
|
|
|
fpm_deb
|
|
fpm_rpm
|
|
do_dist
|