~ubuntu-core-dev/livecd-rootfs/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/sh

set -e

echo "Setting up click packages"

click_uri=http://archive-team.internal/click_packages
click_list=$click_uri/click_list
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

CLICKARCH=$(dpkg --print-architecture)

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"; 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.dropping-letters_*|\
            com.ubuntu.filemanager_*|\
            com.ubuntu.reminders_*|\
            com.ubuntu.shorts_*|\
            com.ubuntu.sudoku_*|\
            com.ubuntu.terminal_*)
                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 \
                "$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