def rtSearch(): q = sys.argv[1] if len(q) < 3: return items = map(lambda x: resultParse(x), search_for(q)) feedback = PyAl.Feedback() bundleID = PyAl.bundle() for anItem in items: uid = bundleID + anItem.pop("uid") arg = anItem.pop("arg") feedback.addItem(argsDict={'uid':uid, 'arg':arg}, itemDict=anItem) print feedback
def main(): serversJSON = PyAl.nonvolatile("servers.json") bundleID = PyAl.bundle() with open(serversJSON) as f: servers = json.load(f) if sys.argv[1] == "add": name = sys.argv[2] user = sys.argv[3] pw = sys.argv[4] address = sys.argv[5] path = sys.argv[6] if len(sys.argv) == 8: url = sys.argv[7] if not url.endswith("/"): url = url + "/" else: url = None if not path.endswith("/"): path = path + "/" serverData = {"user": user, "address": address, "path": path, "url": url} servers[name] = serverData k = PyAl.Keychain("%s.%s" % (bundleID, address)) k.storePassword(user, pw) with open(serversJSON, "w") as f: json.dump(servers, f) print "Added %s (%s@%s)" % (name, user, address) if sys.argv[1] == "remove": name = sys.argv[2] delServerData = servers.pop(name) k = PyAl.Keychain("%s.%s" % (bundleID, delServerData["address"])) k.deletePassword(delServerData["user"]) with open(serversJSON, "w") as f: json.dump(servers, f) print "Deleted %s (%s@%s)" % (name, delServerData["user"], delServerData["address"]) if sys.argv[1] == "finder": name = sys.argv[2] serverData = servers[name] k = PyAl.Keychain("%s.%s" % (bundleID, serverData["address"])) serverData["pw"] = k.retrievePassword(serverData["user"]) pathList = subprocess.check_output(["osascript", "getFinder.applescript"]) pathList = pathList.split(" , ") cleanPaths = [] for path in pathList: if len(path): newPath = path[1:] if "'" in newPath: newPath = newPath.replace("'", "") if ", " in newPath: newPath = newPath.replace(", ", "") if "\n" in newPath: newPath = newPath.replace("\n", "") cleanPaths.append(newPath) doUpload(serverData, cleanPaths) if sys.argv[1] == "path": name = sys.argv[2] pathList = sys.argv[3] pathSplit = re.compile(" (?=/|~)") pathList = re.split(pathSplit, pathList) for path in pathList: if "~" in path: pathList.remove(path) path = os.path.expanduser(path) pathList.append(path) serverData = servers[name] k = PyAl.Keychain("%s.%s" % (bundleID, serverData["address"])) serverData["pw"] = k.retrievePassword(serverData["user"]) doUpload(serverData, pathList) if sys.argv[1] == "setdefault": name = sys.argv[2] serverData = servers[name] servers["default"] = serverData with open(serversJSON, "w") as f: json.dump(servers, f) print "Designated %s (%s@%s) default." % (name, serverData["user"], serverData["address"]) if sys.argv[1] == "default": path = sys.argv[2] pathList = path.split("\t") try: serverData = servers["default"] except KeyError: print "No default server designated." return k = PyAl.Keychain("%s.%s" % (bundleID, serverData["address"])) serverData["pw"] = k.retrievePassword(serverData["user"]) doUpload(serverData, pathList)
def main(): serversJSON = PyAl.nonvolatile("servers.json") bundleID = PyAl.bundle() with open(serversJSON) as f: servers = json.load(f) if sys.argv[1] == "add": name = sys.argv[2] user = sys.argv[3] pw = sys.argv[4] address = sys.argv[5] path = sys.argv[6] if len(sys.argv) == 8: url = sys.argv[7] if not url.endswith("/"): url = url + "/" else: url = None if not path.endswith("/"): path = path + "/" serverData = { "user": user, "address": address, "path": path, "url": url } servers[name] = serverData k = PyAl.Keychain("%s.%s" % (bundleID, address)) k.storePassword(user, pw) with open(serversJSON, "w") as f: json.dump(servers, f) print "Added %s (%s@%s)" % (name, user, address) if sys.argv[1] == "remove": name = sys.argv[2] delServerData = servers.pop(name) k = PyAl.Keychain("%s.%s" % (bundleID, delServerData["address"])) k.deletePassword(delServerData["user"]) with open(serversJSON, "w") as f: json.dump(servers, f) print "Deleted %s (%s@%s)" % (name, delServerData["user"], delServerData["address"]) if sys.argv[1] == "finder": name = sys.argv[2] serverData = servers[name] k = PyAl.Keychain("%s.%s" % (bundleID, serverData["address"])) serverData["pw"] = k.retrievePassword(serverData["user"]) pathList = subprocess.check_output( ["osascript", "getFinder.applescript"]) pathList = pathList.split(" , ") cleanPaths = [] for path in pathList: if len(path): newPath = path[1:] if "'" in newPath: newPath = newPath.replace("'", "") if ", " in newPath: newPath = newPath.replace(", ", "") if "\n" in newPath: newPath = newPath.replace("\n", "") cleanPaths.append(newPath) doUpload(serverData, cleanPaths) if sys.argv[1] == "path": name = sys.argv[2] pathList = sys.argv[3] pathSplit = re.compile(" (?=/|~)") pathList = re.split(pathSplit, pathList) for path in pathList: if "~" in path: pathList.remove(path) path = os.path.expanduser(path) pathList.append(path) serverData = servers[name] k = PyAl.Keychain("%s.%s" % (bundleID, serverData["address"])) serverData["pw"] = k.retrievePassword(serverData["user"]) doUpload(serverData, pathList) if sys.argv[1] == "setdefault": name = sys.argv[2] serverData = servers[name] servers["default"] = serverData with open(serversJSON, "w") as f: json.dump(servers, f) print "Designated %s (%s@%s) default." % (name, serverData["user"], serverData["address"]) if sys.argv[1] == "default": path = sys.argv[2] pathList = path.split("\t") try: serverData = servers["default"] except KeyError: print "No default server designated." return k = PyAl.Keychain("%s.%s" % (bundleID, serverData["address"])) serverData["pw"] = k.retrievePassword(serverData["user"]) doUpload(serverData, pathList)