| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # The contents of this file are subject to the BitTorrent Open Source License
- # Version 1.1 (the License). You may not copy or use this file, in either
- # source code or executable form, except in compliance with the License. You
- # may obtain a copy of the License at http://www.bittorrent.com/license/.
- #
- # Software distributed under the License is distributed on an AS IS basis,
- # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- # for the specific language governing rights and limitations under the
- # License.
- # LaunchPath -- a cross platform way to "open," "launch," or "start"
- # files and directories
- # written by Matt Chisholm
- import os
- import sys
- can_launch_dirs = False
- can_launch_files = False
- posix_browsers = ('gnome-open','konqueror',)
- posix_dir_browsers = ('gmc', 'gentoo',) # these only work on dirs
- default_posix_browser = ''
- def launchpath_nt(path):
- os.startfile(path)
- def launchfile_nt(path):
- do_launchdir = True
- if can_launch_files and not os.path.isdir(path):
- f, ext = os.path.splitext(path)
- ext = ext.upper()
- path_ext = os.environ.get('PATH_EXT')
- blacklist = []
- if path_ext:
- blacklist = path_ext.split(';')
- if ext not in blacklist:
- try:
- launchpath_nt(path)
- except: # WindowsError
- pass
- else:
- do_launchdir = False
-
- if do_launchdir:
- p, f = os.path.split(path)
- launchdir(p)
- def launchpath_mac(path):
- os.spawnlp(os.P_NOWAIT, 'open', 'open', path)
- def launchpath_posix(path):
- if default_posix_browser:
- os.spawnlp(os.P_NOWAIT, default_posix_browser,
- default_posix_browser, path)
- def launchpath(path):
- pass
- def launchdir(path):
- if can_launch_dirs and os.path.isdir(path):
- launchpath(path)
- def launchfile(path):
- if can_launch_files and not os.path.isdir(path):
- launchpath(path)
- else:
- p, f = os.path.split(path)
- launchdir(p)
- if os.name == 'nt':
- can_launch_dirs = True
- can_launch_files = True
- launchpath = launchpath_nt
- launchfile = launchfile_nt
- elif sys.platform == "darwin":
- can_launch_dirs = True
- can_launch_files = True
- launchpath = launchpath_mac
- elif os.name == 'posix':
- for b in posix_browsers:
- if os.system("which '%s' >/dev/null 2>&1" % b.replace("'","\\'")) == 0:
- can_launch_dirs = True
- can_launch_files = True
- default_posix_browser = b
- launchpath = launchpath_posix
- break
- else:
- for b in posix_dir_browsers:
- can_launch_dirs = True
- default_posix_browser = b
- launchpath = launchpath_posix
- break
|