78 lines
2.8 KiB
Bash
Executable File
78 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# install.sh
|
|
# ALCPlugFix-Swift
|
|
#
|
|
# Created by Nick on 10/14/20.
|
|
#
|
|
|
|
# Get hold of actual directory
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
|
pledit=/usr/libexec/PlistBuddy
|
|
|
|
# Clean up old installs
|
|
function cleanUpOldInstall() {
|
|
# Remove codec commander based ALCPlugFix
|
|
sudo launchctl unload /Library/LaunchAgents/good.win.ALCPlugFix.plist
|
|
sudo rm -rf /Library/LaunchAgents/good.win.ALCPlugFix.plist
|
|
|
|
# Remove any existing alc-verb install
|
|
sudo launchctl unload /Library/LaunchAgents/com.black-dragon74.ALCPlugFix.plist
|
|
sudo rm -rf /Library/LaunchAgents/com.black-dragon74.ALCPlugFix.plist
|
|
}
|
|
|
|
# Function that exits with an error code and message
|
|
function abort() {
|
|
echo $1
|
|
exit 1
|
|
}
|
|
|
|
echo "** **"
|
|
echo "** Installing ALCPlugFix (AppleALC variant) **"
|
|
echo "** **"
|
|
|
|
echo ""
|
|
read -p "Please drag your config file to the terminal: " inputFile
|
|
|
|
# Verify the input file
|
|
if [[ ! -z $inputFile && -f $inputFile ]]; # If input exists and is of type 'file'
|
|
then
|
|
# Verify if it is a correct PLIST file
|
|
if /usr/bin/plutil "$inputFile" | grep -q "OK";
|
|
then
|
|
# Plist is valid, write the inputfile path to it
|
|
$pledit -c "Set ProgramArguments:1 $inputFile" ./com.black-dragon74.ALCPlugFix.plist || abort "Failed to write to launchd plist"
|
|
else
|
|
abort "The provided file is not a valid plist"
|
|
fi
|
|
else
|
|
abort "Invalid input."
|
|
fi
|
|
|
|
# Set the logs to be ~/Library/Logs
|
|
#$pledit -c "Set StandardOutPath ${HOME}/Library/Logs/alcplugfix_stdout.log" ./com.black-dragon74.ALCPlugFix.plist || abort "Failed to write STDOUT logpath to plist"
|
|
#$pledit -c "Set StandardErrorPath ${HOME}/Library/Logs/alcplugfix_stderr.log" ./com.black-dragon74.ALCPlugFix.plist || abort "Failed to write STDERR logpath to plist"
|
|
|
|
echo ""
|
|
|
|
echo "** Removing old installs **"
|
|
cleanUpOldInstall 2>/dev/null
|
|
|
|
echo "** Copying new files **"
|
|
sudo cp "$DIR/ALCPlugFix-Swift" /usr/local/bin/ALCPlugFix || abort "Failed to copy ALCPlugFix"
|
|
sudo cp "$DIR/com.black-dragon74.ALCPlugFix.plist" /Library/LaunchAgents || abort "Failed to copy launchd plist file"
|
|
|
|
echo "** Setting permissions **"
|
|
sudo chmod 755 /usr/local/bin/ALCPlugFix
|
|
sudo chmod 644 /Library/LaunchAgents/com.black-dragon74.ALCPlugFix.plist
|
|
|
|
sudo chown root:wheel /usr/local/bin/ALCPlugFix
|
|
sudo chown root:wheel /Library/LaunchAgents/com.black-dragon74.ALCPlugFix.plist
|
|
|
|
echo "** Loading launch daemon **"
|
|
sudo launchctl load /Library/LaunchAgents/com.black-dragon74.ALCPlugFix.plist
|
|
|
|
echo "** **"
|
|
echo "** All done. Enjoy! **"
|
|
echo "** **"
|