mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2025-02-28 16:58:03 +01:00
162 lines
No EOL
4.8 KiB
Bash
Executable file
162 lines
No EOL
4.8 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# This is for developing on your RaspiBlitz VM
|
|
|
|
# command info
|
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
|
|
echo "FOR DEVELOPMENT USE ONLY!"
|
|
echo "RaspiBlitzVM Sync with repos in /mnt/vm_shared_folder"
|
|
echo "blitz.vm.sh sync -> syncs all available repos in shared folder"
|
|
echo "blitz.vm.sh sync code -> syncs only the raspiblitz repo"
|
|
echo "blitz.vm.sh sync api -> syncs only the raspiblitz API repo"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
# check runnig as sudo
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "error='please run as root'"
|
|
exit 1
|
|
fi
|
|
|
|
# check if running in vm
|
|
isVM=$(grep -c 'hypervisor' /proc/cpuinfo)
|
|
if [ ${isVM} -eq 0 ]; then
|
|
echo "# This script is only for RaspiBlitz running in a VM"
|
|
echo "error='not a VM'"
|
|
exit 1
|
|
fi
|
|
|
|
# check if shared folder exists
|
|
if [ ! -d "/mnt/vm_shared_folder" ]; then
|
|
echo "# Creating shared folder /mnt/vm_shared_folder"
|
|
mkdir /mnt/vm_shared_folder
|
|
chmod 777 /mnt/vm_shared_folder
|
|
fi
|
|
|
|
# check if shared folder is mounted
|
|
isMounted=$(mount | grep '/mnt/vm_shared_folder')
|
|
if [ ${#isMounted} -eq 0 ]; then
|
|
echo "# Mounting shared folder /mnt/vm_shared_folder"
|
|
mount -t 9p -o trans=virtio share /mnt/vm_shared_folder
|
|
if [ $? -eq 0 ]; then
|
|
echo "# OK - shared folder mounted"
|
|
else
|
|
echo "# make sure to activate shared folder in VM settings (VirtFS)"
|
|
echo "error='mount failed'"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# RASPIBLITZ MAIN REPO
|
|
if [ "$2" == "code" ] || [ "$2" == "" ]; then
|
|
|
|
echo
|
|
echo "# ##### RASPIBLITZ REPO"
|
|
|
|
#check if contains a raspiblitz MAIN repo
|
|
containsRaspiBlitzRepo=$(ls /mnt/vm_shared_folder | grep -wc 'raspiblitz')
|
|
if [ ${containsRaspiBlitzRepo} -eq 0 ]; then
|
|
|
|
echo "# /mnt/vm_shared_folder does not contain a raspiblitz repo"
|
|
echo "# make sure to share the directory that contains the raspiblitz repo - not the repo itself"
|
|
echo "# make sure its named 'raspiblitz' and not 'raspiblitz-main' or 'raspiblitz-v1.7'"
|
|
|
|
if [ "$2" != "" ]; then
|
|
echo "error='no raspiblitz main repo'"
|
|
exit 1
|
|
fi
|
|
|
|
else
|
|
|
|
cd /home/admin
|
|
echo "# COPYING from VM SHARED FOLDER to /home/admin/"
|
|
echo "# - basic admin files"
|
|
rm -f *.sh
|
|
su - admin -c 'cp /mnt/vm_shared_folder/raspiblitz/home.admin/.tmux.conf /home/admin'
|
|
su - admin -c 'cp /mnt/vm_shared_folder/raspiblitz/home.admin/*.* /home/admin 2>/dev/null'
|
|
su - admin -c 'chmod 755 *.sh'
|
|
echo "# - asset directory"
|
|
rm -rf assets
|
|
su - admin -c 'cp -R /mnt/vm_shared_folder/raspiblitz/home.admin/assets /home/admin/assets'
|
|
echo "# - config.scripts directory"
|
|
rm -rf /home/admin/config.scripts
|
|
su - admin -c 'cp -R /mnt/vm_shared_folder/raspiblitz/home.admin/config.scripts /home/admin/config.scripts'
|
|
su - admin -c 'chmod 755 /home/admin/config.scripts/*.sh'
|
|
su - admin -c 'chmod 755 /home/admin/config.scripts/*.py'
|
|
echo "# - setup.scripts directory"
|
|
rm -rf /home/admin/setup.scripts
|
|
su - admin -c 'cp -R /mnt/vm_shared_folder/raspiblitz/home.admin/setup.scripts /home/admin/setup.scripts'
|
|
su - admin -c 'chmod 755 /home/admin/setup.scripts/*.sh'
|
|
su - admin -c 'chmod 755 /home/admin/config.scripts/*.py'
|
|
echo "# ******************************************"
|
|
|
|
if [ "$2" != "" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
fi
|
|
fi
|
|
|
|
# RASPIBLITZ API REPO
|
|
if [ "$2" == "api" ] || [ "$2" == "" ]; then
|
|
|
|
echo
|
|
echo "# ##### RASPIBLITZ API REPO"
|
|
|
|
# check if blitzapi service is enabled
|
|
systemctl is-enabled blitzapi 2>/dev/null
|
|
notInstalled=$?
|
|
|
|
#check if contains a raspiblitz API repo
|
|
containsApiRepo=$(ls /mnt/vm_shared_folder | grep -wc 'blitz_api')
|
|
if [ ${containsApiRepo} -eq 0 ]; then
|
|
|
|
echo "# /mnt/vm_shared_folder does not contain a api repo"
|
|
echo "# make sure to share the directory that contains the api repo - not the repo itself"
|
|
echo "# make sure its named 'blitz_api'"
|
|
|
|
if [ "$2" != "" ]; then
|
|
echo "error='no raspiblitz api repo'"
|
|
exit 1
|
|
fi
|
|
|
|
elif [ ${notInstalled} -gt 0 ]; then
|
|
|
|
echo "# blitzapi service is not installed or enabled - skipping"
|
|
if [ "$2" != "" ]; then
|
|
echo "error='blitzapi service not enabled'"
|
|
exit 1
|
|
fi
|
|
|
|
else
|
|
|
|
|
|
echo "# TODO: Not implemented yet - use /script/updateBlitzAPI.sh instead to sync from host to VM"
|
|
|
|
#echo "# Stopping blitzapi service"
|
|
#systemctl stop blitzapi
|
|
#echo "# COPYING from VM SHARED FOLDER to /home/blitzapi/"
|
|
#rm -rf /home/blitzapi/blitz_api
|
|
#cp -R /mnt/vm_shared_folder/blitz_api /home/blitzapi
|
|
#chown -R blitzapi:blitzapi /home/blitzapi/blitz_api
|
|
#cd /home/blitzapi/blitz_api || exit 1
|
|
#su - blitzapi -c './venv/bin/pip install -r requirements.txt'
|
|
#echo "# Starting blitzapi service"
|
|
#systemctl start blitzapi
|
|
|
|
if [ "$2" != "" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if [ "$1" == "sync" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# in case of unknown command
|
|
echo "error='unkown command'"
|
|
exit 1 |