#!/bin/sh set -e echo "Setting up click packages" CLICKARCH=$(dpkg --print-architecture) click_uri=http://archive-team.internal/click_packages if [ "$CLICKARCH" = "arm64" ]; then # FIXME: this is temporary. Since right now we can't have arm64 clicks in the store # (before implementing fat-packages), we need to fetch the arm64 click list from a # different place click_list=$click_uri/click_list.arm64 click_install_flags="--allow-unauthenticated" else click_list=$click_uri/click_list click_install_flags="" fi click_db=/usr/share/click/preinstalled click_db_custom=/custom/click mkdir -p -m 755 "$click_db" chown clickpkg:clickpkg "$click_db" # some of these get installed to /custom/click mkdir -p -m 755 "$click_db_custom" chown clickpkg:clickpkg "$click_db_custom" tmpdir="$(mktemp -d)" cleanup () { rm -rf "$tmpdir"; } trap cleanup EXIT wget --no-verbose -O "$tmpdir/click_list" "$click_list" for package in $(cat "$tmpdir/click_list") do if echo $package | egrep -q "_$CLICKARCH.click|_all.click|_unknown.click|_multi.click"; then echo "Setting up $package" wget --no-verbose -O "$tmpdir/$package" "$click_uri/$package" # FIXME: first attempt, a hard-coded list of the packages that go to # the custom tarball case $package in com.ubuntu.developer.webapps.webapp-amazon_*|\ com.ubuntu.developer.webapps.webapp-ebay_*|\ com.ubuntu.developer.webapps.webapp-facebook_*|\ com.ubuntu.developer.webapps.webapp-gmail_*|\ com.ubuntu.developer.webapps.webapp-twitter_*|\ com.ubuntu.scopes.youtube_*|\ com.ubuntu.dropping-letters_*|\ com.ubuntu.filemanager_*|\ com.ubuntu.reminders_*|\ com.ubuntu.shorts_*|\ com.ubuntu.sudoku_*|\ com.ubuntu.terminal_*|\ com.ubuntu.calendar_*|\ navigator.costales_*|\ dekko.dekkoproject_*) roots="$click_db_custom" ;; *) roots="$click_db" ;; esac for root in $roots; do if [ "$root" = "$click_db_custom" ]; then # FIXME: there is no good way to stop click from # deduplicating things when installing the same package in # multiple databases; the best we can do is to temporarily # pretend that the core database does not exist mv /etc/click/databases/10_core.conf \ /etc/click/databases/10_core.conf.tmp fi click install --force-missing-framework --root="$root" --all-users $click_install_flags \ "$tmpdir/$package" if [ "$root" = "$click_db_custom" ]; then mv /etc/click/databases/10_core.conf.tmp \ /etc/click/databases/10_core.conf fi done fi done