diff --git a/CHANGELOG.md b/CHANGELOG.md index f7ad78cf..d7e63e7e 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ This project adheres to [Semantic Versioning](http://semver.org/). *This release is scheduled to be released on 2020-04-01.* +### Deleted +- cleanup installers folder, remove externalized scripts + ### Added - Finnish translation for "PRECIP", "UPDATE_INFO_MULTIPLE" and "UPDATE_INFO_SINGLE". diff --git a/installers/dumpactivemodules.js b/installers/dumpactivemodules.js deleted file mode 100644 index e32f8415..00000000 --- a/installers/dumpactivemodules.js +++ /dev/null @@ -1,15 +0,0 @@ -const config = require('../config/config.js');const fs=require('fs'); -for(let m of config.modules){ - if(!(m.disabled || false)){ - try { - let f=fs.statSync(m.module); - if(f.isDirectory()){ - f1=fs.statSync(m.module+'/package.json'); - if (f1.isFile()){ - console.log(m.module); - } - } - } - catch (ex) {} - } -} \ No newline at end of file diff --git a/installers/fixuppm2.sh b/installers/fixuppm2.sh deleted file mode 100755 index 6631ac83..00000000 --- a/installers/fixuppm2.sh +++ /dev/null @@ -1,183 +0,0 @@ -#!/bin/bash -# Define the tested version of Node.js. -NODE_TESTED="v10.1.0" -NPM_TESTED="V6.0.0" -USER=`whoami` -PM2_FILE=pm2_MagicMirror.json -mac=$(uname -s) -if [ $mac == 'Darwin' ]; then - cmd=greadlink -else - cmd=readlink -fi - -if [ -d ~/MagicMirror ]; then - # put the log where the script is located - logdir=$(dirname $($cmd -f "$0")) - # if the script was execute from the web - if [[ $logdir != *"MagicMirror/installers"* ]]; then - # use the MagicMirror/installers folder - cd ~/MagicMirror/installers >/dev/null - logdir=$(pwd) - cd - >/dev/null - fi - logfile=$logdir/pm2_setup.log - echo the log will be saved in $logfile - date +"pm2 setup starting - %a %b %e %H:%M:%S %Z %Y" >>$logfile - echo system is $(uname -a) >> $logfile - if [ "$mac" == "Darwin" ]; then - echo the os is macOS $(sw_vers -productVersion) >> $logfile - else - echo the os is $(lsb_release -a 2>/dev/null) >> $logfile - fi - node_installed=$(which node) - if [ "$node_installed." == "." ]; then - # node not installed - echo Installing node >>$logfile - if [ $mac == 'Darwin' ]; then - brew install node - else - NODE_STABLE_BRANCH="10.x" - curl -sL https://deb.nodesource.com/setup_$NODE_STABLE_BRANCH | sudo -E bash - - sudo apt-get install -y nodejs - fi - fi - node_version=$(node -v) - echo node version $node_version >>$logfile - npm_installed=$(which npm) - if [ "$npm_installed." == "." ]; then - # npm not installed - echo Installing npm >>$logfile - if [ $mac != 'Darwin' ]; then - sudo apt-get install -y npm - fi - fi - # get latest - echo force installing latest npm version via npm >>$logfile - #sudo npm i -g npm - npm_version=$(npm -v) - echo npm version $npm_version >>$logfile - # assume pm2 will be found on the path - pm2cmd=pm2 - up="" - if [ $mac == 'Darwin' ]; then - up="--unsafe-perm" - launchctl=launchctl - launchctl_path=$(which $launchctl) - `export PATH=$PATH:${launchctl_path%/$launchctl}` - fi - # check to see if already installed - pm2_installed=$(which $pm2cmd) - if [ "$pm2_installed." != "." ]; then - # does it work? - echo pm2 installed >> $logfile - pm2_fails=$(pm2 list | grep -i -m 1 "App Name" | wc -l ) - if [ $pm2_fails != 1 ]; then - # uninstall it - echo pm2 installed, but does not work, uninstalling >> $logfile - sudo npm uninstall $up -g pm2 - # force reinstall - pm2_installed= - fi - fi - # in not installed - if [ "$pm2_installed." == "." ]; then - # install it. - echo pm2 not installed, installing >>$logfile - result=$(sudo npm install $up -g pm2) - # if this is a mac - if [ $mac == 'Darwin' ]; then - echo this is a mac, fixup for path >>$logfile - # get the location of pm2 install - # parse the npm install output to get the command - pm2cmd=`echo $result | awk -F - '{print $1}' | tr -d '[:space:]'` - c='/pm2' - # get the path only - echo ${pm2cmd%$c} >installers/pm2path - fi - fi - # remove MagicMirror if defined - $pm2cmd delete MagicMirror >/dev/null 2>&1 - cd ~/MagicMirror - echo get the pm2 platform specific startup command >>$logfile - # get the platform specific pm2 startup command - v=$($pm2cmd startup | tail -n 1) - if [ $mac != 'Darwin' ]; then - # check to see if we can get the OS package name (Ubuntu) - if [ $(which lsb_release| wc -l) >0 ]; then - # fix command - # if ubuntu 18.04, pm2 startup gets something wrong - if [ $(lsb_release -r | grep -m1 18.04 | wc -l) > 0 ]; then - v=$(echo $v | sed 's/\/bin/\/bin:\/bin/') - fi - fi - fi - echo startup command = $v >>$logfile - # execute the command returned - $v 2>&1 >>$logfile - echo pm2 startup command done >>$logfile - # is this is mac - # need to fix pm2 startup, only on catalina - if [ $mac == 'Darwin' ]; then - if [ $(sw_vers -productVersion | head -c 6) == '10.15.' ]; then - # only do if the faulty tag is present (pm2 may fix this, before the script is fixed) - if [ $(grep -m 1 UserName /Users/$USER/Library/LaunchAgents/pm2.$USER.plist | wc -l) -eq 1 ]; then - # copy the pm2 startup file config - cp /Users/$USER/Library/LaunchAgents/pm2.$USER.plist . - # edit out the UserName key/value strings - sed -e '/UserName/{N;d;}' pm2.$USER.plist > pm2.$USER.plist.new - # copy the file back - sudo cp pm2.$USER.plist.new /Users/$USER/Library/LaunchAgents/pm2.$USER.plist - fi - fi - fi - - # if the user is no pi, we have to fixup the pm2 json file - echo configure the pm2 config file for MagicMirror >>$logfile - if [ "$USER" != "pi" ]; then - echo the user is not pi >>$logfile - # go to the installers folder` - cd installers - # edit the startup script for the right user - echo change mm.sh >>$logfile - if [ ! -e mm_temp.sh ]; then - echo save copy of mm.sh >> $logfile - cp mm.sh mm_temp.sh - fi - if [ $(grep pi mm_temp.sh | wc -l) -gt 0 ]; then - echo change hard coded pi username >> $logfile - sed 's/pi/'$USER'/g' mm_temp.sh >mm.sh - else - echo change relative home path to hard coded path >> $logfile - hf=$(echo $HOME |sed 's/\//\\\//g') - sed 's/\~/'$hf'/g' mm_temp.sh >mm.sh - fi - # edit the pms config file for the right user - echo change $PM2_FILE >>$logfile - sed 's/pi/'$USER'/g' $PM2_FILE > pm2_MagicMirror_new.json - # make sure to use the updated file - PM2_FILE=pm2_MagicMirror_new.json - # if this is a mac - if [ $mac == 'Darwin' ]; then - # copy the path file to the system paths list - sudo cp ./pm2path /etc/paths.d - # change the name of the home path for mac - sed 's/home/Users/g' $PM2_FILE > pm2_MagicMirror_new1.json - # make sure to use the updated file - PM2_FILE=pm2_MagicMirror_new1.json - fi - echo now using this config file $PM2_FILE >>$logfile - # go back one cd level - cd - >/dev/null - fi - echo start MagicMirror via pm2 now >>$logfile - # tell pm2 to start the app defined in the config file - $pm2cmd start $HOME/MagicMirror/installers/$PM2_FILE - # tell pm2 to save that configuration, for start at boot - echo save MagicMirror pm2 config now >>$logfile - $pm2cmd save - date +"pm2 setup completed - %a %b %e %H:%M:%S %Z %Y" >>$logfile -else - echo It appears MagicMirror has not been installed on this system - echo please run the installer, "raspberry.sh" first -fi \ No newline at end of file diff --git a/installers/mm.sh b/installers/mm.sh deleted file mode 100755 index cc6c4bb3..00000000 --- a/installers/mm.sh +++ /dev/null @@ -1,2 +0,0 @@ -cd ~/MagicMirror -DISPLAY=:0 npm start diff --git a/installers/raspberry.sh b/installers/raspberry.sh deleted file mode 100755 index 4fceaee8..00000000 --- a/installers/raspberry.sh +++ /dev/null @@ -1,569 +0,0 @@ -#!/bin/bash -# This is an installer script for MagicMirror2. It works well enough -# that it can detect if you have Node installed, run a binary script -# and then download and run MagicMirror2. - -if [ $USER == 'root' ]; then - echo Please logon as a user to execute the MagicMirror installation, not root - exit 1 -fi - -echo -e "\e[0m" -echo '$$\ $$\ $$\ $$\ $$\ $$\ $$$$$$\' -echo '$$$\ $$$ | \__| $$$\ $$$ |\__| $$ __$$\' -echo '$$$$\ $$$$ | $$$$$$\ $$$$$$\ $$\ $$$$$$$\ $$$$\ $$$$ |$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ \__/ $$ |' -echo '$$\$$\$$ $$ | \____$$\ $$ __$$\ $$ |$$ _____|$$\$$\$$ $$ |$$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ __$$\ $$$$$$ |' -echo '$$ \$$$ $$ | $$$$$$$ |$$ / $$ |$$ |$$ / $$ \$$$ $$ |$$ |$$ | \__|$$ | \__|$$ / $$ |$$ | \__|$$ ____/' -echo '$$ |\$ /$$ |$$ __$$ |$$ | $$ |$$ |$$ | $$ |\$ /$$ |$$ |$$ | $$ | $$ | $$ |$$ | $$ |' -echo '$$ | \_/ $$ |\$$$$$$$ |\$$$$$$$ |$$ |\$$$$$$$\ $$ | \_/ $$ |$$ |$$ | $$ | \$$$$$$ |$$ | $$$$$$$$\' -echo '\__| \__| \_______| \____$$ |\__| \_______|\__| \__|\__|\__| \__| \______/ \__| \________|' -echo ' $$\ $$ |' -echo ' \$$$$$$ |' -echo ' \______/' -echo -e "\e[0m" - -doInstall=1 -true=1 -false=0 -# Define the tested version of Node.js. -NODE_TESTED="v10.1.0" -NPM_TESTED="V6.0.0" -USER=`whoami` -PM2_FILE=pm2_MagicMirror.json -force_arch= -pm2setup=$false - -trim() { - local var="$*" - # remove leading whitespace characters - var="${var#"${var%%[![:space:]]*}"}" - # remove trailing whitespace characters - var="${var%"${var##*[![:space:]]}"}" - echo -n "$var" -} - - - -mac=$(uname -s) -if [ $mac == 'Darwin' ]; then - echo this is a mac | tee -a $logfile - cmd=greadlink -else - cmd=readlink -fi - - -# put the log where the script is located -logdir=$(dirname $($cmd -f "$0")) -# if the script was execute from the web -if [[ $logdir != *"MagicMirror/installers"* ]]; then - # use the MagicMirror/installers folder, if setup - if [ -d MagicMirror ]; then - cd ~/MagicMirror/installers >/dev/null - logdir=$(pwd) - cd - >/dev/null - else - # use the users home folder if initial install - logdir=$HOME - fi -fi -logfile=$logdir/install.log -echo install log being saved to $logfile - -# Determine which Pi is running. -date +"install starting - %a %b %e %H:%M:%S %Z %Y" >>$logfile -ARM=$(uname -m) -echo installing on $ARM processor system >>$logfile -echo the os is $(lsb_release -a 2>/dev/null) >> $logfile -# Check the Raspberry Pi version. -if [ "$ARM" != "armv7l" ]; then - read -p "this appears not to be a Raspberry Pi 2 or 3, do you want to continue installation (y/N)?" choice - if [[ $choice =~ ^[Nn]$ ]]; then - echo user stopped install on $ARM hardware >>$logfile - echo -e "\e[91mSorry, your Raspberry Pi is not supported." - echo -e "\e[91mPlease run MagicMirror on a Raspberry Pi 2 or 3." - echo -e "\e[91mIf this is a Pi Zero, the setup will configure to run in server only mode wih a local browser." - exit; - fi - #if [ "$ARM" == "armv6l" ]; then - # echo forcing armv71 architecture for pi 0 >>$logfile - # force_arch=-'--arch=armv7l' - # fi -fi - -# Define helper methods. -function command_exists () { type "$1" &> /dev/null ;} -function verlte() { [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ];} -function verlt() { [ "$1" = "$2" ] && return 1 || verlte $1 $2 ;} - -# Update before first apt-get -if [ $mac != 'Darwin' ]; then - echo -e "\e[96mUpdating packages ...\e[90m" | tee -a $logfile - upgrade=$false - update=$(sudo apt-get update 2>&1) - echo $update >> $logfile - update_rc=$? - if [ $update_rc -ne 0 ]; then - echo -e "\e[91mUpdate failed, retrying installation ...\e[90m" | tee -a $logfile - if [ $(echo $update | grep "apt-secure" | wc -l) -eq 1 ]; then - update=$(sudo apt-get update --allow-releaseinfo-change 2>&1) - update_rc=$? - echo $update >> $logfile - if [ $update_rc -ne 0 ]; then - echo "second apt-get update failed" $update | tee -a $logfile - exit 1 - else - echo "second apt-get update completed ok" >> $logfile - upgrade=$true - fi - fi - else - echo "apt-get update completed ok" >> $logfile - upgrade=$true - fi - if [ $upgrade -eq $true ]; then - upgrade_result=$(sudo apt-get upgrade 2>&1) - upgrade_rc=$? - echo apt upgrade result ="rc=$upgrade_rc $upgrade_result" >> $logfile - fi - - # Installing helper tools - echo -e "\e[96mInstalling helper tools ...\e[90m" | tee -a $logfile - sudo apt-get --assume-yes install curl wget git build-essential unzip || exit -fi - -# Check if we need to install or upgrade Node.js. -echo -e "\e[96mCheck current Node installation ...\e[0m" | tee -a $logfile -NODE_INSTALL=false -if command_exists node; then - echo -e "\e[0mNode currently installed. Checking version number." | tee -a $logfile - NODE_CURRENT=$(node -v) - if [ "$NODE_CURRENT." == "." ]; then - NODE_CURRENT="V1.0.0" - echo forcing low Node version >> $logfile - fi - echo -e "\e[0mMinimum Node version: \e[1m$NODE_TESTED\e[0m" | tee -a $logfile - echo -e "\e[0mInstalled Node version: \e[1m$NODE_CURRENT\e[0m" | tee -a $logfile - if verlte $NODE_CURRENT $NODE_TESTED; then - echo -e "\e[96mNode should be upgraded.\e[0m" | tee -a $logfile - NODE_INSTALL=true - - # Check if a node process is currenlty running. - # If so abort installation. - if pgrep "node" > /dev/null; then - echo -e "\e[91mA Node process is currently running. Can't upgrade." | tee -a $logfile - echo "Please quit all Node processes and restart the installer." | tee -a $logfile - echo $(ps -ef | grep node | grep -v \-\-color) | tee -a $logfile - exit; - fi - - else - echo -e "\e[92mNo Node.js upgrade necessary.\e[0m" | tee -a $logfile - fi - -else - echo -e "\e[93mNode.js is not installed.\e[0m" | tee -a $logfile - NODE_INSTALL=true -fi -# Install or upgrade node if necessary. -if $NODE_INSTALL; then - - echo -e "\e[96mInstalling Node.js ...\e[90m" | tee -a $logfile - - # Fetch the latest version of Node.js from the selected branch - # The NODE_STABLE_BRANCH variable will need to be manually adjusted when a new branch is released. (e.g. 7.x) - # Only tested (stable) versions are recommended as newer versions could break MagicMirror. - if [ $mac == 'Darwin' ]; then - brew install node - else - NODE_STABLE_BRANCH="10.x" - # sudo apt-get install --only-upgrade libstdc++6 - node_info=$(curl -sL https://deb.nodesource.com/setup_$NODE_STABLE_BRANCH | sudo -E bash - ) - echo Node release info = $node_info >> $logfile - if [ "$(echo $node_info | grep "not currently supported")." == "." ]; then - sudo apt-get install -y nodejs - else - echo node $NODE_STABLE_BRANCH version installer not available, doing manually >>$logfile - # no longer supported install - sudo apt-get install -y --only-upgrade libstdc++6 >> $logfile - # have to do it manually - node_vnum=$(echo $NODE_STABLE_BRANCH | awk -F. '{print $1}') - # get the highest release number in the stable branch line for this processor architecture - node_ver=$(curl -sL https://unofficial-builds.nodejs.org/download/release/index.tab | grep $ARM | grep -m 1 v$node_vnum | awk '{print $1}') - echo latest release in the $NODE_STABLE_BRANCH family for $ARM is $node_ver >> $logfile - curl -sL https://unofficial-builds.nodejs.org/download/release/$node_ver/node-$node_ver-linux-$ARM.tar.gz >node_release-$node_ver.tar.gz - cd /usr/local - echo using release tar file = node_release-$node_ver.tar.gz >> $logfile - sudo tar --strip-components 1 -xzf $HOME/node_release-$node_ver.tar.gz - cd - >/dev/null - rm ./node_release-$node_ver.tar.gz - fi - # get the new node version number - new_ver=$(node -v 2>&1) - # if there is a failure to get it due to a missing library - if [ $(echo $new_ver | grep "not found" | wc -l) -ne 0 ]; then - # - sudo apt-get install -y --only-upgrade libstdc++6 >> $logfile - fi - echo node version is $(node -v 2>&1 >>$logfile) - fi - echo -e "\e[92mNode.js installation Done! version=$(node -v)\e[0m" | tee -a $logfile -fi -# Check if we need to install or upgrade npm. -echo -e "\e[96mCheck current NPM installation ...\e[0m" | tee -a $logfile -NPM_INSTALL=false -if command_exists npm; then - echo -e "\e[0mNPM currently installed. Checking version number." | tee -a $logfile - NPM_CURRENT='V'$(npm -v) - echo -e "\e[0mMinimum npm version: \e[1m$NPM_TESTED\e[0m" | tee -a $logfile - echo -e "\e[0mInstalled npm version: \e[1m$NPM_CURRENT\e[0m" | tee -a $logfile - if verlte $NPM_CURRENT $NPM_TESTED; then - echo -e "\e[96mnpm should be upgraded.\e[0m" | tee -a $logfile - NPM_INSTALL=true - - # Check if a node process is currently running. - # If so abort installation. - if pgrep "npm" > /dev/null; then - echo -e "\e[91mA npm process is currently running. Can't upgrade." | tee -a $logfile - echo "Please quit all npm processes and restart the installer." | tee -a $logfile - exit; - fi - - else - echo -e "\e[92mNo npm upgrade necessary.\e[0m" | tee -a $logfile - fi - -else - echo -e "\e[93mnpm is not installed.\e[0m" | tee -a $logfile - NPM_INSTALL=true -fi - -# Install or upgrade node if necessary. -if $NPM_INSTALL; then - - echo -e "\e[96mInstalling npm ...\e[90m" | tee -a $logfile - - # Fetch the latest version of npm from the selected branch - # The NODE_STABLE_BRANCH variable will need to be manually adjusted when a new branch is released. (e.g. 7.x) - # Only tested (stable) versions are recommended as newer versions could break MagicMirror. - - #NODE_STABLE_BRANCH="9.x" - #curl -sL https://deb.nodesource.com/setup_$NODE_STABLE_BRANCH | sudo -E bash - - # - # if this is a mac, npm was installed with node - if [ $mac != 'Darwin' ]; then - sudo apt-get install -y npm >>$logfile - fi - # update to the latest. - echo upgrading npm to latest >> $logfile - sudo npm i -g npm >>$logfile - echo -e "\e[92mnpm installation Done! version=V$(npm -v)\e[0m" | tee -a $logfile -fi - -# Install MagicMirror -cd ~ -if [ $doInstall == 1 ]; then - if [ -d "$HOME/MagicMirror" ] ; then - echo -e "\e[93mIt seems like MagicMirror is already installed." | tee -a $logfile - echo -e "To prevent overwriting, the installer will be aborted." | tee -a $logfile - echo -e "Please rename the \e[1m~/MagicMirror\e[0m\e[93m folder and try again.\e[0m" | tee -a $logfile - echo "" - echo -e "If you want to upgrade your installation run \e[1m\e[97mupgrade-script\e[0m from the ~/MagicMirror/installers directory." | tee -a $logfile - echo "" - exit; - fi - - echo -e "\e[96mCloning MagicMirror ...\e[90m" | tee -a $logfile - if git clone --depth=1 https://github.com/MichMich/MagicMirror.git; then - echo -e "\e[92mCloning MagicMirror Done!\e[0m" | tee -a $logfile - else - echo -e "\e[91mUnable to clone MagicMirror." | tee -a $logfile - exit; - fi - - cd ~/MagicMirror || exit - if [ $(grep version package.json | awk -F: '{print $2}') == '"2.9.0",' -a $ARM == 'armv6l' ]; then - git fetch https://github.com/MichMich/MagicMirror.git develop >/dev/null 2>&1 - git branch develop FETCH_HEAD > /dev/null 2>&1 - git checkout develop > /dev/null 2>&1 - fi - echo -e "\e[96mInstalling dependencies ...\e[90m" | tee -a $logfile - if npm install $force_arch; then - echo -e "\e[92mDependencies installation Done!\e[0m" | tee -a $logfile - else - echo -e "\e[91mUnable to install dependencies!" | tee -a $logfile - exit; - fi - - # Use sample config for start MagicMirror - echo setting up initial config.js | tee -a $logfile - cp config/config.js.sample config/config.js -fi -# Check if plymouth is installed (default with PIXEL desktop environment), then install custom splashscreen. -echo -e "\e[96mCheck plymouth installation ...\e[0m" | tee -a $logfile -if command_exists plymouth; then - THEME_DIR="/usr/share/plymouth/themes" - echo -e "\e[90mSplashscreen: Checking themes directory.\e[0m" | tee -a $logfile - if [ -d $THEME_DIR ]; then - echo -e "\e[90mSplashscreen: Create theme directory if not exists.\e[0m" | tee -a $logfile - if [ ! -d $THEME_DIR/MagicMirror ]; then - sudo mkdir $THEME_DIR/MagicMirror - fi - - if sudo cp ~/MagicMirror/splashscreen/splash.png $THEME_DIR/MagicMirror/splash.png && sudo cp ~/MagicMirror/splashscreen/MagicMirror.plymouth $THEME_DIR/MagicMirror/MagicMirror.plymouth && sudo cp ~/MagicMirror/splashscreen/MagicMirror.script $THEME_DIR/MagicMirror/MagicMirror.script; then - echo - if [ "$(which plymouth-set-default-theme)." != "." ]; then - if sudo plymouth-set-default-theme -R MagicMirror; then - echo -e "\e[92mSplashscreen: Changed theme to MagicMirror successfully.\e[0m" | tee -a $logfile - else - echo -e "\e[91mSplashscreen: Couldn't change theme to MagicMirror!\e[0m" | tee -a $logfile - fi - fi - else - echo -e "\e[91mSplashscreen: Copying theme failed!\e[0m" | tee -a $logfile - fi - else - echo -e "\e[91mSplashscreen: Themes folder doesn't exist!\e[0m" | tee -a $logfile - fi -else - echo -e "\e[93mplymouth is not installed.\e[0m" | tee -a $logfile -fi - -# Use pm2 control like a service MagicMirror -read -p "Do you want use pm2 for auto starting of your MagicMirror (y/N)?" choice -if [[ $choice =~ ^[Yy]$ ]]; then - echo install and setup pm2 | tee -a $logfile - # assume pm2 will be found on the path - pm2cmd=pm2 - # check to see if already installed - pm2_installed=$(which $pm2cmd) - up="" - if [ $mac == 'Darwin' ]; then - up="--unsafe-perm" - launchctl=launchctl - launchctl_path=$(which $launchctl) - `export PATH=$PATH:${launchctl_path%/$launchctl}` - fi - # check to see if already installed - pm2_installed=$(which $pm2cmd) - if [ "$pm2_installed." != "." ]; then - # does it work? - pm2_fails=$(pm2 list | grep -i -m 1 "App Name" | wc -l ) - if [ $pm2_fails != 1 ]; then - # uninstall it - echo pm2 installed, but does not work, uninstalling >> $logfile - sudo npm uninstall $up -g pm2 >> $logfile - # force reinstall - pm2_installed= - fi - fi - # if not installed - if [ "$pm2_installed." == "." ]; then - # install it. - echo pm2 not installed, installing >>$logfile - result=$(sudo npm install $up -g pm2 2>&1) - echo pm2 install result $result >>$logfile - # if this is a mac - if [ $mac == 'Darwin' ]; then - echo this is a mac, fixup for path >>$logfile - # get the location of pm2 install - # parse the npm install output to get the command - pm2cmd=`echo $result | awk -F - '{print $1}' | tr -d '[:space:]'` - c='/pm2' - # get the path only - echo ${pm2cmd%$c} >installers/pm2path - fi - fi - echo get the pm2 platform specific startup command >>$logfile - # get the platform specific pm2 startup command - v=$($pm2cmd startup | tail -n 1) - if [ $mac != 'Darwin' ]; then - # check to see if we can get the OS package name (Ubuntu) - if [ $(which lsb_release| wc -l) >0 ]; then - # fix command - # if ubuntu 18.04, pm2 startup gets something wrong - if [ $(lsb_release -r | grep -m1 18.04 | wc -l) > 0 ]; then - v=$(echo $v | sed 's/\/bin/\/bin:\/bin/') - fi - fi - fi - echo startup command = $v >>$logfile - # execute the command returned - $v 2>&1 >>$logfile - echo pm2 startup command done >>$logfile - # is this is mac - # need to fix pm2 startup, only on catalina - if [ $mac == 'Darwin' ];then - if [ $(sw_vers -productVersion | head -c 6) == '10.15.' ]; then - # only do if the faulty tag is present (pm2 may fix this, before the script is fixed) - if [ $(grep -m 1 UserName /Users/$USER/Library/LaunchAgents/pm2.$USER.plist | wc -l) -eq 1 ]; then - # copy the pm2 startup file config - cp /Users/$USER/Library/LaunchAgents/pm2.$USER.plist . - # edit out the UserName key/value strings - sed -e '/UserName/{N;d;}' pm2.$USER.plist > pm2.$USER.plist.new - # copy the file back - sudo cp pm2.$USER.plist.new /Users/$USER/Library/LaunchAgents/pm2.$USER.plist - fi - fi - fi - # if the user is no pi, we have to fixup the pm2 json file - echo configure the pm2 config file for MagicMirror >>$logfile - if [ "$USER" != "pi" ]; then - echo the user is not pi >>$logfile - # go to the installers folder` - cd installers - # edit the startup script for the right user - echo change mm.sh >>$logfile - if [ ! -e mm_temp.sh ]; then - echo save copy of mm.sh >> $logfile - cp mm.sh mm_temp.sh - fi - if [ $(grep pi mm_temp.sh | wc -l) -gt 0 ]; then - echo change hard coded pi username >> $logfile - sed 's/pi/'$USER'/g' mm_temp.sh >mm.sh - else - echo change relative home path to hard coded path >> $logfile - hf=$(echo $HOME |sed 's/\//\\\//g') - sed 's/\~/'$hf'/g' mm_temp.sh >mm.sh - fi - # edit the pms config file for the right user - echo change $PM2_FILE >>$logfile - sed 's/pi/'$USER'/g' $PM2_FILE > pm2_MagicMirror_new.json - # make sure to use the updated file - PM2_FILE=pm2_MagicMirror_new.json - # if this is a mac - if [ $mac == 'Darwin' ]; then - # copy the path file to the system paths list - sudo cp ./pm2path /etc/paths.d - # change the name of the home path for mac - sed 's/home/Users/g' $PM2_FILE > pm2_MagicMirror_new1.json - # make sure to use the updated file - PM2_FILE=pm2_MagicMirror_new1.json - fi - echo now using this config file $PM2_FILE >>$logfile - # go back one cd level - cd - >/dev/null - fi - echo start MagicMirror via pm2 now >>$logfile - # tell pm2 to start the app defined in the config file - $pm2cmd start $HOME/MagicMirror/installers/$PM2_FILE - # tell pm2 to save that configuration, for start at boot - echo save MagicMirror pm2 config now >>$logfile - $pm2cmd save - pm2setup=$true -fi -# Disable Screensaver -choice=n -read -p "Do you want to disable the screen saver? (y/N)?" choice -if [[ $choice =~ ^[Yy]$ ]]; then - # if this is a mac - if [ $mac == 'Darwin' ]; then - # get the current setting - setting=$(defaults -currentHost read com.apple.screensaver idleTime) - # if its on - if [ $setting != 0 ] ; then - # turn it off - echo disable screensaver via mac profile >> $logfile - defaults -currentHost write com.apple.screensaver idleTime 0 - else - echo mac profile screen saver already disabled >> $logfile - fi - else - # find out if some screen saver running - - # get just the running processes and args - # just want the program name (1st token) - # find the 1st with 'saver' in it (should only be one) - # parse with path char, get the last field ( the actual pgm name) - - screen_saver_running=$(ps -A -o args | awk '{print $1}' | grep -m1 [s]aver | awk -F\/ '{print $NF}'); - - # if we found something - if [ "$screen_saver_running." != "." ]; then - # some screensaver running - case "$screen_saver_running" in - mate-screensaver) echo 'mate screen saver' >>$logfile - #killall mate-screensaver >/dev/null 2>&1 - #$ms -d >/dev/null 2>&1 - gsettings set org.mate.screensaver lock-enabled false 2>/dev/null - gsettings set org.mate.screensaver idle-activation-enabled false 2>/dev/null - gsettings set org.mate.screensaver lock_delay 0 2>/dev/null - echo " $screen_saver_running disabled" >> $logfile - DISPLAY=:0 mate-screensaver >/dev/null 2>&1 & - ;; - gnome-screensaver) echo 'gnome screen saver' >>$logfile - gnome_screensaver-command -d >/dev/null 2>&1 - echo " $screen_saver_running disabled" >> $logfile - ;; - xscreensaver) echo 'xscreensaver running' | tee -a $logfile - if [ $(grep -m1 'mode:' ~/.xscreensaver | awk '{print $2}') != 'off' ]; then - sed -i 's/$xsetting/mode: off/' ~/.xscreensaver - echo " xscreensaver set to off" >> $logfile - else - echo " xscreensaver already disabled" >> $logfile - fi - ;; - gsd-screensaver | gsd-screensaver-proxy) - setting=$(gsettings get org.gnome.desktop.screensaver lock-enabled) - setting1=$(gsettings get org.gnome.desktop.session idle-delay) - if [ "$setting $setting1" != 'false uint32 0' ]; then - echo disable screensaver via gsettings was $setting and $setting1>> $logfile - gsettings set org.gnome.desktop.screensaver lock-enabled false - gsettings set org.gnome.desktop.screensaver idle-activation-enabled false - gsettings set org.gnome.desktop.session idle-delay 0 - else - echo gsettings screen saver already disabled >> $logfile - fi - ;; - *) echo "some other screensaver $screen_saver_running" found | tee -a $logfile - echo "please configure it manually" | tee -a $logfile - ;; - esac - elif [ -e "/etc/lightdm/lightdm.conf" ]; then - # if screen saver NOT already disabled? - if [ $(grep 'xserver-command=X -s 0 -dpms' /etc/lightdm/lightdm.conf | wc -l) == 0 ]; then - echo install screensaver via lightdm.conf >> $logfile - sudo sed -i '/^\[Seat:\*\]/a xserver-command=X -s 0 -dpms' /etc/lightdm/lightdm.conf - else - echo screensaver via lightdm already disabled >> $logfile - fi - elif [ $(which gsettings | wc -l) == 1 ]; then - setting=$(gsettings get org.gnome.desktop.screensaver lock-enabled) - setting1=$(gsettings get org.gnome.desktop.session idle-delay) - if [ "$setting $setting1" != 'false uint32 0' ]; then - echo disable screensaver via gsettings was $setting and $setting1>> $logfile - gsettings set org.gnome.desktop.screensaver lock-enabled false - gsettings set org.gnome.desktop.screensaver idle-activation-enabled false - gsettings set org.gnome.desktop.session idle-delay 0 - else - echo gsettings screen saver already disabled >> $logfile - fi - elif [ -d "/etc/xdg/lxsession" ]; then - currently_set=$(grep -m1 '\-dpms' /etc/xdg/lxsession/LXDE-pi/autostart) - if [ "$currently_set." == "." ]; then - echo disable screensaver via lxsession >> $logfile - # turn it off for the future - sudo su -c "echo -e '@xset s noblank\n@xset s off\n@xset -dpms' >> /etc/xdg/lxsession/LXDE-pi/autostart" - # turn it off now - export DISPLAY=:0; xset s noblank;xset s off;xset -dpms - else - echo lxsession screen saver already disabled >> $logfile - fi - else - echo " " - echo -e "unable to disable screen saver, /etc/xdg/lxsession does not exist" | tee -a $logfile - fi - fi -fi -echo " " -if [ $pm2setup -eq $true ]; then - rmessage="pm2 start MagicMirror" -else - rmessage="DISPLAY=:0 npm start" -fi -echo -e "\e[92mWe're ready! Run \e[1m\e[97m$rmessage\e[0m\e[92m from the ~/MagicMirror directory to start your MagicMirror.\e[0m" | tee -a $logfile - -echo " " -echo " " - -date +"install completed - %a %b %e %H:%M:%S %Z %Y" >>$logfile diff --git a/installers/screensaveroff.sh b/installers/screensaveroff.sh deleted file mode 100755 index 24e145ba..00000000 --- a/installers/screensaveroff.sh +++ /dev/null @@ -1,101 +0,0 @@ -#/bin/bash -logfile=~/screensaver.log -mac=$(uname -s) - - if [ $mac == 'Darwin' ]; then - setting=$(defaults -currentHost read com.apple.screensaver idleTime) - if [ $setting != 0 ] ; then - echo disable screensaver via mac profile >> $logfile - defaults -currentHost write com.apple.screensaver idleTime 0 - else - echo mac profile screen saver already disabled >> $logfile - fi - else - # find out if some screen saver running - - # get just the running processes and args - # just want the program name - # find the 1st with 'saver' in it (should only be one) - # if the process name is a path, parse it and get the last field ( the actual pgm name) - - screen_saver_running=$(ps -A -o args | awk '{print $1}' | grep -m1 [s]aver | awk -F\/ '{print $NF}'); - - # if we found something - if [ "$screen_saver_running." != "." ]; then - # some screensaver running - case "$screen_saver_running" in - mate-screensaver) echo 'mate screen saver' >>$logfile - #killall mate-screensaver >/dev/null 2>&1 - #ms=$(which mate-screensaver-command) - #$ms -d >/dev/null 2>&1 - gsettings set org.mate.screensaver lock-enabled false 2>/dev/null - gsettings set org.mate.screensaver idle-activation-enabled false 2>/dev/null - gsettings set org.mate.screensaver lock_delay 0 2>/dev/null - echo " $screen_saver_running disabled" >> $logfile - DISPLAY=:0 mate-screensaver >/dev/null 2>&1 & - ;; - gnome-screensaver) echo 'gnome screen saver' >>$logfile - gnome_screensaver-command -d >/dev/null 2>&1 - echo " $screen_saver_running disabled" >> $logfile - ;; - xscreensaver) echo 'xscreensaver running' | tee -a $logfile - if [ $(grep -m1 'mode:' ~/.xscreensaver | awk '{print $2}') != 'off' ]; then - sed -i 's/$xsetting/mode: off/' ~/.xscreensaver - echo " xscreensaver set to off" >> $logfile - else - echo " xscreensaver already disabled" >> $logfile - fi - ;; - gsd-screensaver | gsd-screensaver-proxy) - setting=$(gsettings get org.gnome.desktop.screensaver lock-enabled) - setting1=$(gsettings get org.gnome.desktop.session idle-delay) - if [ "$setting $setting1" != 'false uint32 0' ]; then - echo disable screensaver via gsettings was $setting and $setting1>> $logfile - gsettings set org.gnome.desktop.screensaver lock-enabled false - gsettings set org.gnome.desktop.screensaver idle-activation-enabled false - gsettings set org.gnome.desktop.session idle-delay 0 - else - echo gsettings screen saver already disabled >> $logfile - fi - ;; - *) echo "some other screensaver $screen_saver_running" found | tee -a $logfile - echo "please configure it manually" | tee -a $logfile - ;; - esac - elif [ -e "/etc/lightdm/lightdm.conf" ]; then - # if screen saver NOT already disabled? - if [ $(grep 'xserver-command=X -s 0 -dpms' /etc/lightdm/lightdm.conf | wc -l) == 0 ]; then - echo install screensaver via lightdm.conf >> $logfile - sudo sed -i '/^\[Seat:\*\]/a xserver-command=X -s 0 -dpms' /etc/lightdm/lightdm.conf - #sudo cp _myconf /etc/lightdm/lightdm.conf - #rm _myconf >/dev/null - else - echo screensaver via lightdm already disabled >> $logfile - fi - elif [ $(which gsettings | wc -l) == 1 ]; then - setting=$(gsettings get org.gnome.desktop.screensaver lock-enabled) - setting1=$(gsettings get org.gnome.desktop.session idle-delay) - if [ "$setting $setting1" != 'false uint32 0' ]; then - echo disable screensaver via gsettings was $setting and $setting1>> $logfile - gsettings set org.gnome.desktop.screensaver lock-enabled false - gsettings set org.gnome.desktop.screensaver idle-activation-enabled false - gsettings set org.gnome.desktop.session idle-delay 0 - else - echo gsettings screen saver already disabled >> $logfile - fi - elif [ -d "/etc/xdg/lxsession" ]; then - currently_set=$(grep -m1 '\-dpms' /etc/xdg/lxsession/LXDE-pi/autostart) - if [ "$currently_set." == "." ]; then - echo disable screensaver via lxsession >> $logfile - # turn it off for the future - sudo su -c "echo -e '@xset s noblank\n@xset s off\n@xset -dpms' >> /etc/xdg/lxsession/LXDE-pi/autostart" - # turn it off now - export DISPLAY=:0; xset s noblank;xset s off;xset -dpms - else - echo lxsession screen saver already disabled >> $logfile - fi - else - echo " " - echo -e "unable to disable screen saver, /etc/xdg/lxsession does not exist" | tee >>$logfile - fi - fi diff --git a/installers/upgrade-script.sh b/installers/upgrade-script.sh deleted file mode 100755 index 88dd2bb7..00000000 --- a/installers/upgrade-script.sh +++ /dev/null @@ -1,361 +0,0 @@ -#!/bin/bash -# only DO npm installs when flag is set to 1 -# test when set to 0 -true=1 -false=0 -doinstalls=$false -force=$false -justActive=$true -test_run=$true -stashed=$false -keyFile=package.json -forced_arch= -git_active_lock='./.git/index.lock' -lf=$'\n' -git_user_name= -git_user_email= - -trim() { - local var="$*" - # remove leading whitespace characters - var="${var#"${var%%[![:space:]]*}"}" - # remove trailing whitespace characters - var="${var%"${var##*[![:space:]]}"}" - echo -n "$var" -} -# is this a mac -mac=$(uname -s) -# get the processor architecture -arch=$(uname -m) -if [ $mac == 'Darwin' ]; then - cmd=greadlink -else - cmd=readlink -fi -if [ -d ~/MagicMirror ]; then - - # put the log where the script is located - logdir=$(dirname $($cmd -f "$0")) - # if the script was execute from the web - if [[ $logdir != *"MagicMirror/installers"* ]]; then - # use the MagicMirror/installers folder - cd ~/MagicMirror/installers >/dev/null - logdir=$(pwd) - cd - >/dev/null - fi - logfile=$logdir/upgrade.log - echo the log will be $logfile - echo >>$logfile - date +"Upgrade started - %a %b %e %H:%M:%S %Z %Y" >>$logfile - echo system is $(uname -a) >> $logfile - echo the os is $(lsb_release -a) >> $logfile - - # because of how its executed from the web, p0 gets overlayed with parm - # check to see if a parm was passed .. easy apply without editing - p0=$0 - # if not 'bash', and some parm specified - if [ $0 != 'bash' -a "$1." != "." ]; then - # then executed locally - # get the parm - p0=$1 - fi - # lowercase it.. watch out, mac stuff doesn't work with tr, etc - p0=$(echo $p0 | cut -c 1-5 | awk '{print tolower($0)}' ) - if [ $p0 == 'apply' ]; then - echo user requested to apply changes >>$logfile - doinstalls=$true - test_run=$false - elif [ $p0 == 'force' ]; then - echo user requested to force apply changes >>$logfile - doinstalls=$true - force=$true - test_run=$false - fi - - if [ $test_run == $true ]; then - echo doing test run = true | tee -a $logfile - else - echo doing test run = false | tee -a $logfile - fi - - # if we want just the modules listed in config.js now - if [ $justActive == $true ]; then - if [ ! -f ~/MagicMirror/installers/dumpactivemodules.js ]; then - echo downloading dumpactivemodules script >> $logfile - curl -sL https://www.dropbox.com/s/wwe6bfg2lcjmj43/dumpactivemodules.js?dl=0 > ~/MagicMirror/installers/dumpactivemodules.js - fi - fi - echo update log will be in $logfile - # used for parsing the array of module names - SAVEIFS=$IFS # Save current IFS - IFS=$'\n' - - echo | tee -a $logfile - # if the git lock file exists and git is not running - if [ -f git_active_lock ]; then - # check to see if git is actually running - git_running=`ps -ef | grep git | grep -v color | grep -v 'grep git' | wc -l` - # if not running - if [ git_running == $false ]; then - # clean up the dangling lock file - echo erasing abandonded git lock file >> $logfile - rm git_active_lock >/dev/null 2>&1 - else - # git IS running, we can't proceed - echo it appears another instance of git is running | tee -a $logfile - # if this is an actual run - if [ $doinstalls == $true ]; then - # force it back to test run - doinstalls = $false - test_run=$true - echo forcing test run mode | tee -a $logfile - echo please resolve git running already and start the update again | tee -a $logfile - fi - fi - fi - - # change to MagicMirror folder - cd ~/MagicMirror - - # save custom.css - cd css - echo "saving custom.css" | tee -a $logfile - cp -p custom.css save_custom.css - cd - >/dev/null - save_alias=$(alias git 2>/dev/null) - lang=$(locale | grep LANGUAGE | awk -F= '{print $2}') - # make sure git respones are in english, so code works - if [ "$lang." != "en_US.UTF-8." ]; then - echo not english or locale not set, set git alias >>$logfile - if [ "$LC_ALL." == "." ]; then - alias git='LANGUAGE=en_US.UTF-8 git' >>$logfile - else - alias git='LC_ALL=en_US.UTF-8 git' >>$logfile - fi - #alias >>$logfile - fi - # get the git remote name - remote=$(git remote 2>/dev/null | awk '{print $1}') - - # if remote name set - if [ "$remote." != "." ]; then - - echo remote name = $remote >>$logfile - - # get the local and remote package.json versions - local_version=$(grep -m1 version package.json | awk -F\" '{print $4}') - remote_version=$(curl -s https://raw.githubusercontent.com/MichMich/MagicMirror/master/package.json | grep -m1 version | awk -F\" '{print $4}') - - # only change if they are different - if [ "$local_version." != "$remote_version." -o $force == $true -o $test_run == $true ]; then - echo upgrading from version $local_version to $remote_version | tee -a $logfile - - # get the latest upgrade - echo fetching latest revisions | tee -a $logfile - git fetch $remote >/dev/null - rc=$? - echo git fetch rc=$rc >>$logfile - if [ $rc -eq 0 ]; then - - # need to get the current branch - current_branch=$(git branch | grep "*" | awk '{print $2}') - echo current branch = $current_branch >>$logfile - - git status 2>&1 >>$logfile - - # get the names of the files that are different locally - diffs=$(git status 2>&1 | grep modified | awk -F: '{print $2}') - - # split names into an array - diffs=($diffs) # split to array $diffs - - # if there are different files (array size greater than zero) - if [ ${#diffs[@]} -gt 0 ]; then - package_lock=0 - echo there are "${#diffs[@]}" local files that are different than the master repo | tee -a $logfile - echo | tee -a $logfile - for file in "${diffs[@]}" - do - echo "$file" | tee -a $logfile - if [ $(echo $file | grep '\-lock.json$' | wc -l) -eq 1 ]; then - package_lock=$true - fi - done - echo | tee -a $logfile - if [ $package_lock -eq 1 ]; then - echo "any *-lock.json files do not need to be saved" - fi - read -p "do you want to save these files for later (Y/n)?" choice - echo save/restore files selection = $choice >> $logfile - if [[ $choice =~ ^[Yy]$ ]]; then - git_user=$(git config --global --get user.email) - if [ "git_user." == "." ]; then - git_user_name="-c user.name=upgrade_script" - git_user_email="-c user.email=script@upgrade.com" - fi - git git_user_name git_user_email stash >>$logfile - stashed=$true - else - for file in "${diffs[@]}" - do - f="$(trim "$file")" - echo restoring $f from repo >> $logfile - if [ $test_run == $false ]; then - git checkout HEAD -- $f | tee -a $logfile - else - echo skipping restore for $f, doing test run | tee -a $logfile - fi - done - fi - else - echo no files different from github version >> $logfile - fi - - # lets test merge, in memory, no changes to working directory or local repo - test_merge_output=$(git merge-tree `git merge-base $current_branch HEAD` HEAD $current_branch | grep "^<<<<<<<\|changed in both") - echo "test merge result rc='$test_merge_output' , if empty, no conflicts" >> $logfile - - # if there were no conflicts reported - if [ "$test_merge_output." == "." ]; then - - if [ $test_run == $false ]; then - # go ahead and merge now - echo "executing merge, apply specified" >> $logfile - # get the text output of merge - merge_output=$(git merge $remote/$current_branch 2>&1) - # and its return code - merge_result=$? - # make any long line readable - merge_output=$(echo $merge_output | tr '|' '\n'| sed "s/create/\\${lf}create/g" | sed "s/mode\ change/\\${lf}mode\ change/g") - echo -e "merge result rc= $merge_result\n $merge_output">> $logfile - else - echo "skipping merge, only test run" >> $logfile - merge_output='' - merge_result=0 - fi - - # if no merge errors - if [ $merge_result == 0 ]; then - # some updates applied - if [ "$merge_output." != 'Already up to date.' -o $test_run == $true ]; then - # update any dependencies for base - if [ $doinstalls == $true ]; then - # if this is a pi zero - echo processor architecture is $arch >> $logfile - if [ "$arch" == "armv6l" ]; then - # force to look like pi 2 - echo forcing architecture armv7l >>$logfile - forced_arch='--arch=armv7l' - fi - echo "updating MagicMirror runtime, please wait" | tee -a $logfile - npm install $forced_arch 2>&1 | tee -a $logfile - done_update=`date +"completed - %a %b %e %H:%M:%S %Z %Y"` - echo npm install $done_update on base >> $ logfile - fi - # process updates for modules after base changed - cd modules - if [ $justActive == $true ]; then - # get the list of ACTIVE modules with package.json files - mtype=active - modules=$(node ../installers/dumpactivemodules.js) - else - # get the list of INSTALLED modules with package.json files - mtype=installed - modules=$(find -maxdepth 2 -name 'package.json' -printf "%h\n" | cut -d'/' -f2 ) - fi - modules=($modules) # split to array $modules - - # if the array has entries in it - if [ ${#modules[@]} -gt 0 ]; then - echo >> $logfile - echo "processing dependency changes for $mtype modules with package.json files" | tee -a $logfile - echo - for module in "${modules[@]}" - do - echo "processing for module" $module please wait | tee -a $logfile - echo '----------------------------------' | tee -a $logfile - # change to that directory - cd $module - # process its dependencies - if [ $doinstalls == $true ]; then - npm install $forced_arch 2>&1| tee -a $logfile - else - echo skipped processing for $module, doing test run | tee -a $logfile - fi - # return to modules folder - cd .. >/dev/null - echo "processing complete for module" $module | tee -a $logfile - echo - done - else - echo "no modules found needing npm refresh" | tee -a $logfile - fi - # return to Magic Mirror folder - cd .. >/dev/null - else - echo "no changes detected for modules, skipping " | tee -a $logfile - fi - else - echo there were merge errors | tee -a $logfile - echo $merge_output | tee -a %logfile - echo you should examine and resolve them | tee -a $logfile - echo using the command git log --oneline --decorate | tee -a $logfile - git log --oneline --decorate | tee -a $logfile - fi - else - echo "there are merge conflicts to be resolved, no changes have been applied" | tee -a $logfile - echo $test_merge_output | tee -a $logfile - fi - else - echo "MagicMirror git fetch failed" | tee -a $logfile - fi - else - echo "local version $local_version already same as master $remote_version" | tee -a $logfile - fi - else - echo "Unable to determine upstream git repository" | tee -a $logfile - fi - # should be in MagicMirror base - cd css - # restore custom.css - echo "restoring custom.css" | tee -a $logfile - cp -p save_custom.css custom.css - rm save_custom.css - cd - >/dev/null - if [ "$lang." != "en_US.UTF-8." ]; then - if [ "$save_alias." != "." ]; then - echo restoring git alias >>$logfile - $save_alias >/dev/null - else - echo removing git alias >>$logfile - unalias git >/dev/null - fi - fi - IFS=$SAVEIFS # Restore IFS - - if [ $stashed == $true ]; then - if [ $test_run == $true ]; then - echo test run, restoring files stashed | tee -a $logfile - git git_user_name git_user_email stash pop >> $logfile - else - echo we stashed a set of files that appear changed from the latest repo versions. you should review them | tee -a $logfile - git stash show --name-only > installers/stashed_files - echo see installers/stashed_files for the list - echo - echo you can use git checkout "stash@{0}" -- filename to extract one file from the stash - echo - echo or git stash pop to restore them all - echo - echo WARNING.. - echo WARNING.. either will overlay the file just installed by the update - echo WARNING.. - fi - fi - # return to original folder - cd - >/dev/null - date +"Upgrade ended - %a %b %e %H:%M:%S %Z %Y" >>$logfile -else - echo It appears MagicMirror has not been installed on this system - echo please run the installer, "raspberry.sh" first -fi -