From 81bd4c33380b7ce63df05614098e44ffeacbcfb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Catalinas=20Jim=C3=A9nez?= Date: Sun, 21 Sep 2014 17:01:15 +0100 Subject: [PATCH] Add types __package_{update_index,upgrade_all} --- .../__package_update_index/gencode-remote | 49 +++++++++++++++ .../conf/type/__package_update_index/man.text | 52 ++++++++++++++++ .../__package_update_index/parameter/optional | 1 + .../type/__package_update_index/singleton | 0 .../type/__package_upgrade_all/gencode-remote | 59 +++++++++++++++++++ .../conf/type/__package_upgrade_all/man.text | 52 ++++++++++++++++ .../__package_upgrade_all/parameter/optional | 1 + .../conf/type/__package_upgrade_all/singleton | 0 8 files changed, 214 insertions(+) create mode 100755 cdist/conf/type/__package_update_index/gencode-remote create mode 100644 cdist/conf/type/__package_update_index/man.text create mode 100644 cdist/conf/type/__package_update_index/parameter/optional create mode 100644 cdist/conf/type/__package_update_index/singleton create mode 100755 cdist/conf/type/__package_upgrade_all/gencode-remote create mode 100644 cdist/conf/type/__package_upgrade_all/man.text create mode 100644 cdist/conf/type/__package_upgrade_all/parameter/optional create mode 100644 cdist/conf/type/__package_upgrade_all/singleton diff --git a/cdist/conf/type/__package_update_index/gencode-remote b/cdist/conf/type/__package_update_index/gencode-remote new file mode 100755 index 00000000..a120121d --- /dev/null +++ b/cdist/conf/type/__package_update_index/gencode-remote @@ -0,0 +1,49 @@ +#!/bin/sh +# +# 2014 Ricardo Catalinas Jiménez (jimenezrick at gmail.com) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Update the package index with the appropriate package manager +# + +type="$__object/parameter/type" +if [ -f "$type" ]; then + type="$(cat "$type")" +else + # By default determine package manager based on operating system + os="$(cat "$__global/explorer/os")" + case "$os" in + amazon|centos|fedora|redhat) type="yum" ;; + debian|ubuntu) type="apt" ;; + archlinux) type="pacman" ;; + *) + echo "Don't know how to manage packages on: $os" >&2 + exit 1 + ;; + esac +fi + +case "$type" in + yum) ;; + apt) echo "apt-get update" ;; + pacman) echo "pacman --sync --refresh" ;; + *) + echo "Don't know how to manage packages on: $os" >&2 + exit 1 + ;; +esac diff --git a/cdist/conf/type/__package_update_index/man.text b/cdist/conf/type/__package_update_index/man.text new file mode 100644 index 00000000..6435e51d --- /dev/null +++ b/cdist/conf/type/__package_update_index/man.text @@ -0,0 +1,52 @@ +cdist-type__package_update_index(7) +=================================== +Ricardo Catalinas Jiménez + + +NAME +---- +cdist-type__package_update_index - Update the package index + + +DESCRIPTION +----------- +This cdist type allows you to update the package index on the target. +It will automatically use the appropriate package manager. + + +REQUIRED PARAMETERS +------------------- +None + + +OPTIONAL PARAMETERS +------------------- +type:: + The package manager to use. Default is determined based on the $os + explorer variable. + e.g. apt for Debian + yum for Red Hat + pacman for Arch Linux + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Update the package index on the target +__package_update_index + +# Force use of a specific package manager +__package_update_index --type apt +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) + + +COPYING +------- +Copyright \(C) 2014 Ricardo Catalinas Jiménez. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__package_update_index/parameter/optional b/cdist/conf/type/__package_update_index/parameter/optional new file mode 100644 index 00000000..aa80e646 --- /dev/null +++ b/cdist/conf/type/__package_update_index/parameter/optional @@ -0,0 +1 @@ +type diff --git a/cdist/conf/type/__package_update_index/singleton b/cdist/conf/type/__package_update_index/singleton new file mode 100644 index 00000000..e69de29b diff --git a/cdist/conf/type/__package_upgrade_all/gencode-remote b/cdist/conf/type/__package_upgrade_all/gencode-remote new file mode 100755 index 00000000..09404af9 --- /dev/null +++ b/cdist/conf/type/__package_upgrade_all/gencode-remote @@ -0,0 +1,59 @@ +#!/bin/sh +# +# 2014 Ricardo Catalinas Jiménez (jimenezrick at gmail.com) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Upgrade all the already installed packages with the appropriate package +# manager +# + +type="$__object/parameter/type" +if [ -f "$type" ]; then + type="$(cat "$type")" +else + # By default determine package manager based on operating system + os="$(cat "$__global/explorer/os")" + case "$os" in + amazon|centos|fedora|redhat) type="yum" ;; + debian|ubuntu) type="apt" ;; + archlinux) type="pacman" ;; + *) + echo "Don't know how to manage packages on: $os" >&2 + exit 1 + ;; + esac +fi + +case "$type" in + yum) + echo "yum --assumeyes update" + echo "yum clean all" + ;; + apt) + echo "apt-get --yes dist-upgrade" + echo "apt-get autoclean" + ;; + pacman) + echo "pacman --noconfirm --sync --sysupgrade" + echo "pacman --noconfirm --sync --clean" + ;; + *) + echo "Don't know how to manage packages on: $os" >&2 + exit 1 + ;; +esac diff --git a/cdist/conf/type/__package_upgrade_all/man.text b/cdist/conf/type/__package_upgrade_all/man.text new file mode 100644 index 00000000..6d3e1338 --- /dev/null +++ b/cdist/conf/type/__package_upgrade_all/man.text @@ -0,0 +1,52 @@ +cdist-type__package_upgrade_all(7) +================================== +Ricardo Catalinas Jiménez + + +NAME +---- +cdist-type__package_upgrade_all - Upgrade all the installed packages + + +DESCRIPTION +----------- +This cdist type allows you to upgrade all the installed packages on the +target. It will automatically use the appropriate package manager. + + +REQUIRED PARAMETERS +------------------- +None + + +OPTIONAL PARAMETERS +------------------- +type:: + The package manager to use. Default is determined based on the $os + explorer variable. + e.g. apt for Debian + yum for Red Hat + pacman for Arch Linux + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Upgrade all the installed packages on the target +__package_upgrade_all + +# Force use of a specific package manager +__package_upgrade_all --type apt +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) + + +COPYING +------- +Copyright \(C) 2014 Ricardo Catalinas Jiménez. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__package_upgrade_all/parameter/optional b/cdist/conf/type/__package_upgrade_all/parameter/optional new file mode 100644 index 00000000..aa80e646 --- /dev/null +++ b/cdist/conf/type/__package_upgrade_all/parameter/optional @@ -0,0 +1 @@ +type diff --git a/cdist/conf/type/__package_upgrade_all/singleton b/cdist/conf/type/__package_upgrade_all/singleton new file mode 100644 index 00000000..e69de29b