Skip to content

Instantly share code, notes, and snippets.

@withgod
Created December 19, 2019 10:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save withgod/9c5cfbb128c05e1a593f8ee940704491 to your computer and use it in GitHub Desktop.
Save withgod/9c5cfbb128c05e1a593f8ee940704491 to your computer and use it in GitHub Desktop.
erlang-solutions_2.0_all.deb
Package: erlang-solutions
Version: 2.0
Architecture: all
Maintainer: Erlang Solutions <packages@erlang-solutions.com>
Pre-Depends: dpkg (>= 1.14.0), gnupg | gnupg1 | gnupg2
Installed-Size: 2
Section: web
Priority: optional
Description: A package to add repository.
#!/bin/bash
set -e
if [ -e /etc/os-release ]; then
CODENAME=$(grep "VERSION_CODENAME" /etc/os-release | awk -F "=" {'print $2'})
fi
if [ -z $CODENAME ] && [ -e /etc/issue ]; then
OS=$(awk '{print $1}' /etc/issue)
STRING=$(cat /etc/issue)
if [[ $STRING == *jessie* ]]; then
DISTRO_NUMBER="8.0"
else
DISTRO_NUMBER=$(sed 's/[^0-9.]*\([0-9]*[\.]*[0-9]*\).*/\1/g' /etc/issue)
fi
if [ "$OS" = "Ubuntu" ]; then
case $DISTRO_NUMBER in
"4.10") CODENAME="warty" ;;
"5.04") CODENAME="hoary" ;;
"5.10") CODENAME="breezy" ;;
"6.06") CODENAME="dapper" ;;
"6.10") CODENAME="edgy" ;;
"7.04") CODENAME="feisty" ;;
"7.10") CODENAME="gutsy" ;;
"8.04") CODENAME="hardy" ;;
"8.10") CODENAME="intrepid" ;;
"9.04") CODENAME="jaunty" ;;
"9.10") CODENAME="karmic" ;;
"10.04") CODENAME="lucid" ;;
"10.10") CODENAME="maverick" ;;
"11.04") CODENAME="natty" ;;
"11.10") CODENAME="oneiric" ;;
"12.04") CODENAME="precise" ;;
"12.10") CODENAME="quantal" ;;
"13.04") CODENAME="raring" ;;
"13.10") CODENAME="saucy" ;;
"14.04") CODENAME="trusty" ;;
"14.10") CODENAME="utopic" ;;
"15.04") CODENAME="vivid" ;;
"15.10") CODENAME="wily" ;;
"16.04") CODENAME="xenial" ;;
"16.10") CODENAME="yakkety" ;;
"17.04") CODENAME="zesty" ;;
"17.10") CODENAME="artful" ;;
"18.04") CODENAME="bionic" ;;
"18.10") CODENAME="cosmic" ;;
"19.04") CODENAME="disco" ;;
*) CODENAME=""
esac
elif [ "$OS" = "Debian" ] || [ "$OS" = "Raspbian" ] ; then
case $DISTRO_NUMBER in
"1.1") CODENAME="buzz" ;;
"1.2") CODENAME="rex" ;;
"1.3") CODENAME="bo" ;;
"2.0") CODENAME="hamm" ;;
"2.1") CODENAME="slink" ;;
"2.2") CODENAME="potato" ;;
"3.0") CODENAME="woody" ;;
"3.1") CODENAME="sarge" ;;
"4.0") CODENAME="etch" ;;
"5.0") CODENAME="lenny" ;;
"6.0") CODENAME="squeeze" ;;
"7") CODENAME="wheezy" ;;
"8") CODENAME="jessie" ;;
"8.0") CODENAME="jessie" ;;
"9") CODENAME="stretch" ;;
"9.0") CODENAME="stretch" ;;
*) CODENAME=""
esac
fi
fi
if [ -z $CODENAME ]; then
echo "Can not detect version codename." && exit 1
fi
REPOCONFIG="deb http://binaries.erlang-solutions.com/debian $CODENAME contrib"
APT_GET="`which apt-get 2> /dev/null`"
APT_CONFIG="`which apt-config 2> /dev/null`"
SOURCES_PREAMBLE="### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.\n"
# Parse apt configuration and return requested variable value.
apt_config_val() {
APTVAR="$1"
if [ -x "$APT_CONFIG" ]; then
"$APT_CONFIG" dump | sed -e "/^$APTVAR /"'!d' -e "s/^$APTVAR \"\(.*\)\".*/\1/"
fi
}
# Install the repository signing key (see also:
install_key() {
APT_KEY="`which apt-key 2> /dev/null`"
if [ -x "$APT_KEY" ]; then
"$APT_KEY" add - >/dev/null 2>&1 <<KEYDATA
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)
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
ctmKvzuuerI6mVQjg/80PJ4fEV0=
=VAR1
-----END PGP PUBLIC KEY BLOCK-----
KEYDATA
fi
}
# Set variables for the locations of the apt sources lists.
find_apt_sources() {
APTDIR=$(apt_config_val Dir)
APTETC=$(apt_config_val 'Dir::Etc')
APT_SOURCES="$APTDIR$APTETC/$(apt_config_val 'Dir::Etc::sourcelist')"
APT_SOURCESDIR="$APTDIR$APTETC/$(apt_config_val 'Dir::Etc::sourceparts')"
}
# Add the repository to the apt sources.
# Returns:
# 0 - sources list was created
# 2 - error
create_sources_lists() {
if [ ! "$REPOCONFIG" ]; then
return 0
fi
find_apt_sources
SOURCELIST="$APT_SOURCESDIR/erlang-solutions.list"
if [ -d "$APT_SOURCESDIR" ]; then
printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
printf "$REPOCONFIG\n" >> "$SOURCELIST"
if [ $? -eq 0 ]; then
return 0
fi
fi
return 2
}
mkdir -p /etc/apt/sources.list.d/
sed '/erlang-solutions/d' /etc/apt/sources.list
install_key
create_sources_lists
echo >> /etc/apt/preferences
echo "Package: *" >> /etc/apt/preferences
echo "Pin: release o=Erlang Solutions Ltd." >> /etc/apt/preferences
echo "Pin-Priority: 999" >> /etc/apt/preferences
#!/bin/sh
APT_GET="`which apt-get 2> /dev/null`"
APT_CONFIG="`which apt-config 2> /dev/null`"
# Parse apt configuration and return requested variable value.
apt_config_val() {
APTVAR="$1"
if [ -x "$APT_CONFIG" ]; then
"$APT_CONFIG" dump | sed -e "/^$APTVAR /"'!d' -e "s/^$APTVAR \"\(.*\)\".*/\1/"
fi
}
# Set variables for the locations of the apt sources lists.
find_apt_sources() {
APTDIR=$(apt_config_val Dir)
APTETC=$(apt_config_val 'Dir::Etc')
APT_SOURCES="$APTDIR$APTETC/$(apt_config_val 'Dir::Etc::sourcelist')"
APT_SOURCESDIR="$APTDIR$APTETC/$(apt_config_val 'Dir::Etc::sourceparts')"
}
# Remove our custom sources list file.
clean_sources_lists() {
find_apt_sources
rm -f "$APT_SOURCESDIR/erlang-solutions.list" \
"$APT_SOURCESDIR/erlang-solutions-stable.list"
}
clean_sources_lists
PREF="/etc/apt/preferences"
PREFTMP="/tmp/preferences.tmp"
ITEM=$(grep -C 1 "Pin: release o=Erlang Solutions Ltd." $PREF)
grep -v "$ITEM" $PREF > $PREFTMP
mv $PREFTMP $PREF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment