#!/bin/bash if [ $# = 0 -o `id -u` != 0 ] || [[ "$1" == -* ]]; then echo "Utility to add Ubuntu PPA in your Debian machine" echo "usage: sudo ${0##*/} ppa:user/ppa-name [ubuntu_release]" echo "e.g.: sudo ${0##*/} ppa:ubuntu-wine/ppa" echo "or: sudo ${0##*/} ubuntu-wine" exit 1 fi ppa=${1#ppa:} ubuntu_release=${2:-trusty} [[ "$ppa" == */* ]] || ppa=$ppa/ppa ppa_user="${ppa%%/*}" ppa_archive="${ppa#*/}" sources_list="/etc/apt/sources.list.d/ppa_${ppa_user}_${ppa_archive}.list" echo "ppa:$ppa_user/$ppa_archive $ubuntu_release -> $sources_list" ( set -e set -o pipefail ppa_key() { ppa_user="$1" ppa_archive="$2" curl -s "https://launchpad.net/~$ppa_user/+archive/$ppa_archive" | perl -ne 'm{
(.*?)
} and $1 =~ m{/(.*)} and print "$1\n"'
}
key=`ppa_key "$ppa_user" "$ppa_archive"`
if [ -z "$key" ]; then echo >&2 "ppa not found"; exit 1; fi
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
echo "deb http://ppa.launchpad.net/$ppa_user/$ppa_archive/ubuntu $ubuntu_release main" \
>"$sources_list"
apt-get update
)
[ "$?" = 0 ] && echo ok || echo fail