You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/bin/bash
set -eux
## ## kal-scripts ##
if ! status=$(dpkg-query -W -f='${db:Status-Abbrev}\n' 'apt-transport-https') || [ "$status" != "ii " ]; then
## Required to fetch our repository in https apt-get install -y apt-transport-https </dev/null
fi
update_repos_from_source_file() { local source_file="$1" ## Update only repo's from this source file if ! out=$(apt-get update \
-o Dir::Etc::sourcelist="sources.list.d/${source_file}" \
-o Dir::Etc::sourceparts="-" \
-o APT::Get::List-Cleanup="0" 2>/dev/null); then return 3 fi if [[ "$out" = *" NO_PUBKEY "* ]]; then return 2 fi if [[ "$out" = *$'\n'"Err:1 "* ]]; then return 1 fi return 0 }
check_working_source_file() { local source_file="$1" if ! [ -e "/etc/apt/sources.list.d/${source_file}" ]; then return 1 fi
update_repos_from_source_file "${source_file}" 2>/dev/null && return 0 local errlvl="$?" if [[ "$errlvl" == 2 ]]; then return 2 fi return 127 ## Unmanaged error }
errlvl=0 ## Will check and update package list if running correctly check_working_source_file "kalysto.org.list" || errlvl="$?"
if [ "$errlvl" -gt 0 ]; then if [ "$errlvl" -le 1 ]; then ## no file in source list
cat <<EOF > /etc/apt/sources.list.d/kalysto.org.list
## vlab's shell libraries deb https://deb.kalysto.org no-dist kal-alpha kal-beta kal-main
EOF
fi
if [ "$errlvl" -le 2 ]; then ## no pub key
if ! type gpg >/dev/null; then apt-get install -y gnupg2 </dev/null fi
## Include the GPG key wget -O - https://deb.kalysto.org/conf/public-key.gpg | apt-key add -
## Update only this repo: if ! update_repos_from_source_file "kalysto.org.list"; then echo "Error: Couldn't update repository information of kalysto deb repository" >&2 echo " Despite having just added the GPG key." >&2 exit 1 fi fi if [ "$errlvl" == 127 ]; then echo "Error: Couldn't update repository information of kalysto deb repository..." >&2 echo " - check /etc/apt/source.list.d/kalysto.org.list content and" >&2 echo " - check \`\`apt-get update\`\` output for errors." >&2 exit 1 fi
fi
apt-get install -y kal-scripts </dev/null
|