#!/bin/bash # User welcome message echo -e "\n####################################################################" echo '# šŸ‘‹ Welcome, this is the setup script for the battery CLI tool.' echo -e "# Note: this script will ask for your password once or multiple times." echo -e "####################################################################\n\n" # Set environment variables tempfolder=~/.battery-tmp binfolder=/usr/local/bin mkdir -p $tempfolder # Set script value calling_user=${1:-"$USER"} configfolder=/Users/$calling_user/.battery pidfile=$configfolder/battery.pid logfile=$configfolder/battery.log # Ask for sudo once, in most systems this will cache the permissions for a bit sudo echo "šŸ”‹ Starting battery installation" echo -e "[ 1 ] Superuser permissions acquired." # Note: github names zips by -.replace( '/', '-' ) update_branch="main" in_zip_folder_name="battery-$update_branch" batteryfolder="$tempfolder/battery" echo "[ 2 ] Downloading latest version of battery CLI" rm -rf $batteryfolder mkdir -p $batteryfolder curl -sSL -o $batteryfolder/repo.zip "https://github.com/actuallymentor/battery/archive/refs/heads/$update_branch.zip" unzip -qq $batteryfolder/repo.zip -d $batteryfolder cp -r $batteryfolder/$in_zip_folder_name/* $batteryfolder rm $batteryfolder/repo.zip # Move built file to bin folder echo "[ 3 ] Move smc to executable folder" sudo mkdir -p $binfolder sudo cp $batteryfolder/dist/smc $binfolder sudo chown $calling_user $binfolder/smc sudo chmod 755 $binfolder/smc sudo chmod +x $binfolder/smc echo "[ 4 ] Writing script to $binfolder/battery for user $calling_user" sudo cp $batteryfolder/battery.sh $binfolder/battery echo "[ 5 ] Setting correct file permissions" # Set permissions for battery executables sudo chown $calling_user $binfolder/battery sudo chmod 755 $binfolder/battery sudo chmod +x $binfolder/battery # Set permissions for logfiles mkdir -p $configfolder sudo chown $calling_user $configfolder touch $logfile sudo chown $calling_user $logfile sudo chmod 755 $logfile touch $pidfile sudo chown $calling_user $pidfile sudo chmod 755 $pidfile sudo chown $calling_user $binfolder/battery echo "[ 6 ] Setting up visudo declarations" sudo bash $batteryfolder/battery.sh visudo # Remove tempfiles cd ../.. echo "[ 7 ] Removing temp folder $tempfolder" rm -rf $tempfolder echo -e "\nšŸŽ‰ Battery tool installed. Type \"battery help\" for instructions.\n"