#! /usr/bin/env python # # October 20, 2004 by Jay Loden: firefox.py # revised October 28 to check version number for # Firefox .9 series # revised November 11 to work with 1.0 release # # jloden@gmail.com http://jayloden.com/firepy.htm # # call firefox, if firefox is open, open in a new tab # if not open, open firefox with the url # if no arguments given, open new instance at homepage # # This is released under the GPL and is freely availble import sys import os # change firepath to wherever you installed firefox firepath = "/usr/local/firefox/firefox" def chkver(): v = os.popen(firepath + " -V") r = v.readlines() v.close() ret = 'new' for f in r: ver = f.find('.9') if ver >= 0: ret = 'old' return ret # Launch a new instance at url (if no url, open to default homepage def newInst(url=""): if url == "": os.execl(firepath, firepath) else: os.execl(firepath, firepath, url) # launch url into new tab in existing firefox def tabIt(url): ex = "openURL(%s,new-tab)" % (url) #ex = "%s --remote \"openURL(%s,new-tab)\"" % (firepath, url) #oldex = "%s -a firefox --remote \"openURL(%s,new-tab)\"" % (firepath, url) if chkver() == "old": os.spawnl(os.P_NOWAIT, firepath, firepath, "-a", "firefox", "--remote", ex) #os.system(oldex) else: os.spawnl(os.P_NOWAIT, firepath, firepath, "--remote", ex) #os.system(ex) # check if firefox is running, return 1 if yes, 0 if no def chkstat(): ps = os.popen('''ps -A''') x = ps.readlines() ps.close() ret = 0 for y in x: chk = y.find('firefox') if chk >= 0: ret = 1 return ret def main(): if len(sys.argv) == 1: newInst() sys.exit(0) if len(sys.argv) == 2: if chkstat() == 0: newInst(sys.argv[1]) sys.exit(0) elif chkstat() == 1: tabIt(sys.argv[1]) sys.exit(0) main()