Created
March 5, 2015 18:46
-
-
Save gregneagle/7aeb37c658268dafc678 to your computer and use it in GitHub Desktop.
This file contains 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
#!/usr/bin/python | |
import datetime | |
import os | |
import subprocess | |
admin_items = [ | |
"/Applications/Launchpad.app", | |
"/Applications/Mission Control.app", | |
"/Applications/Safari.app", | |
"/Applications/Utilities/Activity Monitor.app", | |
"/Applications/Utilities/Console.app", | |
"/Applications/Utilities/Directory Utility.app", | |
"/Applications/Utilities/Disk Utility.app", | |
"/Applications/Utilities/Keychain Access.app", | |
"/Applications/Utilities/Network Utility.app", | |
"/Applications/Utilities/System Information.app", | |
"/Applications/Utilities/Terminal.app", | |
"/Applications/System Preferences.app" | |
] | |
user_items = [ | |
"/Applications/Launchpad.app", | |
"/Applications/Mission Control.app", | |
"/Applications/Safari.app", | |
"/Applications/Adobe Reader.app", | |
"/Applications/GarageBand.app", | |
"/Applications/iMovie.app", | |
"/Applications/iPhoto.app", | |
"/Applications/iTunes.app", | |
"/Applications/iBooks.app", | |
"/Applications/Maps.app", | |
"/Applications/Keynote.app", | |
"/Applications/Numbers.app", | |
"/Applications/Pages.app", | |
"/Applications/Microsoft Office 2011/Microsoft Excel.app", | |
"/Applications/Microsoft Office 2011/Microsoft Outlook.app", | |
"/Applications/Microsoft Office 2011/Microsoft PowerPoint.app", | |
"/Applications/Microsoft Office 2011/Microsoft Word.app" | |
] | |
def dockutil(options): | |
cmd = ['/usr/local/dockutil/dockutil'] | |
cmd.extend(options) | |
subprocess.call(cmd) | |
def additemtodock(pathname): | |
if os.path.exists(pathname): | |
dockutil(['--add', pathname]) | |
username = os.getlogin() | |
mcxtimestamp = "20150305095706" | |
try: | |
storedtimestamp = subprocess.check_output( | |
['/usr/bin/defaults', 'read', 'com.foo.dock', 'mcxtimestamp']) | |
except subprocess.CalledProcessError: | |
storedtimestamp = "00000000000000" | |
currenttime = datetime.datetime.now().strftime('%Y%m%d%H%M%S') | |
if storedtimestamp < mcxtimestamp: | |
if username == "supersecretadminname": | |
item_list = admin_items | |
else: | |
item_list = user_items | |
dockutil(['--remove', 'all']) | |
for item in item_list: | |
additemtodock(item) | |
dockutil(['--add', '/Applications', '--sort', 'name']) | |
subprocess.call( | |
['/usr/bin/defaults', 'write', 'com.foo.dock', 'mcxtimestamp', | |
mcxtimestamp]) | |
else: | |
print ("Stored time %s is later than mcxtimestamp %s" | |
% (storedtimestamp, mcxtimestamp)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment