Files
SysTray-X/create_linux_installers.sh

508 lines
9.9 KiB
Bash
Raw Normal View History

2020-03-08 23:47:04 +01:00
#!/bin/bash
2020-03-10 19:43:28 +01:00
VERSION=`git describe --long | sed "s/-.*//"`
2020-03-08 23:47:04 +01:00
2020-04-19 22:17:05 +02:00
OBS_REPO_BASE="https://download.opensuse.org/repositories/home:/Ximi1970:/Mozilla:/Add-ons"
2020-03-08 23:47:04 +01:00
OBS_PACKAGE="systray-x"
2020-04-13 18:32:51 +02:00
OBS_RPM_ARCHS=""
OBS_RPM_PKS=""
OBS_RPM_ARCHS+="openSUSE_Leap_15.1/x86_64 "
OBS_RPM_PKS+="_ "
2020-03-30 21:15:58 +02:00
OBS_RPM_ARCHS+="openSUSE_Leap_15.2/x86_64 "
2020-03-31 15:23:12 +02:00
OBS_RPM_PKS+="_ "
2020-03-08 23:47:04 +01:00
OBS_RPM_ARCHS+="openSUSE_Tumbleweed/i586 "
2020-03-31 15:23:12 +02:00
OBS_RPM_PKS+="tmblwd "
2020-03-08 23:47:04 +01:00
OBS_RPM_ARCHS+="openSUSE_Tumbleweed/x86_64 "
2020-03-31 15:23:12 +02:00
OBS_RPM_PKS+="tmblwd "
2020-03-10 19:43:28 +01:00
OBS_RPM_ARCHS+="SLE_15/x86_64 "
2020-03-31 15:23:12 +02:00
OBS_RPM_PKS+="sle150 "
2020-03-08 23:47:04 +01:00
OBS_RPM_ARCHS+="SLE_15_SP1/x86_64 "
2020-03-31 15:23:12 +02:00
OBS_RPM_PKS+="sle151 "
2020-04-16 22:59:11 +02:00
OBS_RPM_ARCHS+="Fedora_31/x86_64 "
OBS_RPM_PKS+="fed31 "
2020-03-08 23:47:04 +01:00
2020-04-19 22:17:05 +02:00
2020-04-13 18:32:51 +02:00
OBS_DEB_ARCHS=""
OBS_DEB_PKS=""
2020-04-16 22:59:11 +02:00
OBS_DEB_ARCHS+="Debian_10/i386 "
OBS_DEB_PKS+="deb10 "
OBS_DEB_ARCHS+="Debian_10/amd64 "
OBS_DEB_PKS+="deb10 "
2020-04-13 18:32:51 +02:00
OBS_DEB_ARCHS+="xUbuntu_18.04/i386 "
OBS_DEB_PKS+="bionic1804 "
2020-03-08 23:47:04 +01:00
OBS_DEB_ARCHS+="xUbuntu_18.04/amd64 "
2020-03-31 15:23:12 +02:00
OBS_DEB_PKS+="bionic1804 "
2020-03-08 23:47:04 +01:00
OBS_DEB_ARCHS+="xUbuntu_19.04/amd64 "
2020-03-31 15:23:12 +02:00
OBS_DEB_PKS+="disco1904 "
2020-03-08 23:47:04 +01:00
OBS_DEB_ARCHS+="xUbuntu_19.10/amd64 "
2020-03-31 15:23:12 +02:00
OBS_DEB_PKS+="focal1910 "
2020-03-08 23:47:04 +01:00
2020-04-19 22:17:05 +02:00
create_rpm_gnome_extension_tar() {
2020-04-19 22:17:05 +02:00
local REPO_BASE=$1
local REPO_DISTR=$2
##########################################
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
# Create user installable
# gnome-shell-extension-appindicator
#
##########################################
if [ -f gnome-shell-extension.tar.xz ] ; then
return
fi
# Get index.html for
2020-03-08 23:47:04 +01:00
#
2020-04-13 18:32:51 +02:00
rm -f index.html
2020-04-19 22:17:05 +02:00
wget -q "${REPO_BASE}/${REPO_DISTR}/noarch/"
if [ "$?" != "0" ] ; then
return
fi
2020-03-08 23:47:04 +01:00
#
# Find rpm
#
2020-04-19 22:17:05 +02:00
local RPM_FILE_GNOME=$(grep ">gnome-.*<" index.html | sed -e "s/.*>\(gnome-.*rpm\)<.*/\1/")
2020-04-13 18:32:51 +02:00
rm -f index.html
2020-04-19 22:17:05 +02:00
if [ -z "${RPM_FILE_GNOME}" ] ; then
echo "No GNOME extension found"
return
fi
2020-04-13 18:32:51 +02:00
2020-04-19 22:17:05 +02:00
#
# Get package
#
wget -q "${REPO_BASE}/${REPO_DISTR}/noarch/${RPM_FILE_GNOME}"
2020-04-13 18:32:51 +02:00
2020-04-19 22:17:05 +02:00
#
# Extract
#
rpm2cpio ${RPM_FILE_GNOME} | cpio -idv 2>/dev/null
2020-04-13 18:32:51 +02:00
2020-04-19 22:17:05 +02:00
#
# Create tar
#
tar -C ./usr/share/gnome-shell/extensions -cJf gnome-shell-extension.tar.xz .
2020-04-13 18:32:51 +02:00
#
2020-04-19 22:17:05 +02:00
# Cleanup
2020-04-13 18:32:51 +02:00
#
2020-04-19 22:17:05 +02:00
rm -rf ./usr
rm -f ${RPM_FILE_GNOME}
}
2020-04-13 18:32:51 +02:00
2020-04-19 22:17:05 +02:00
create_deb_gnome_extension_tar() {
2020-04-19 22:17:05 +02:00
local REPO_BASE=$1
local REPO_DISTR=$2
local REPO_ARCH=$3
2020-04-13 18:32:51 +02:00
2020-04-19 22:17:05 +02:00
##########################################
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
# Create user installable
# gnome-shell-extension-appindicator
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
##########################################
if [ -f gnome-shell-extension.tar.xz ] ; then
return
fi
2020-03-31 15:23:12 +02:00
2020-04-19 22:17:05 +02:00
# Get index.html for
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
rm -f index.html
wget -q "${REPO_BASE}/${REPO_DISTR}/${REPO_ARCH}/"
if [ "$?" != "0" ] ; then
return
fi
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
# Find rpm
#
local DEB_FILE_GNOME=$(grep ">gnome-.*<" index.html | sed -e "s/.*>\(gnome-.*deb\)<.*/\1/")
rm -f index.html
2020-03-30 23:13:55 +02:00
2020-04-19 22:17:05 +02:00
if [ -z "${DEB_FILE_GNOME}" ] ; then
echo "No GNOME extension found"
return
2020-03-30 23:13:55 +02:00
fi
2020-04-19 22:17:05 +02:00
#
# Get package
#
wget -q "${REPO_BASE}/${REPO_DISTR}/${REPO_ARCH}/${DEB_FILE_GNOME}"
2020-03-31 15:23:12 +02:00
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
# Extract
#
ar x ${DEB_FILE_GNOME} 2>/dev/null
tar -xJf data.tar.xz
rm -f data.tar.xz
rm -f control.tar.xz
rm -f debian-binary
#
# Create tar
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
tar -C ./usr/share/gnome-shell/extensions -cJf gnome-shell-extension.tar.xz .
2020-03-31 15:23:12 +02:00
2020-03-08 23:47:04 +01:00
#
# Cleanup
#
2020-04-19 22:17:05 +02:00
rm -rf ./usr
rm -f ${DEB_FILE_GNOME}
}
2020-03-08 23:47:04 +01:00
2020-04-19 22:17:05 +02:00
create_rpm_tar() {
2020-03-31 15:23:12 +02:00
2020-04-19 22:17:05 +02:00
local REPO_BASE=$1
local REPO_DISTR=$2
local REPO_ARCH=$3
local RPM_EXT=$4
##########################################
#
# Create the SysTray-X tar
#
##########################################
2020-03-08 23:47:04 +01:00
2020-03-31 15:23:12 +02:00
#
2020-04-19 22:17:05 +02:00
# Get index.html
2020-03-31 15:23:12 +02:00
#
2020-04-19 22:17:05 +02:00
rm -f index.html
wget -q "${REPO_BASE}/${REPO_DISTR}/${REPO_ARCH}/"
2020-04-19 22:17:05 +02:00
#
# Find rpm
#
local RPM_FILE=$(grep ">systray-x-[^d].*<" index.html | sed -e "s/.*>\(systray-x-[^d].*rpm\)<.*/\1/")
rm -f index.html
echo "Found: "${RPM_FILE}
2020-04-19 22:17:05 +02:00
FOUND_VERSION=$(echo ${RPM_FILE} | sed -e "s/systray-x-\(.*\)-.*/\1/")
echo "Version: "${FOUND_VERSION}
2020-03-31 15:23:12 +02:00
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
# Create tar dir
#
local TAR_DIR=SysTray-X-${FOUND_VERSION}-${REPO_DISTR}
rm -rf ${TAR_DIR}
mkdir -p ${TAR_DIR}
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
# Add the gnome extension to the tar
#
if [ -f gnome-shell-extension.tar.xz ] ; then
cp -f gnome-shell-extension.tar.xz ${TAR_DIR}/
fi
2020-04-16 22:59:11 +02:00
#
2020-04-19 22:17:05 +02:00
# Get the SysTray-X rpm
2020-04-16 22:59:11 +02:00
#
2020-04-19 22:17:05 +02:00
wget -q "${REPO_BASE}/${REPO_DISTR}/${REPO_ARCH}/${RPM_FILE}"
2020-04-16 22:59:11 +02:00
#
2020-04-20 22:33:43 +02:00
# Get compression type
2020-04-16 22:59:11 +02:00
#
2020-04-20 22:33:43 +02:00
COMPRESSION=$(rpm -qp --qf '%{PAYLOADCOMPRESSOR}\n' ${RPM_FILE})
# echo ${COMPRESSION}
case ${COMPRESSION} in
zstd)
#
# Extract
#
rpm2cpio ${RPM_FILE} | zstd -d | cpio --quiet -idm
#
# Get files
#
cp -f ./usr/bin/SysTray-X ./${TAR_DIR}/SysTray-X
chmod 755 ./${TAR_DIR}/SysTray-X
cp -f ./usr/share/doc/systray-x/systray-x@Ximi1970.xpi ./${TAR_DIR}/systray-x@Ximi1970.xpi
;;
*)
#
# Extract
#
rpm2cpio ${RPM_FILE} | cpio --quiet -idm
#
# Get files
#
cp -f ./usr/bin/SysTray-X ./${TAR_DIR}/SysTray-X
chmod 755 ./${TAR_DIR}/SysTray-X
cp -f ./usr/share/doc/packages/systray-x/systray-x@Ximi1970.xpi ./${TAR_DIR}/systray-x@Ximi1970.xpi
;;
esac
#
# Cleanup
#
rm -rf ./usr
2020-04-19 22:17:05 +02:00
if [ ! -f systray-x@Ximi1970.xpi ] ; then
cp -f ./${TAR_DIR}/systray-x@Ximi1970.xpi .
fi
2020-03-31 15:23:12 +02:00
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
# Get JSON
2020-03-08 23:47:04 +01:00
#
2020-04-19 22:17:05 +02:00
cp -f ../app/config/linux/SysTray_X.json.template ./${TAR_DIR}/SysTray_X.json.template
2020-03-31 15:23:12 +02:00
#
2020-04-19 22:17:05 +02:00
# Create tar
2020-03-31 15:23:12 +02:00
#
2020-04-19 22:17:05 +02:00
tar -C ./${TAR_DIR} -cJf ${TAR_DIR}.tar.xz .
2020-03-08 23:47:04 +01:00
2020-04-19 22:17:05 +02:00
#
# Rename the RPM
#
if [ "${RPM_EXT}" != "_" ] ; then
NEW_RPM_FILE=`echo ${RPM_FILE} | sed -s "s/\(systray-x-${FOUND_VERSION}-\)\(.*\)/\1${RPM_EXT}\.\2/"`
mv -f ${RPM_FILE} $NEW_RPM_FILE
fi
2020-03-10 19:43:28 +01:00
2020-04-19 22:17:05 +02:00
#
# Cleanup
#
rm -rf ${TAR_DIR}
}
create_deb_tar() {
local REPO_BASE=$1
local REPO_DISTR=$2
local REPO_ARCH=$3
local DEB_EXT=$4
##########################################
#
# Create the SysTray-X tar
#
##########################################
2020-03-10 19:43:28 +01:00
#
# Get index.html
#
2020-04-13 18:32:51 +02:00
rm -f index.html
2020-04-19 22:17:05 +02:00
wget -q "${REPO_BASE}/${REPO_DISTR}/${REPO_ARCH}/"
2020-03-10 19:43:28 +01:00
#
# Find deb
#
2020-04-19 22:17:05 +02:00
local DEB_FILE=$(grep ">systray-x_.*\.deb<" index.html | sed -e "s/.*>\(systray-x.*deb\)<.*/\1/")
2020-04-13 18:32:51 +02:00
rm -f index.html
2020-03-31 15:23:12 +02:00
2020-04-19 22:17:05 +02:00
echo "Found: "${DEB_FILE}
2020-04-13 18:32:51 +02:00
2020-04-19 22:17:05 +02:00
FOUND_VERSION=$(echo ${DEB_FILE} | sed -e "s/systray-x_\(.*\)_.*/\1/")
2020-04-13 18:32:51 +02:00
2020-04-19 22:17:05 +02:00
echo "Version: "${FOUND_VERSION}
2020-04-13 18:32:51 +02:00
#
2020-04-19 22:17:05 +02:00
# Create tar dir
2020-04-13 18:32:51 +02:00
#
2020-04-19 22:17:05 +02:00
local TAR_DIR=SysTray-X-${FOUND_VERSION}-${REPO_DISTR}
2020-04-19 22:17:05 +02:00
rm -rf ${TAR_DIR}
mkdir -p ${TAR_DIR}
#
# Add the gnome extension to the tar
#
if [ -f gnome-shell-extension.tar.xz ] ; then
cp -f gnome-shell-extension.tar.xz ${TAR_DIR}/
fi
2020-03-10 19:43:28 +01:00
#
2020-04-19 22:17:05 +02:00
# Get the SysTray-X deb
2020-03-10 19:43:28 +01:00
#
2020-04-19 22:17:05 +02:00
wget -q "${REPO_BASE}/${REPO_DISTR}/${REPO_ARCH}/${DEB_FILE}"
2020-03-31 15:23:12 +02:00
2020-03-10 19:43:28 +01:00
#
# Extract
#
2020-04-19 22:17:05 +02:00
dpkg --fsys-tarfile ${DEB_FILE} | tar xOf - ./usr/bin/SysTray-X > ./${TAR_DIR}/SysTray-X
chmod 755 ./${TAR_DIR}/SysTray-X
2020-03-10 19:43:28 +01:00
2020-04-19 22:17:05 +02:00
dpkg --fsys-tarfile ${DEB_FILE} | tar xOf - ./usr/lib/thunderbird-addons/extensions/systray-x@Ximi1970.xpi > ./${TAR_DIR}/systray-x@Ximi1970.xpi
if [ ! -f systray-x@Ximi1970.xpi ] ; then
cp -f ./${TAR_DIR}/systray-x@Ximi1970.xpi .
fi
2020-03-30 23:13:55 +02:00
2020-03-10 19:43:28 +01:00
#
# Get JSON
#
2020-04-19 22:17:05 +02:00
cp -f ../app/config/linux/SysTray_X.json.template ./${TAR_DIR}/SysTray_X.json.template
#
# Create tar
#
tar -C ./${TAR_DIR} -cJf ${TAR_DIR}.tar.xz .
#
# Rename the DEB
#
if [ "${DEB_EXT}" != "_" ] ; then
NEW_DEB_FILE=`echo ${DEB_FILE} | sed -s "s/\(systray-x\_${FOUND_VERSION}\_\)\(.*\)/\1${DEB_EXT}\_\2/"`
mv -f ${DEB_FILE} ${NEW_DEB_FILE}
fi
2020-03-31 15:23:12 +02:00
2020-03-10 19:43:28 +01:00
#
# Cleanup
#
2020-04-19 22:17:05 +02:00
rm -rf ${TAR_DIR}
}
2020-03-10 19:43:28 +01:00
2020-04-19 22:17:05 +02:00
#################################################################################
#
#
# Main
#
#
#################################################################################
TARGET_DIR="bin"
mkdir -p $TARGET_DIR
pushd $TARGET_DIR > /dev/null 2>&1
2020-03-31 15:23:12 +02:00
2020-04-19 22:17:05 +02:00
#
# Create bash installers for RPM based distributions
#
INDEX=1
for rpmdir in $OBS_RPM_ARCHS ; do
2020-03-10 19:43:28 +01:00
2020-04-19 22:17:05 +02:00
echo
echo
echo "Generating installer: "${rpmdir}
echo
2020-03-31 15:23:12 +02:00
#
2020-04-19 22:17:05 +02:00
# Get base of the repo
2020-03-31 15:23:12 +02:00
#
2020-04-19 22:17:05 +02:00
REPO_DISTR=$(echo ${rpmdir} | cut -d'/' -f1)
REPO_ARCH=$(echo ${rpmdir} | cut -d'/' -f2)
2020-04-19 22:17:05 +02:00
RPM_EXT=$(echo ${OBS_RPM_PKS} | cut -d' ' -f${INDEX})
#
# Generate the gnome tar file
#
create_rpm_gnome_extension_tar ${OBS_REPO_BASE} ${REPO_DISTR}
2020-03-31 15:23:12 +02:00
2020-04-19 22:17:05 +02:00
#
# Generate the SysTray-X tar file
#
create_rpm_tar ${OBS_REPO_BASE} ${REPO_DISTR} ${REPO_ARCH} ${RPM_EXT}
2020-03-10 19:43:28 +01:00
#
# Create installer
#
2020-04-19 22:17:05 +02:00
INSTALLER=SysTray-X-${FOUND_VERSION}-${REPO_DISTR}-${REPO_ARCH}-install.sh
cp -f ../dist/install.sh ${INSTALLER}
#
# Insert gnome setup
#
sed -i -e "/__GNOME_SETUP__/r../dist/install.${REPO_DISTR}.sh" ${INSTALLER}
sed -i -e "s/__GNOME_SETUP__//" ${INSTALLER}
#
# Insert install tar
#
cat SysTray-X-${FOUND_VERSION}-${REPO_DISTR}.tar.xz >> ${INSTALLER}
chmod 755 ${INSTALLER}
#
# Cleanup
#
rm -f SysTray-X-${FOUND_VERSION}-${REPO_DISTR}.tar.xz
#
# Update index
#
INDEX=$((INDEX+1))
done
#
# Cleanup
#
rm -f gnome-shell-extension.tar.xz
#
# Create bash installers for DEB based distributions
#
INDEX=1
for debdir in $OBS_DEB_ARCHS ; do
echo
echo
echo "Generating installer: "${debdir}
echo
2020-04-16 22:59:11 +02:00
2020-04-19 22:17:05 +02:00
#
# Get base of the repo
#
REPO_DISTR=$(echo ${debdir} | cut -d'/' -f1)
REPO_ARCH=$(echo ${debdir} | cut -d'/' -f2)
DEB_EXT=$(echo ${OBS_DEB_PKS} | cut -d' ' -f${INDEX})
#
# Generate the gnome tar file
#
create_deb_gnome_extension_tar ${OBS_REPO_BASE} ${REPO_DISTR} ${REPO_ARCH}
#
# Generate the SysTray-X tar file
#
create_deb_tar ${OBS_REPO_BASE} ${REPO_DISTR} ${REPO_ARCH} ${DEB_EXT}
#
# Create installer
#
INSTALLER=SysTray-X-${FOUND_VERSION}-${REPO_DISTR}-${REPO_ARCH}-install.sh
cp -f ../dist/install.sh ${INSTALLER}
2020-04-16 22:59:11 +02:00
#
# Insert gnome setup
#
2020-04-19 22:17:05 +02:00
sed -i -e "/__GNOME_SETUP__/r../dist/install.${REPO_DISTR}.sh" ${INSTALLER}
sed -i -e "s/__GNOME_SETUP__//" ${INSTALLER}
2020-04-16 22:59:11 +02:00
#
# Insert install tar
#
2020-04-19 22:17:05 +02:00
cat SysTray-X-${FOUND_VERSION}-${REPO_DISTR}.tar.xz >> ${INSTALLER}
chmod 755 ${INSTALLER}
2020-03-31 15:23:12 +02:00
2020-03-10 19:43:28 +01:00
#
# Cleanup
#
2020-04-19 22:17:05 +02:00
rm -f SysTray-X-${FOUND_VERSION}-${REPO_DISTR}.tar.xz
2020-03-31 15:23:12 +02:00
#
# Update index
#
INDEX=$((INDEX+1))
2020-03-10 19:43:28 +01:00
done
2020-04-19 22:17:05 +02:00
#
# Cleanup
#
rm -f gnome-shell-extension.tar.xz
2020-03-08 23:47:04 +01:00
popd > /dev/null 2>&1