From f37b03503507f3b0c57247c61d2c4c803be09c66 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Mon, 2 Sep 2019 12:06:46 -0300 Subject: initial attempt at moving maint scripts into helper package This commit is a bit bug, but at least it is atomic. --- helper/install | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ helper/remove | 47 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 helper/install create mode 100644 helper/remove (limited to 'helper') diff --git a/helper/install b/helper/install new file mode 100644 index 0000000..622cbc7 --- /dev/null +++ b/helper/install @@ -0,0 +1,64 @@ +#!/bin/sh +# invoke as /usr/lib/dh-elpa/helper/install flavor elpa_package elpa_version elpa_load_path + +set -e + +# safe values for important variables + +unset HOME +PATH=/usr/sbin:/usr/bin:/sbin:/bin + +# grab parameters + +FLAVOR=$1 +ELPA_PACKAGE=$2 +ELPA_VERSION=$3 +ELPA_LOADPATH=$4 + +ELPA_DIR=${ELPA_PACKAGE}-${ELPA_VERSION} + +case $FLAVOR in + emacs2[01234]*) + echo install/${ELPA_DIR}: Skipping obsolete emacs ${FLAVOR} + exit 0 + ;; + xemacs*) + echo install/${ELPA_DIR}: Skipping unsupported emacs ${FLAVOR} + exit 0 + ;; + *) + echo install/${ELPA_DIR}: Handling install of emacsen flavor ${FLAVOR} +esac + +src_dir=/usr/share/emacs/site-lisp/elpa-src +el_dir=$src_dir/${ELPA_DIR}/ +elc_dir=/usr/share/${FLAVOR}/site-lisp/elpa/${ELPA_DIR}/ + +export EMACSLOADPATH +EMACSLOADPATH=${ELPA_LOAD_PATH} + +echo install/${ELPA_DIR}: byte-compiling for ${FLAVOR} + +[ -d ${elc_dir} ] || mkdir -p ${elc_dir} + +# Create symlinks to the .el files (see section 6E in debian-emacs +# policy). This makes complation easy, and also allows find-function +# and find-library to work properly. Also link all other top level +# files and directories into the flavor directory +(cd ${elc_dir} && ln -sf ${el_dir}/* .) + +# Byte compile them +(cd ${elc_dir} + set +e + ${FLAVOR} --quick --batch -l package \ + --eval "(add-to-list 'package-directory-list \"$src_dir\")" \ + -f package-initialize -f batch-byte-compile *.el > Install.log 2>&1 + if test $? -ne 0 + then + cat Install.log + exit 1 + fi + set -e + gzip -9f Install.log) + +exit 0; diff --git a/helper/remove b/helper/remove new file mode 100644 index 0000000..9a980e9 --- /dev/null +++ b/helper/remove @@ -0,0 +1,47 @@ +#!/bin/sh +#!/bin/sh +# invoke as /usr/lib/dh-elpa/helper/remove flavor elpa_package elpa_version + +set -e + +# safe values for important variables + +unset HOME +PATH=/usr/sbin:/usr/bin:/sbin:/bin + +# grab parameters + +FLAVOR=$1 +ELPA_PACKAGE=$2 +ELPA_VERSION=$3 + +ELPA_DIR=${ELPA_PACKAGE}-${ELPA_VERSION} + +elpa_root="/usr/share/${FLAVOR}/site-lisp/elpa" +elc_dir="${elpa_root}/${ELPA_DIR}" + +FLAVOR=$1 +case $FLAVOR in + emacs2[01234]*) + echo remove/${ELPA_DIR}: Skipping obsolete emacs ${FLAVOR} + exit 0 + ;; + xemacs*) + echo remove/${ELPA_DIR}: Skipping unsupported emacs ${FLAVOR} + exit 0 + ;; + *) + echo remove/${ELPA_DIR}: Handling removal of emacsen flavor ${FLAVOR} +esac + +echo dh-elpa: purging flavor specific files for ${FLAVOR} +rm -f ${elc_dir}/*.elc +[ -d ${elc_dir} ] && find ${elc_dir} -type l -delete +rm -f ${elc_dir}/Install.log* +if test -e "${elc_dir}" +then + rmdir --ignore-fail-on-non-empty "${elc_dir}" + rmdir --ignore-fail-on-non-empty "${elpa_root}" +fi + +exit 0; -- cgit v1.2.3