From 71973c764578182733ddc8ac226879415b1ac941 Mon Sep 17 00:00:00 2001 From: "Aska.Wu" Date: Mon, 3 Nov 2014 14:56:16 +0800 Subject: [PATCH 1/2] Add android::tool to get sdk tool up-to-date --- manifests/init.pp | 1 + manifests/tool.pp | 18 ++++++++++++++++++ manifests/update.pp | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 manifests/tool.pp create mode 100644 manifests/update.pp diff --git a/manifests/init.pp b/manifests/init.pp index c3b21bc..ba83052 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -31,5 +31,6 @@ class { 'android::paths': } -> class { 'android::sdk': } -> class { 'android::platform_tools': } -> + class { 'android::tool': } -> anchor { 'android::end': } } diff --git a/manifests/tool.pp b/manifests/tool.pp new file mode 100644 index 0000000..6e7a0e5 --- /dev/null +++ b/manifests/tool.pp @@ -0,0 +1,18 @@ +# == Class: android::tools +# +# Installs the Android SDK Tools. +# +# === Authors +# +# Aska Wu +# +# === Copyright +# +# Copyright 2012 MaestroDev, unless otherwise noted. + +class android::tool { + + android::update { "tool": + keyword => "Android SDK Tools, revision", + } +} diff --git a/manifests/update.pp b/manifests/update.pp new file mode 100644 index 0000000..464b4e5 --- /dev/null +++ b/manifests/update.pp @@ -0,0 +1,41 @@ +# == Define: android::package +# +# This defined resource is used to install Android SDK packages +# +# === Parameters +# +# [*type*] One of platform-tools, platform, addon, extra or build-tools. Indicates +# the type of package to install. +# +# === Authors +# +# Aska Wu +# +# === Copyright +# +# Copyright 2012 MaestroDev, unless otherwise noted. +# + +define android::update($keyword) { + include android + + if ( $::id == 'root' ) { + Exec { user => $android::user } + } + + $proxy_host = $android::proxy_host ? { undef => '', default => "--proxy-host ${android::proxy_host}" } + $proxy_port = $android::proxy_port ? { undef => '', default => "--proxy-port ${android::proxy_port}" } + + file { "${android::installdir}/expect-install-${title}": + content => template("android/expect-script.erb"), + mode => '0755', + } -> + exec { "update-android-package-tools": + command => "${android::installdir}/expect-install-${title}", + timeout => 0, + onlyif => "${android::paths::toolsdir}/android list sdk -u | grep '${keyword}'", + require => [Class['android::sdk']], + } + +} + From fb614baa891cffb3e48177669b1b0ab1a160eb68 Mon Sep 17 00:00:00 2001 From: Jones Chi Date: Wed, 11 Feb 2015 17:28:45 +0800 Subject: [PATCH 2/2] Keep all of installed packages up-to-date --- manifests/package.pp | 30 +----------------------------- manifests/tool.pp | 7 ++++--- manifests/update.pp | 41 ----------------------------------------- 3 files changed, 5 insertions(+), 73 deletions(-) delete mode 100644 manifests/update.pp diff --git a/manifests/package.pp b/manifests/package.pp index f7dbd1f..37fd33a 100644 --- a/manifests/package.pp +++ b/manifests/package.pp @@ -25,41 +25,13 @@ $proxy_host = $android::proxy_host ? { undef => '', default => "--proxy-host ${android::proxy_host}" } $proxy_port = $android::proxy_port ? { undef => '', default => "--proxy-port ${android::proxy_port}" } - case $type { - 'platform-tools': { - $creates = "${android::paths::sdk_home}/platform-tools" - } - 'platform': { - $creates = "${android::paths::sdk_home}/platforms/${title}" - } - 'system-images': { - $title_parts = split($title, '-') - $creates = "${android::paths::sdk_home}/system-images/android-${title_parts[1]}" - } - 'addon': { - $creates = "${android::paths::sdk_home}/add-ons/${title}" - } - 'extra': { - $title_parts = split($title, '-') - $creates = "${android::paths::sdk_home}/extras/${title_parts[1]}/${title_parts[2]}" - } - 'build-tools': { - $title_parts = split($title, '-') - - $creates = "${android::paths::sdk_home}/build-tools/${title_parts[2]}" - } - default: { - fail("Unsupported package type: ${type}") - } - } - file { "${android::installdir}/expect-install-${title}": content => template("android/expect-script.erb"), mode => '0755', } -> exec { "update-android-package-${title}": command => "${android::installdir}/expect-install-${title}", - creates => $creates, + onlyif => "${android::paths::toolsdir}/android list sdk -u -e | grep '${title}'", timeout => 0, require => [Class['android::sdk']], } diff --git a/manifests/tool.pp b/manifests/tool.pp index 6e7a0e5..a4cb835 100644 --- a/manifests/tool.pp +++ b/manifests/tool.pp @@ -12,7 +12,8 @@ class android::tool { - android::update { "tool": - keyword => "Android SDK Tools, revision", - } + android::package{ 'tool': + type => 'tool', + } + } diff --git a/manifests/update.pp b/manifests/update.pp deleted file mode 100644 index 464b4e5..0000000 --- a/manifests/update.pp +++ /dev/null @@ -1,41 +0,0 @@ -# == Define: android::package -# -# This defined resource is used to install Android SDK packages -# -# === Parameters -# -# [*type*] One of platform-tools, platform, addon, extra or build-tools. Indicates -# the type of package to install. -# -# === Authors -# -# Aska Wu -# -# === Copyright -# -# Copyright 2012 MaestroDev, unless otherwise noted. -# - -define android::update($keyword) { - include android - - if ( $::id == 'root' ) { - Exec { user => $android::user } - } - - $proxy_host = $android::proxy_host ? { undef => '', default => "--proxy-host ${android::proxy_host}" } - $proxy_port = $android::proxy_port ? { undef => '', default => "--proxy-port ${android::proxy_port}" } - - file { "${android::installdir}/expect-install-${title}": - content => template("android/expect-script.erb"), - mode => '0755', - } -> - exec { "update-android-package-tools": - command => "${android::installdir}/expect-install-${title}", - timeout => 0, - onlyif => "${android::paths::toolsdir}/android list sdk -u | grep '${keyword}'", - require => [Class['android::sdk']], - } - -} -