Skip to content

Instantly share code, notes, and snippets.

@gregneagle
Created March 5, 2015 18:46
Show Gist options
  • Save gregneagle/7aeb37c658268dafc678 to your computer and use it in GitHub Desktop.
Save gregneagle/7aeb37c658268dafc678 to your computer and use it in GitHub Desktop.
#!/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