mynode/rootfs/standard/usr/bin/mynode-local-upgrade

56 lines
1.4 KiB
Plaintext
Raw Normal View History

#!/bin/bash
# mynode-local-upgrade
# This script needs to be run with sudo
# It reqeusts an IP, downloads the latest rootfs, installs it, and reboots the device
set -e
source /usr/share/mynode/mynode_config.sh
# Prompt for IP
echo "Make sure your PC is running 'make start_file_server'..."
ip_address="error"
if [ "$#" -lt 1 ]; then
echo -n "Dev PC IP Address: "
read ip_address
else
ip_address="$1"
fi
# Delete any existing rootfs tarball and download new one
rm -f mynode_rootfs_${DEVICE_TYPE}.tar.gz
wget http://${ip_address}:8000/mynode_rootfs_${DEVICE_TYPE}.tar.gz -O /tmp/mynode_rootfs_${DEVICE_TYPE}.tar.gz
# Extract on top of mynode fs
rm -rf /tmp/rootfs/
mkdir -p /tmp/rootfs/
tar -xvf /tmp/mynode_rootfs_${DEVICE_TYPE}.tar.gz -C /tmp/rootfs/
# Install files
cp -rf /tmp/rootfs/out/rootfs_${DEVICE_TYPE}/* /
systemctl daemon-reload
# Sleep and sync FS
echo "Syncing filesystem..."
sleep 1
sync
# Restart or reboot
if [ "$#" -ge 2 ]; then
# Restart service
if [ "$2" = "www" ]; then
echo "Restarting www service..."
systemctl restart www
elif [ "$2" = "files" ]; then
echo "Only updating files... Done."
else
# Service not found, reboot
echo "Service not found, doing full upgrade and rebooting device..."
/bin/bash /usr/bin/mynode_post_upgrade.sh
reboot
fi
else
echo "Rebooting device..."
reboot
fi