forked from ungleich-public/cdist
cdist configuration management
Latest manual: https://www.cdi.st/manual/latest/
Home page: https://www.cdi.st
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.3 KiB
77 lines
2.3 KiB
#!/bin/sh -e |
|
# |
|
# 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 <http://www.gnu.org/licenses/>. |
|
# |
|
# |
|
# Upgrade all the already installed packages with the appropriate package |
|
# manager |
|
# |
|
|
|
type="$__object/parameter/type" |
|
|
|
apt_clean="$__object/parameter/apt-clean" |
|
|
|
apt_dist_upgrade="$__object/parameter/apt-dist-upgrade" |
|
|
|
if [ -f "$__object/parameter/apt-with-new-pkgs" ]; then |
|
apt_with_new_pkgs="--with-new-pkgs" |
|
fi |
|
|
|
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|scientific|centos|fedora|redhat) type="yum" ;; |
|
debian|ubuntu|devuan) type="apt" ;; |
|
archlinux) type="pacman" ;; |
|
*) |
|
echo "Don't know how to manage packages on: $os" >&2 |
|
exit 1 |
|
;; |
|
esac |
|
fi |
|
|
|
aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes --no-install-recommends -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\"" |
|
|
|
case "$type" in |
|
yum) |
|
echo "yum --quiet --assumeyes update" |
|
echo "yum --quiet clean all" |
|
;; |
|
apt) |
|
if [ -f "$apt_dist_upgrade" ] |
|
then echo "$aptget dist-upgrade" |
|
else echo "$aptget $apt_with_new_pkgs upgrade" |
|
fi |
|
|
|
if [ -f "$apt_clean" ] |
|
then echo "apt-get --quiet clean" |
|
else echo "apt-get --quiet autoclean" |
|
fi |
|
;; |
|
pacman) |
|
echo "pacman --noprogressbar --noconfirm --sync --sysupgrade" |
|
echo "pacman --noprogressbar --noconfirm --sync --clean" |
|
;; |
|
*) |
|
echo "Don't know how to manage packages on: $os" >&2 |
|
exit 1 |
|
;; |
|
esac
|
|
|