这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 72 additions & 15 deletions dokku-update
Original file line number Diff line number Diff line change
Expand Up @@ -56,35 +56,57 @@ dokku-update-plugin() {
fi
}

main() {
run-update() {
declare PROGRAM_NAME="$(basename "$0")"
declare COMMAND="$1"
local DOKKU_DISTRO PLUGIN_NAME VERSION
declare PARAMETER="$2"
local DOKKU_DISTRO PLUGIN_NAME VERSION SYSTEM_UPDATES

if [[ -f "/etc/os-release" ]]; then
# shellcheck disable=SC1091
DOKKU_DISTRO=$(. /etc/os-release && echo "$ID")
fi

if [[ "$COMMAND" == "version" ]] || [[ "$COMMAND" == "-v" ]]; then
VERSION=UNRELEASED
if [[ -f "/var/lib/dokku-update/VERSION" ]]; then
VERSION="$(cat /var/lib/dokku-update/VERSION)"
fi
echo "dokku-update ${VERSION}"
exit 0
if [[ "$PARAMETER" == "-s" ]]; then
dokku-log-info "Running system updates"
SYSTEM_UPDATES=true
else
dokku-log-info "Updating Dokku"
SYSTEM_UPDATES=false
fi

dokku-log-info "Running system updates"
case "$DOKKU_DISTRO" in
arch)
yay -Syyua
if [ "$SYSTEM_UPDATES" == true ]; then
yay -Syyua
else
yay -Syu docker-image-labeler dokku nginx plugn sshcommand
fi
;;
debian | ubuntu)
apt-get update -qq >/dev/null
apt-get -qq -y dist-upgrade

if [ "$SYSTEM_UPDATES" == true ]; then
apt-get -qq -y dist-upgrade
else
apt-get -qq -y install --only-upgrade docker-image-labeler dokku dokku-event-listener dokku-update gliderlabs-sigil herokuish netrc nginx plugn procfile-util sshcommand
fi
;;
centos | opensuse | rhel)
dokku-log-warn "Updating this operating system is not supported"
centos | rhel)
if [ "$SYSTEM_UPDATES" == true ]; then
yum -y update
else
yum -y update bind-utils cpio curl dos2unix docker-image-labeler git gliderlabs-sigil jq man-db nc netrc nginx plugn procfile-util sshcommand sudo unzip
fi
;;
opensuse)
zypper refresh

if [ "$SYSTEM_UPDATES" == true ]; then
zypper -n update
else
zypper -n update bind-utils cpio curl dos2unix docker-image-labeler git gliderlabs-sigil jq man-db nc netrc nginx plugn procfile-util sshcommand sudo unzip
fi
;;
*)
dokku-log-warn "Updating this operating system is not supported"
Expand All @@ -109,4 +131,39 @@ main() {
dokku cleanup --global
}

main "$@"
print-help() {
echo "Updates Dokku & its dependencies, all enabled plugins and rebuilds all Dokku apps. Optionally installs all other system updates."
echo
echo "Usage: $PROGRAM_NAME [run|version]"
echo " Options:"
echo " version Prints version of $PROGRAM_NAME"
echo " run Triggers the update process; when invoked with optional -s argument, all system updates will be installed"
}

print-version() {
local VERSION

VERSION=UNRELEASED
if [[ -f "/var/lib/dokku-update/VERSION" ]]; then
VERSION="$(cat /var/lib/dokku-update/VERSION)"
fi
echo "dokku-update ${VERSION}"
}

main() {
declare COMMAND="$1"

case "${COMMAND}" in
run)
run-update "$@"
;;
--version | version | -v)
print-version
;;
*)
print-help
;;
esac
}

main "$@"