automate/020_rancher-k3d.sh

103 lines
3.0 KiB
Bash
Executable File

#!/usr/bin/env bash
apt install -y golang-go
cd /var/tmp || exit
USER="k3d-io"
PROJECT="k3d"
PRERELEASE="false"
DOWNLOAD_DIR=/tmp
## FIXME
# The api.github.com json has alpha releases at the top so here we are trying to exclude names containing the word alpha
#RELEASE=$(curl "https://api.github.com/repos/${USER}/${PROJECT}/tags?per_page=5" | jq '[ .[] | select(.name|test("alpha.") | not) ] | .[0] | .name')
# Select name directly [v followed by dots and digits only], rather than by 'not alpha':
RELEASE=$(curl "https://api.github.com/repos/${USER}/${PROJECT}/tags?per_page=5" | jq '[ .[] | select(.name|test("v[[:digit:].]+$"))]|.[0] | .name')
RSS_FEED="https://github.com/${USER}/${PROJECT}/releases.atom"
# xdg-open ${RSS_FEED}
echo ${RSS_FEED}
# strip speech marks and preceding 'v'
VERSION=$(echo ${RELEASE} | tr -d '"' | tr -d "v")
echo $VERSION
## FIXME: Maake condition on alpha being in the RELEASE name.
#name "v3.0.0-alpha.1" has the preceding 'v' removed and is split on '-' to give:
#VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-")
#RELEASE=$(echo "${RELEASE}" | cut -c 2- | cut -f2 -d"-")
# Delete these two when you've fixed the jq above
#VERSION=1.6.0
DEB_RELEASE=1
# make a containing directory
mkdir -p /var/tmp/k3d-"${VERSION}"
cd /var/tmp/k3d-"${VERSION}" || exit
cat >./description-pak <<EOF
Little helper to run Rancher Lab's k3s in Docker. k3s is the lightweight Kubernetes distribution.
EOF
cat >./checkinstall_it.sh <<EOF
#!/usr/bin/env bash
echo "ENTERING CHECKINSTALL"
BASE_URL='https://api.github.com/repos'
BASE_USER='rancher'
BASE_REPO='k3d'
LICENSE_PAGE_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/license
RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases
#CONTENT=$(curl -s ${RELEASES_URL}/latest)
#LATEST_URL=$(echo "${CONTENT}" | tr '\r\n' ' ' | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url')
#echo "LATEST_URL: " "${LATEST_URL}"
#RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name')
# LICENSE_URL=$(curl "${LICENSE_PAGE_URL}" | jq --raw-output '.download_url')
# wget -c ${LICENSE_URL}
VERSION=$(date +%Y-%m-%d_)git
#VERSION="1.0"
#RELEASE="git"
REQUIRES=""
# make a new temporary directory for this use
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
mkdir -p ${BASE_TMP_DIR}
# do your work
checkinstall -y --fstrans \
--pkgname=rancher-k3d \
--pkgversion=${VERSION}\
--pkgrelease=${DEB_RELEASE} \
--pkgarch=amd64 \
--pkggroup=admin \
--pkglicense=LICENSE \
--pkgsource=${LATEST_URL} \
--maintainer=cyteen@ring-zero.co.uk \
--requires=${REQUIRES} \
-D \
bash ./install-it.sh
EOF
echo "${RELEASE}"
cat >./install-it.sh <<EOF
#!/usr/bin/env bash
#wget -c https://raw.githubusercontent.com/rancher/k3d/master/install.sh
#sed -i '/^#\!.*/ s/.*/&\nset -x/' ./install.sh
#TAG=${RELEASE} bash install.sh
echo "Installing release ${RELEASE} "
curl -SsL http://github.com/rancher/k3d/releases/download/${RELEASE}/k3d-linux-amd64 -o /usr/local/bin/k3d
chmod +x /usr/local/bin/k3d
EOF
bash ./checkinstall_it.sh