Last active
March 18, 2016 14:12
-
-
Save sam452/6130272 to your computer and use it in GitHub Desktop.
@jfelchner migration for Mac
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
### | |
# Helper function for asking the user a question: | |
# | |
function ask { | |
while true; do | |
if [ "$2" == "Y" ]; then | |
prompt="Y/n" | |
default=Y | |
elif [ "$2" == "N" ]; then | |
prompt="y/N" | |
default=N | |
else | |
prompt="y/n" | |
default= | |
fi | |
echo -n "$1 [$prompt] " | |
read yn | |
if [ -z "$yn" ]; then | |
yn=$default | |
fi | |
case $yn in | |
[Yy]*) return 0 ;; | |
[Nn]*) return 1 ;; | |
esac | |
done | |
} | |
clear | |
SETUP_LOG_FILE=~/Downloads/system_install.log | |
touch $SETUP_LOG_FILE | |
SETUP_PREFERRED_WIRELESS_NETWORK_NAME="Mount Olympus' Peak" | |
if ask "Would you like to process an existing backup image?" N; then | |
SETUP_BACKUP_ENABLED='yes' | |
SETUP_BACKUP_USERNAME="jfelchner" | |
SETUP_BACKUP_SHARE_USERNAME="jfelchner" | |
if [ -z "$SETUP_BACKUP_SHARE_PASSWORD" ]; then | |
echo -n "Enter the password for the backup network share: " | |
stty -echo ; read SETUP_BACKUP_SHARE_PASSWORD ; stty echo | |
fi | |
if [ -z "$SETUP_BACKUP_IMAGE_PASSWORD" ]; then | |
echo -n "Enter the password for the Time Machine backup image: " | |
stty -echo ; read SETUP_BACKUP_IMAGE_PASSWORD ; stty echo | |
fi | |
SETUP_BACKUP_MOUNT_PATH="/Volumes/Backup" | |
SETUP_BACKUP_SHARE_MOUNT_PARAMS="-t afp afp://$SETUP_BACKUP_SHARE_USERNAME:[email protected]/time_machine" | |
SETUP_BACKUP_IMAGE_PATH="$SETUP_BACKUP_MOUNT_PATH Share/poseidon.sparsebundle" | |
SETUP_BACKUP_PATH="$SETUP_BACKUP_MOUNT_PATH Image/Backups.backupdb/poseidon/Latest/poseidon" | |
SETUP_BACKUP_HOME_PATH="$SETUP_BACKUP_MOUNT_PATH/Users/$SETUP_BACKUP_USERNAME" | |
fi | |
clear | |
echo "******************************************************" | |
echo "** Prerun Summary **" | |
echo "******************************************************" | |
echo "" | |
echo "Logging..." | |
echo "" | |
echo " Logging to $SETUP_LOG_FILE. Start your tail now in another tab if you're interested:" | |
echo " tail -f $SETUP_LOG_FILE" | |
echo "" | |
echo "Network..." | |
echo "" | |
echo " If no internet connection is found I will attempt to connect via Wifi to $SETUP_PREFERRED_WIRELESS_NETWORK_NAME." | |
echo "" | |
echo "Backup..." | |
echo "" | |
if [[ -n $SETUP_BACKUP_ENABLED ]]; then | |
echo " You have chosen to process a backup image." | |
echo "" | |
echo " The backup image at $SETUP_BACKUP_PATH will be used" | |
echo " Your backup share will be located at $SETUP_BACKUP_MOUNT_PATH" | |
else | |
echo " You have chosen NOT to process a backup image." | |
fi | |
echo "" | |
read -p "When finished, press any key to continue..." | |
cd ~ | |
clear | |
echo "******************************************************" | |
echo "** System Install Requires Sudo Access **" | |
echo "******************************************************" | |
echo "" | |
sudo -v | |
echo "" | |
echo "Executing sudo keep-alive to prevent it from timing out..." | |
echo "" | |
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null & | |
echo "******************************************************" | |
echo "** Internet Connection **" | |
echo "******************************************************" | |
echo "" | |
ping -c 1 -t 3 www.google.com >> $SETUP_LOG_FILE 2>&1 | |
if [[ $? -ne 0 ]]; then | |
if [[ -n $SETUP_PREFERRED_WIRELESS_NETWORK_NAME ]]; then | |
echo "Attempting to connect to your preferred wireless network..." | |
echo "" | |
if [ -z "$SETUP_PREFERRED_WIRELESS_NETWORK_PASSWORD" ]; then | |
echo -n "Enter the password for your preferred wireless network ($SETUP_PREFERRED_WIRELESS_NETWORK_NAME): " | |
stty -echo ; read SETUP_PREFERRED_WIRELESS_NETWORK_PASSWORD ; stty echo | |
fi | |
hardware_port=`networksetup -listallhardwareports | grep -A 1 "Wi-Fi" | grep Device | cut -c 9-12` | |
networksetup -setairportpower $hardware_port on >> $SETUP_LOG_FILE 2>&1 | |
networksetup -setairportnetwork $hardware_port "$SETUP_PREFERRED_WIRELESS_NETWORK_NAME" "$SETUP_PREFERRED_WIRELESS_NETWORK_PASSWORD" >> $SETUP_LOG_FILE 2>&1 | |
else | |
echo "Your preferred wireless network information was not set." | |
echo "We are not going to attempt to connect you automatically." | |
echo "" | |
read -p "Press any key when you've connected successfully..." | |
fi | |
else | |
echo "You are currently connected to the internet. Yay!" | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** System Update **" | |
echo "******************************************************" | |
echo "" | |
if [[ ! -f ~/.setup_software_update_complete ]]; then | |
echo "Checking for software updates; some of which may require you to restart." | |
echo "" | |
echo "If that is the case, please do so and rerun this script until no more updates are available." | |
echo "" | |
sudo softwareupdate --install --all | |
touch ~/.setup_software_update_complete | |
else | |
echo "Software update has already been run. You know THAT'S right!" | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** iCloud **" | |
echo "******************************************************" | |
echo "" | |
defaults read MobileMeAccounts | grep 'LoggedIn = 1' >> $SETUP_LOG_FILE 2>&1 | |
if [[ $? -eq 1 ]]; then | |
echo "Make sure that iCloud is enabled in both preferences and the Mac App Store." | |
echo "" | |
read -p "When finished, press any key to continue..." | |
else | |
echo "It appears iCloud is enabled. Booyah!" | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** Install XCode **" | |
echo "******************************************************" | |
echo "" | |
if [[ ! -d /Applications/XCode.app ]]; then | |
echo "Open the Mac App Store and install XCode" | |
echo "" | |
echo "Once that's complete, open XCode and install the Command Line Tools" | |
echo "" | |
read -p "When finished, press any key to continue..." | |
else | |
echo 'XCode appears to already be installed! Yippie-Kai-Aye Mother-&^*@$!!!!!' | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** Enable FileVault **" | |
echo "******************************************************" | |
echo "" | |
sudo fdesetup status | grep -E '(FileVault is On)|(Encryption in progress)' >> $SETUP_LOG_FILE 2>&1 | |
if [[ $? -eq 1 ]]; then | |
echo "FileVault is currently NOT enabled." | |
echo "" | |
echo "Enabling FileVault..." | |
echo "" | |
echo "Follow the prompts and DON'T FORGET TO STORE THE RECOVERY KEY SOMEPLACE SAFE!" | |
echo "" | |
sudo fdesetup enable | |
read -p "When finished, restart your system and rerun this script..." | |
else | |
echo "FileVault is currently enabled. :)" | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** Install Little Snitch **" | |
echo "******************************************************" | |
echo "" | |
if [[ ! -d /Applications/Little\ Snitch\ Configuration.app ]]; then | |
echo "" | |
echo "*******************************************************************" | |
echo "* WARNING: This is going to require you to restart your computer. *" | |
echo "* When you restart, rerun this script. *" | |
echo "*******************************************************************" | |
curl --location --output littlesnitch.dmg http://www.obdev.at/downloads/LittleSnitch/LittleSnitch-3.1.1.dmg | |
hdiutil mount -mountpoint /Volumes/Little\ Snitch littlesnitch.dmg | |
open /Volumes/Little\ Snitch/Little\ Snitch\ Installer.app& | |
read -p "Press any key when finished..." | |
else | |
echo "Little Snitch appears to already be installed. Sah-weeeeet!" | |
fi | |
rm ~/littlesnitch.dmg &> /dev/null | |
echo "" | |
echo "******************************************************" | |
echo "** Backup Image **" | |
echo "******************************************************" | |
echo "" | |
if [[ -n $SETUP_BACKUP_ENABLED ]]; then | |
if [[ ! -d "$SETUP_BACKUP_MOUNT_PATH/Library" ]]; then | |
if [[ -n $SETUP_BACKUP_SHARE_MOUNT_PARAMS ]]; then | |
echo "Mounting Backup Share..." | |
mkdir "$SETUP_BACKUP_MOUNT_PATH Share" >> $SETUP_LOG_FILE 2>&1 | |
echo mount $SETUP_BACKUP_SHARE_MOUNT_PARAMS \"$SETUP_BACKUP_MOUNT_PATH Share\" >> $SETUP_LOG_FILE 2>&1 | |
mount $SETUP_BACKUP_SHARE_MOUNT_PARAMS "$SETUP_BACKUP_MOUNT_PATH Share" >> $SETUP_LOG_FILE 2>&1 | |
fi | |
if [[ -n $SETUP_BACKUP_IMAGE_PATH ]]; then | |
echo "Mounting Backup Image..." | |
mkdir "$SETUP_BACKUP_MOUNT_PATH Image" >> $SETUP_LOG_FILE 2>&1 | |
echo hdiutil attach -passphrase $SETUP_BACKUP_IMAGE_PASSWORD -readonly -mountpoint \"$SETUP_BACKUP_MOUNT_PATH Image\" \"$SETUP_BACKUP_IMAGE_PATH\" >> $SETUP_LOG_FILE 2>&1 | |
hdiutil attach -passphrase $SETUP_BACKUP_IMAGE_PASSWORD -readonly -mountpoint "$SETUP_BACKUP_MOUNT_PATH Image" "$SETUP_BACKUP_IMAGE_PATH" >> $SETUP_LOG_FILE 2>&1 | |
fi | |
echo "Linking Backup Directory..." | |
echo ln -s \"$SETUP_BACKUP_PATH\" \"$SETUP_BACKUP_MOUNT_PATH\" >> $SETUP_LOG_FILE 2>&1 | |
ln -s "$SETUP_BACKUP_PATH" "$SETUP_BACKUP_MOUNT_PATH" >> $SETUP_LOG_FILE 2>&1 | |
if [[ ! -d "$SETUP_BACKUP_MOUNT_PATH/Library" ]]; then | |
echo "Could not find directory at \"$SETUP_BACKUP_MOUNT_PATH/Library\"" | |
echo "Backup did not mount properly... Exiting..." | |
exit | |
fi | |
else | |
echo "Backup Image appears to already be mounted... Ka-POW!" | |
fi | |
fi | |
if [[ -n $SETUP_BACKUP_ENABLED ]]; then | |
echo "" | |
echo "******************************************************" | |
echo "** Copy Existing Backup Files - Phase 1 **" | |
echo "** **" | |
echo "** Working and Secure Files **" | |
echo "******************************************************" | |
echo "" | |
if [[ ! -f ~/.setup_backup_files_phase_1_complete ]]; then | |
echo "" | |
echo "Copying Files... (Detailed log is located at $SETUP_LOG_FILE)" | |
echo "" | |
sudo rm -rf ~/Music | |
mkdir ~/Music | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/.fasd" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/.gitconfig" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/.pagekite.rc" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/.vagrant.d" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Books" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Chirrpy" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Desktop" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Documents" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Downloads" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Dropbox" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Library/Fonts" ~/Library/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Movies" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Music" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Pictures" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Repo" ~/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Virtual Machines*" ~/ >> $SETUP_LOG_FILE | |
echo "Copying over Keychain..." | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/Library/Keychains/login.keychain" ~/Library/Keychains/ >> $SETUP_LOG_FILE | |
if [[ ! -h ~/.ssh ]]; then | |
echo "Linking up SSH directory..." | |
ln -s ~/Repo/ssh ~/.ssh >> $SETUP_LOG_FILE 2>&1 | |
echo "Ensuring proper permissions on all SSH files..." | |
find ~/Repo/ssh/ -type f -exec chmod 600 {} \; | |
find ~/Repo/ssh/ -type f -name '*.pub' -exec chmod 644 {} \; | |
echo "" | |
fi | |
touch ~/.setup_backup_files_phase_1_complete | |
else | |
echo "" | |
echo "Backup files have already been copied. Hey-ooooh!" | |
echo "" | |
fi | |
fi | |
echo "******************************************************" | |
echo "** Install Boxen **" | |
echo "******************************************************" | |
echo "" | |
if [[ ! -d /opt/boxen/repo ]]; then | |
sudo mkdir -p /opt/boxen | |
sudo chown `whoami`:staff /opt/boxen | |
git clone [email protected]:thekompanee/boxen.git /opt/boxen/repo | |
else | |
echo "Boxen is already installed. Who dat!?" | |
fi | |
export PATH=/opt/boxen/homebrew/bin:/opt/boxen/homebrew/sbin:$PATH | |
echo "" | |
echo "******************************************************" | |
echo "** Run Boxen **" | |
echo "******************************************************" | |
echo "" | |
cd /opt/boxen/repo | |
./script/boxen | |
### | |
# Boxen completes successfully but returns an error for unknown reasons. | |
# | |
# if [[ $? -ne 0 || $? -ne 2 ]]; then | |
# echo "Boxen did not complete successfully... Exiting..." | |
# exit | |
# fi | |
echo "" | |
echo "******************************************************" | |
echo "** Install Adobe Creative Cloud **" | |
echo "******************************************************" | |
echo "" | |
if [[ ! -h "/Applications/Adobe Application Manager" ]]; then | |
curl --location --output adobe.dmg http://ccmdl.adobe.com/AdobeProducts/AAM/1/osx10/AdobeApplicationManager.dmg | |
hdiutil mount -mountpoint /Volumes/AdobeCS adobe.dmg | |
open /Volumes/AdobeCS/AdobeApplicationManager.app& | |
read -p "Press any key to continue..." | |
hdiutil unmount -force /Volumes/AdobeCS | |
rm ~/adobe.dmg &> /dev/null | |
else | |
echo "The Adobe Application Manager is IN DA HOUSE!" | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** Install App Store Apps **" | |
echo "******************************************************" | |
echo "" | |
open "/Applications/App Store.app"& | |
read -p "Press any key to continue..." | |
if [[ -n $SETUP_BACKUP_ENABLED ]]; then | |
echo "" | |
echo "******************************************************" | |
echo "** Copy Existing Backup Files - Phase 2 **" | |
echo "** **" | |
echo "** Application Preferences **" | |
echo "******************************************************" | |
echo "" | |
if [[ ! -f ~/.setup_backup_files_phase_2_complete ]]; then | |
cp -RXfv "$SETUP_BACKUP_HOME_PATH/.shell/tmp" ~/.shell/ >> $SETUP_LOG_FILE | |
echo "Copying application cache files..." | |
echo "" | |
SETUP_BACKUP_CACHE_DIR="$SETUP_BACKUP_HOME_PATH/Library/Caches" | |
cp -RXfv "$SETUP_BACKUP_CACHE_DIR/com.evernote.Evernote" ~/Library/Caches/ >> $SETUP_LOG_FILE | |
echo "Copying application support files..." | |
echo "" | |
SETUP_BACKUP_APP_SUPPORT_DIR="$SETUP_BACKUP_HOME_PATH/Library/Application Support" | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/Adium 2.0" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/LaunchBar" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/Little Snitch" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/Plex" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/SizeUp" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/Skype" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/Sparrow" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/Transmit" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_APP_SUPPORT_DIR/Viscosity" ~/Library/Application\ Support/ >> $SETUP_LOG_FILE | |
echo "Copying preference files..." | |
echo "" | |
SETUP_BACKUP_PREFERENCES_DIR="$SETUP_BACKUP_HOME_PATH/Library/Preferences" | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/Railsware.PivotalBooster.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/at.obdev.LaunchBar.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/at.obdev.LittleSnitchConfiguration.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/at.obdev.LittleSnitchNetworkMonitor.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/at.obdev.LittleSnitchSoftwareUpdate.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.adiumX.adiumX.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.araxis.merge.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.codeux.textual.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.evernote.Evernote.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.google.GoogleDrive.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.googlecode.iterm2.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.haystacksoftware.Arq.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.irradiatedsoftware.SizeUp.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.manytricks.NameMangler.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.panic.Transmit.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.pratikkumar.airserver-mac.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.rdio.desktop.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.skype.skype.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.sparrowmailapp.sparrowappcast.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.tsst.simplecomic.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.viscosityvpn.Viscosity.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.vmware.fusion.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.vmware.fusionStartMenu.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/com.wunderkinder.wunderlistdesktop.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/fr.handbrake.HandBrake.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/jp.co.pfu.ScanSnap.V10L10.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/net.conceited.Rubbernet.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/net.elasticthreads.nv.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/net.phere.GitX.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/org.herf.Flux.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/org.niltsh.MPlayerX.plist" ~/Library/Preferences/ | |
cp -Xv "$SETUP_BACKUP_PREFERENCES_DIR/org.pqrs.KeyRemap4MacBook.plist" ~/Library/Preferences/ | |
echo "Copying sandboxed application files..." | |
echo "" | |
SETUP_BACKUP_CONTAINERS_DIR="$SETUP_BACKUP_HOME_PATH/Library/Containers" | |
for sandboxed_app in {cx.c3.theunarchiver,com.reederapp.mac,com.mizage.shush,com.tapbots.TweetbotMac,com.readitlater.PocketMac} ; do | |
sandbox_preference_path="/$sandboxed_app/Data/Library/Preferences" | |
plist_path="$sandbox_preference_path/$sandboxed_app.plist" | |
local_containers_path="~/Library/Containers" | |
local_sandbox_preference_path=$local_containers_path$sandbox_preference_path | |
if [[ -f "$SETUP_BACKUP_CONTAINERS_DIR$plist_path" ]]; then | |
mkdir -p $local_sandbox_preference_path | |
cp -Xv "$SETUP_BACKUP_CONTAINERS_DIR$plist_path" $local_containers_path$plist_path | |
fi | |
done | |
else | |
echo "" | |
echo "Application preferences have already been copied. Heeeeeeee-YAH!" | |
echo "" | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** Copy Existing Backup Files - Phase 3 **" | |
echo "** **" | |
echo "** Other Applications **" | |
echo "******************************************************" | |
echo "" | |
echo "Copying other applications..." | |
echo "" | |
if [[ ! -f ~/.setup_backup_files_phase_3_complete ]]; then | |
cp -RXfv "$SETUP_BACKUP_PATH/Applications/Araxis Merge.app" /Applications/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_PATH/Applications/Name Mangler.app" /Applications/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_PATH/Applications/ScanSnap.app" /Applications/ >> $SETUP_LOG_FILE | |
cp -RXfv "$SETUP_BACKUP_PATH/Applications/AirPort Utility 5.6.app" /Applications/ >> $SETUP_LOG_FILE | |
echo "Backup File Copy Completed..." | |
else | |
echo "" | |
echo "Other applications have already been copied from backup. Sensuous!" | |
echo "" | |
fi | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** Manual Application Steps **" | |
echo "******************************************************" | |
echo "" | |
echo "Each application will open in turn allowing you to" | |
echo "check for updates and perform any necessary manual" | |
echo "configuration steps." | |
echo "" | |
for f in {/Applications/*.app,/usr/local/uc/bin/Undercover\ Registration.app,/System/Library/PreferencePanes/Keyboard.prefPane,/Applications/Adobe\ Photoshop\ CS6/Adobe\ Photoshop\ CS6.app} ; do | |
if [ -d "$f" ]; then | |
app_name=`basename "$f" .app` | |
echo "Opening $app_name ..." | |
case "$app_name" in | |
"Adobe Photoshop CS6") | |
echo " * Install custom keyboard shortcuts (in ~/Documents)" | |
echo " * Install custom shapes (on athena)" | |
;; | |
"Contacts") | |
echo " * Ensure Google Contact Sync is properly setup" | |
;; | |
"Dropbox") | |
echo " * Set the icon to black and white" | |
;; | |
"Firefox") | |
echo " * Start Firefox Sync" | |
;; | |
"GitX") | |
echo " * Install the shell extension" | |
;; | |
"Google Chrome") | |
echo " * Open Chrome and sign in" | |
;; | |
"Google Chrome Canary") | |
echo " * Open Chrome and sign in" | |
;; | |
"iTunes") | |
echo " * Initial Sync of iPhone" | |
;; | |
"Keyboard.prefPane") | |
echo " * Set Caps Lock to Control Key" | |
;; | |
"LaunchBar") | |
echo " * Remove running icon from Dock" | |
;; | |
"Undercover Registration") | |
echo " * Register" | |
;; | |
esac | |
open "$f" | |
echo "" | |
read -p "Press any key to continue..." | |
echo "" | |
fi | |
done | |
if [[ -n $SETUP_BACKUP_ENABLED ]]; then | |
echo "******************************************************" | |
echo "** Unmounting Backup Image **" | |
echo "******************************************************" | |
echo "" | |
echo "Removing Backup Directory..." | |
rm -f "$SETUP_BACKUP_MOUNT_PATH" >> $SETUP_LOG_FILE 2>&1 | |
echo "Unmounting Backup Image..." | |
hdiutil unmount -force "$SETUP_BACKUP_MOUNT_PATH Image" >> $SETUP_LOG_FILE 2>&1 | |
echo "Unmounting Backup Share..." | |
hdiutil unmount -force "$SETUP_BACKUP_MOUNT_PATH Share" >> $SETUP_LOG_FILE 2>&1 | |
fi | |
echo "" | |
echo "******************************************************" | |
echo "** File Permission Verification **" | |
echo "******************************************************" | |
echo "" | |
echo "Removing all extended attributes in the home directory..." | |
sudo xattr -csrv ~/ >> $SETUP_LOG_FILE 2>&1 | |
echo "Ensuring proper ownership of all files in the home directory..." | |
sudo chown -R `whoami`:staff ~/ >> $SETUP_LOG_FILE 2>&1 | |
echo "Ensuring proper ownership of all files in the Applications directory..." | |
sudo chown -R root:wheel /Applications >> $SETUP_LOG_FILE 2>&1 | |
echo "Ensuring proper permissions on all files in the home directory..." | |
sudo chmod -R go= ~/ >> $SETUP_LOG_FILE 2>&1 | |
echo "Ensuring proper permissions on all system files..." | |
sudo diskutil repairPermissions / | |
echo "" | |
echo "******************************************************" | |
echo "** Installation Complete **" | |
echo "******************************************************" | |
echo "" | |
echo "Cleaning up..." | |
echo "" | |
rm -f ~/.setup_software_update_complete | |
rm -f ~/.setup_backup_files_phase_1_complete | |
rm -f ~/.setup_backup_files_phase_2_complete | |
rm -f ~/.setup_backup_files_phase_3_complete | |
echo "" | |
echo "Please Restart Now..." | |
echo "" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment