#!/bin/sh -e # # 2016 Steven Armstrong (steven-cdist at armstrong.cc) # # 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 . # os=$(cat "$__global/explorer/os") state=$(cat "$__object/parameter/state") version=$(cat "$__object/parameter/version") case "$os" in centos) # shellcheck source=/dev/null if (. "$__global/explorer/os_release" && [ "${VERSION_ID}" = "7" ]); then __yum_repo docker-ce-stable \ --name 'Docker CE Stable' \ --baseurl "https://download.docker.com/linux/centos/7/\$basearch/stable" \ --enabled \ --gpgcheck 1 \ --gpgkey 'https://download.docker.com/linux/centos/gpg' \ --state "${state}" if [ "$version" != "latest" ]; then require="__yum_repo/docker-ce-stable" __package docker-ce --version "${version}" --state "${state}" else require="__yum_repo/docker-ce-stable" __package docker-ce --state "${state}" fi else echo "CentOS version 7 is required!" >&2 exit 1 fi ;; ubuntu|debian) if [ "${state}" = "present" ]; then __package apt-transport-https __package ca-certificates __package gnupg2 fi __apt_key_uri docker --name "Docker Release (CE deb) " \ --uri "https://download.docker.com/linux/${os}/gpg" --state "${state}" require="__apt_key_uri/docker" __apt_source docker \ --uri "https://download.docker.com/linux/${os}" \ --distribution "$(cat "$__global/explorer/lsb_codename")" \ --state "${state}" \ --component "stable" if [ "$version" != "latest" ]; then require="__apt_source/docker" __package docker-ce --version "${version}" --state "${state}" else require="__apt_source/docker" __package docker-ce --state "${state}" fi ;; devuan) os_version="$(cat "$__global/explorer/os_version")" case "$os_version" in ascii) distributione="stretch" ;; jessie) distribution="jessie" ;; *) echo "Your devuan release ($os_version) is currently not supported by this type (${__type##*/}).">&2 echo "Please contribute an implementation for it if you can." >&2 exit 1 ;; esac if [ "${state}" = "present" ]; then __package apt-transport-https __package ca-certificates __package gnupg2 fi __apt_key_uri docker --name "Docker Release (CE deb) " \ --uri "https://download.docker.com/linux/${os}/gpg" --state "${state}" require="__apt_key_uri/docker" __apt_source docker \ --uri "https://download.docker.com/linux/${os}" \ --distribution "${distribution}" \ --state "${state}" \ --component "stable" if [ "$version" != "latest" ]; then require="__apt_source/docker" __package docker-ce --version "${version}" --state "${state}" else require="__apt_source/docker" __package docker-ce --state "${state}" fi ;; *) echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 echo "Please contribute an implementation for it if you can." >&2 exit 1 ;; esac