#!/bin/bash # NextCloudPi software configuration # # Copyleft 2017 by Ignacio Nunez Hernanz # GPL licensed (see end of file) * Use at your own risk! # # Usage: # sudo ncp-config # # More at https://ownyourbits.com/2017/03/13/nextcloudpi-gets-nextcloudpi-config/ # source /usr/local/etc/library.sh { function nextcloud-config() { local DIALOG_OK=0 local VERFILE=/var/run/.ncp-latest-version local BACKTITLE="NextCloudPi configuration ver. " local CONFDIR=/usr/local/etc/ncp-config.d/ local DESC # ask for update if outdated test -f /usr/local/etc/ncp-changelog && \ local CHANGELOG=$( head -4 /usr/local/etc/ncp-changelog ) ncp-test-updates 2>/dev/null && \ whiptail --backtitle "$BACKTITLE $( cat /usr/local/etc/ncp-version )" \ --title "NextCloudPi update available" \ --clear --yesno "Update to $( cat $VERFILE )?\n\n$CHANGELOG" \ 15 70 [[ $? -eq $DIALOG_OK ]] && ncp-update while true; do # fill options local LIST=() for item in $CONFDIR/*.sh; do DESC=$( grep "DESCRIPTION=" "$item" | sed 's|^DESCRIPTION="||;s|"$||' ) is_active_script "$item" &>/dev/null && local ON="✓" || local ON=" " LIST+=( "$ON $( basename "$item" .sh )" "$DESC" ) done # launch the selection menu local script script=$( whiptail --backtitle "$BACKTITLE $( cat /usr/local/etc/ncp-version )" \ --title "NextCloudPi Software Configuration Tool (ncp-config)" \ --cancel-button Finish --ok-button Select \ --menu "Select program to configure and activate:" 20 105 10 \ "${LIST[@]}" \ 3>&1 1>&2 2>&3 ) [[ $? -ne $DIALOG_OK ]] || [[ "$script" == "" ]] && return 0 # remove ✓ and spaces script=$( sed 's=✓\| ==g' <<< "$script" ) # launch selected script info_script "$script".sh || continue; configure_script "$script".sh && { echo "Done. Press any key..."; read -r; } done } if [[ ${EUID} -ne 0 ]]; then printf "Must be run as root. Try 'sudo $( basename "$0" )'\n" exit 1 fi nextcloud-config exit $? } # force to read the whole thing into memory, as its contents might change in update.sh # License # # This script 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 2 of the License, or # (at your option) any later version. # # This script 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 this script; if not, write to the # Free Software Foundation, Inc., 59 Temple Place, Suite 330, # Boston, MA 02111-1307 USA