From 9f999b6887d7e3c891462b9209ae357a077d90f0 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 16 May 2018 13:52:23 +0100 Subject: [PATCH] Functions for adding and removing snap packages --- src/freedombone-app-rocketchat | 5 ++- src/freedombone-utils-snap | 60 ++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 3 deletions(-) create mode 100755 src/freedombone-utils-snap diff --git a/src/freedombone-app-rocketchat b/src/freedombone-app-rocketchat index 3aaad292..66cbc458 100755 --- a/src/freedombone-app-rocketchat +++ b/src/freedombone-app-rocketchat @@ -238,12 +238,11 @@ function remove_rocketchat { remove_ddns_domain "$ROCKETCHAT_DOMAIN_NAME" - snap remove rocketchat-server + remove_snap rocketchat-server } function install_rocketchat { - apt-get -qy install snapd - snap install rocketchat-server + install_snap rocketchat-server install_nodejs rocketchat if [ ! "$ROCKETCHAT_DOMAIN_NAME" ]; then diff --git a/src/freedombone-utils-snap b/src/freedombone-utils-snap new file mode 100755 index 00000000..282cd836 --- /dev/null +++ b/src/freedombone-utils-snap @@ -0,0 +1,60 @@ +#!/bin/bash +# _____ _ _ +# | __|___ ___ ___ _| |___ _____| |_ ___ ___ ___ +# | __| _| -_| -_| . | . | | . | . | | -_| +# |__| |_| |___|___|___|___|_|_|_|___|___|_|_|___| +# +# Freedom in the Cloud +# +# Handling installation of snap packages +# +# License +# ======= +# +# Copyright (C) 2018 Bob Mottram +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +function install_snap { + snap_package="$1" + + if [ ! "$snap_package" ]; then + return + fi + no_of_snaps=$(df | grep -c "/snap/core/") + if [ "$no_of_snaps" -eq 0 ]; then + apt-get -yq install snapd + fi + if ! snap install "$snap_package"; then + echo $"Failed to install snap package $snap_package" + exit 46382854 + fi +} + +function remove_snap { + snap_package="$1" + + if [ ! "$snap_package" ]; then + return + fi + + snap remove "$snap_package" + + no_of_snaps=$(df | grep -c "/snap/") + if [ "$no_of_snaps" -eq 1 ]; then + apt-get -yq remove snapd + fi +} + +# NOTE: deliberately no exit 0