chiark / gitweb /
Use a per-exchange-calendar cache file
[gooswapper] / gooswapper.py
index 3b5300cb9ba806dad33a7de79bb959e225f3e930..24b7a2fd229c59fc400ee7b6852557f79ce4e95e 100644 (file)
@@ -20,6 +20,7 @@
 import sys
 import getpass
 import os
+import os.path
 import pickle
 import collections
 import argparse
@@ -58,10 +59,10 @@ flow = oauth2client.client.OAuth2WebServerFlow(gcal_client_id,
                                                gcal_client_secret,
                                                scope)
 
+gsdir = os.path.expanduser("~/.gooswapper")
+gcal_authpath = gsdir + "/.gooswap_gcal_creds.dat"
 
-gcal_authpath=".gooswap_gcal_creds.dat"
-
-cachepath=".gooswapcache"
+cachepath=None
 
 exchange_credential = None
 
@@ -437,9 +438,17 @@ def main():
     else:
         gcal_id = args.gcalid
 
+    #Make our config dir if it doesn't exist
+    if not os.path.exists(gsdir):
+        os.mkdir(gsdir,0o700)
+    #Cache file is specific to the Exchange calendar
+    global cachepath
+    cachepath = gsdir + "/.cache-%s" % \
+                (args.exchemail.replace('@','_').replace('/','_'))
+
     #log in to the accounts
     ex_account = ex_login(args.exchuser,args.exchemail,
-                          ".gooswapper_exch_conf.dat")
+                          gsdir+"/.gooswapper_exch_conf.dat")
     gcal_account = gcal_login(args)
     gcal_tz = get_gcal_timezone(gcal_account,gcal_id)