87 lines
2.6 KiB
Bash
87 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# nvims Safely experiment with multiple Neovim configurations.
|
|
|
|
# Checkinstall to produce a deb package
|
|
cd /var/tmp || exit
|
|
|
|
DEST=${1:-/etc/skel}
|
|
GITHUB_USER=traap
|
|
PROJECT=nvims
|
|
ARCH=$(dpkg --print-architecture)
|
|
# RELEASE=$(lastversion --format="tag" "${GITHUB_USER}/${PROJECT}") #$(lastversion --form "${PROJECT}")
|
|
LATEST_URL="https://api.github.com/repos/${GITHUB_USER}/${PROJECT}/releases/latest"
|
|
# RELEASE=$(curl -L -s -H 'Accept: application/json' "${LATEST_URL}" | grep -Po '"tag_name": "v\K[^"]*')
|
|
# GIT_TAG=$(curl -L -s -H 'Accept: application/json' "${LATEST_URL}" | jq -r .tag_name)
|
|
# DOWNLOAD_DIR=/tmp
|
|
RELEASE=git
|
|
|
|
RSS_FEED="https://github.com/${GIT_USER}/${PROJECT}/releases.atom"
|
|
# xdg-open ${RSS_FEED}
|
|
echo ${RSS_FEED}
|
|
|
|
# make a containing directory
|
|
mkdir -p /var/tmp/${PROJECT}-"${RELEASE}"
|
|
echo "git clone --depth 1 https://github.com/${GITHUB_USER}/${PROJECT} /var/tmp/${PROJECT}-${RELEASE}"
|
|
git clone --depth 1 https://github.com/${GITHUB_USER}/${PROJECT} /var/tmp/${PROJECT}-"${RELEASE}"
|
|
cd /var/tmp/${PROJECT}-"${RELEASE}" || exit
|
|
|
|
cat <<-EOF | tee ./description-pak
|
|
Safely experiment with multiple Neovim configurations.
|
|
EOF
|
|
|
|
cat <<-EOF | tee ./checkinstall_it.sh
|
|
|
|
echo "ENTERING CHECKINSTALL"
|
|
|
|
BASE_URL='https://raw.githubusercontent.com/'
|
|
BASE_USER=${GITHUB_USER}
|
|
BASE_REPO=${PROJECT}
|
|
LICENSE_URL="\${BASE_URL}/\${BASE_USER}/\${BASE_REPO}"/master/LICENSE
|
|
# wget -c \${LICENSE_URL}
|
|
|
|
VERSION=\$(date +%Y-%m-%d_)git
|
|
# VERSION=${RELEASE}
|
|
RELEASE="1"
|
|
LICENSE=bsd
|
|
|
|
# make a new temporary directory for this use
|
|
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
|
mkdir -p \${BASE_TMP_DIR}
|
|
|
|
# do your work
|
|
sudo checkinstall -y --fstrans \
|
|
--exclude=/home/${USER}/.sudo_as_admin_successful \
|
|
--pkgname=neovim-\${BASE_REPO} \
|
|
--pkgversion=\${VERSION}\
|
|
--pkgrelease="\${RELEASE}" \
|
|
--pkgarch=\${ARCH} \
|
|
--pkggroup=development \
|
|
--pkglicense=\$LICENSE \
|
|
--pkgsource=${LATEST_URL} \
|
|
--maintainer=cyteen@ring-zero.co.uk \
|
|
--requires=fzf,git \
|
|
-D \
|
|
bash ./install_it.sh
|
|
EOF
|
|
|
|
cat <<-EOF | tee ./install_it.sh
|
|
# Copy files to their production locations.
|
|
sudo cp -v nvims /usr/local/bin/.
|
|
sudo chmod -v +x /usr/local/bin/nvims
|
|
EOF
|
|
|
|
# Create config directory and copy files there.
|
|
sudo -u ${USER} bash -c "mkdir -p "${DEST}"/.config/nvims"
|
|
sudo -u ${USER} bash -c "cp -v neovim_distros "${DEST}"/.config/nvims/."
|
|
|
|
# Each install of an nvim has an alias appended to nvim-appname so we
|
|
# sources it in our environment.
|
|
cat <<-EOF | tee ${HOME}/.zshrc.d/008_nvims_appnames.zsh
|
|
if [[ -f "${HOME}/.config/nvims/nvim_appnames" ]]; then
|
|
source "${HOME}/.config/nvims/nvim_appnames"
|
|
fi
|
|
EOF
|
|
|
|
bash ./checkinstall_it.sh
|