summaryrefslogtreecommitdiffstats
path: root/puppet/modules/android/manifests/linux.pp
blob: 4bab8656e9766a411de9e3af2fbdecac4aa4ef29 (plain)
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
# Download and install Android ndk and sdk to $target. Update will be done and
# old version will be removed if $filename is changed to point to new or older version.
class android::linux
{
    $url = "http://dl.google.com/android"
    $target = "/opt/android"

    file { "$target":
        ensure  =>  directory,
        owner   =>  root,
        group   =>  users,
        mode    =>  0755,
    }

    # Environment variable ANDROID_NDK_HOST depend on nodes architecture
    $ndk_host = $::architecture ? {
        i386    => "linux-x86",
        default => "linux-x86_64",
        }

    file { "/etc/profile.d/android_env.sh":
        ensure  => present,
        content => template("android/android_env.sh.erb"),
        }

    define android_install($filename,$directory,$options,$generic_dir,$target,$url) {
        exec { "install $filename to ${target}/${directory}":
            command =>  "/bin/bash -c '\
                (if [ -e ${generic_dir} ]; then rm -fr ${generic_dir}; fi) \
                && wget $url/${filename} -O - | tar -C $target -$options \
                && mv ${target}/${directory} ${generic_dir} \
                && echo $filename > ${generic_dir}/version.txt \
                && chown -R $testuser: $generic_dir \
                && (if [ $generic_dir == $target/sdk ]; then ${generic_dir}/tools/android update sdk --no-ui; fi)'",
            unless => "/bin/bash -c '\
                grep \"$filename\" ${generic_dir}/version.txt'",
            require =>  File["$target"],
            timeout =>  1800,
        }
    }

    android_install {
        "ndk":
            filename    =>  "ndk/android-ndk-r8e-${ndk_host}.tar.bz2",
            directory   =>  "android-ndk-r8e",
            options     =>  "xj",
            target      =>  "$target",
            url         =>  "$url",
            generic_dir =>  "${target}/ndk",
        ;
        "sdk":
            filename    =>  "android-sdk_r21.0.1-linux.tgz",
            directory   =>  "android-sdk-linux",
            options     =>  "zx",
            target      =>  "$target",
            url         =>  "$url",
            generic_dir =>  "${target}/sdk",
        ;
    }
}