Esempio n. 1
0
	def _lookup(cmd):
		'''Lookup cmd in PATH'''
		if zim.fs.isabs(cmd):
			if zim.fs.isfile(cmd):
				return cmd
			else:
				return None
		elif os.name == 'nt':
			# Check executable extensions from windows environment
			extensions = environ.get_list('PATHEXT', '.com;.exe;.bat;.cmd')
			for dir in environ.get_list('PATH'):
				for ext in extensions:
					file = os.sep.join((dir, cmd + ext))
					if zim.fs.isfile(file) and os.access(file, os.X_OK):
						return file
			else:
				return None
		else:
			# On POSIX no extension is needed to make scripts executable
			for dir in environ.get_list('PATH'):
				file = os.sep.join((dir, cmd))
				if zim.fs.isfile(file) and os.access(file, os.X_OK):
					return file
			else:
				return None
Esempio n. 2
0
 def _lookup(cmd):
     '''Lookup cmd in PATH'''
     if zim.fs.isabs(cmd):
         if zim.fs.isfile(cmd):
             return cmd
         else:
             return None
     elif os.name == 'nt':
         # Check executable extensions from windows environment
         extensions = environ.get_list('PATHEXT', '.com;.exe;.bat;.cmd')
         for dir in environ.get_list('PATH'):
             for ext in extensions:
                 file = os.sep.join((dir, cmd + ext))
                 if zim.fs.isfile(file) and os.access(file, os.X_OK):
                     return file
         else:
             return None
     else:
         # On POSIX no extension is needed to make scripts executable
         for dir in environ.get_list('PATH'):
             file = os.sep.join((dir, cmd))
             if zim.fs.isfile(file) and os.access(file, os.X_OK):
                 return file
         else:
             return None
Esempio n. 3
0
def set_basedirs():
	'''This method sets the global configuration paths for according to the
	freedesktop basedir specification.
	Called automatically when module is first loaded, should be
	called explicitly only when environment has changed.
	'''
	global ZIM_DATA_DIR
	global XDG_DATA_HOME
	global XDG_DATA_DIRS
	global XDG_CONFIG_HOME
	global XDG_CONFIG_DIRS
	global XDG_CACHE_HOME

	# Cast string to folder
	import zim
	zim_data_dir = File(zim.ZIM_EXECUTABLE).dir.subdir('data')
	if zim_data_dir.exists():
		ZIM_DATA_DIR = zim_data_dir

	if os.name == 'nt':
		APPDATA = environ['APPDATA']

		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', APPDATA + r'\zim\data'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', '~/.local/share/')) # Backwards compatibility

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', APPDATA + r'\zim\config'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', '~/.config/')) # Backwards compatibility

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', APPDATA + r'\zim\cache'))
	else:
		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', '~/.local/share/'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', ('/usr/share/', '/usr/local/share/')))

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', '~/.config/'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', ('/etc/xdg/',)))

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', '~/.cache'))
Esempio n. 4
0
	def testGetListPath(self):
		path = environ.get_list('PATH')
		self.assertGreater(len(path), 0)
		for dir in map(Dir, path):
			if dir.exists():
				break
		else:
			raise AssertionError, 'No existing dirs found in PATH: %s' % path
Esempio n. 5
0
def set_basedirs():
	'''This method sets the global configuration paths for according to the
	freedesktop basedir specification.
	Called automatically when module is first loaded, should be
	called explicitly only when environment has changed.
	'''
	global ZIM_DATA_DIR
	global XDG_DATA_HOME
	global XDG_DATA_DIRS
	global XDG_CONFIG_HOME
	global XDG_CONFIG_DIRS
	global XDG_CACHE_HOME

	# Cast string to folder
	import zim
	zim_data_dir = File(zim.ZIM_EXECUTABLE).dir.subdir('data')
	if zim_data_dir.exists():
		ZIM_DATA_DIR = zim_data_dir

	if os.name == 'nt':
		APPDATA = environ['APPDATA']

		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', APPDATA + r'\zim\data'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', '~/.local/share/')) # Backwards compatibility

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', APPDATA + r'\zim\config'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', '~/.config/')) # Backwards compatibility

		try:
			import _winreg as wreg
			wreg_key = wreg.OpenKey(
				wreg.HKEY_CURRENT_USER,
				r'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders')
			cache_dir = str(wreg.QueryValueEx(wreg_key, "Cache")[0].replace(u'%USERPROFILE%', environ['USERPROFILE']))
			wreg.CloseKey(wreg_key)
		except:
			cache_dir = APPDATA + r'\zim\cache'
			# Not using TMP here because it is cleaned too often

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', cache_dir + r'\zim'))
	else:
		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', '~/.local/share/'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', ('/usr/share/', '/usr/local/share/')))

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', '~/.config/'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', ('/etc/xdg/',)))

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', '~/.cache'))
Esempio n. 6
0
def set_basedirs():
    '''This method sets the global configuration paths for according to the
	freedesktop basedir specification.
	Called automatically when module is first loaded, should be
	called explicitly only when environment has changed.
	'''
    global ZIM_DATA_DIR
    global XDG_DATA_HOME
    global XDG_DATA_DIRS
    global XDG_CONFIG_HOME
    global XDG_CONFIG_DIRS
    global XDG_CACHE_HOME

    # Cast string to folder
    import zim
    zim_data_dir = File(zim.ZIM_EXECUTABLE).dir.subdir('data')
    if zim_data_dir.exists():
        ZIM_DATA_DIR = zim_data_dir

    if os.name == 'nt':
        APPDATA = environ['APPDATA']

        XDG_DATA_HOME = Dir(
            environ.get('XDG_DATA_HOME', APPDATA + r'\zim\data'))

        XDG_DATA_DIRS = map(Dir,
                            environ.get_list(
                                'XDG_DATA_DIRS',
                                '~/.local/share/'))  # Backwards compatibility

        XDG_CONFIG_HOME = Dir(
            environ.get('XDG_CONFIG_HOME', APPDATA + r'\zim\config'))

        XDG_CONFIG_DIRS = map(
            Dir, environ.get_list('XDG_CONFIG_DIRS',
                                  '~/.config/'))  # Backwards compatibility

        try:
            import _winreg as wreg
            wreg_key = wreg.OpenKey(
                wreg.HKEY_CURRENT_USER,
                r'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'
            )
            cache_dir = str(
                wreg.QueryValueEx(wreg_key,
                                  "Cache")[0].replace(u'%USERPROFILE%',
                                                      environ['USERPROFILE']))
            wreg.CloseKey(wreg_key)
        except:
            cache_dir = APPDATA + r'\zim\cache'
            # Not using TMP here because it is cleaned too often

        XDG_CACHE_HOME = Dir(environ.get('XDG_CACHE_HOME',
                                         cache_dir + r'\zim'))
    else:
        XDG_DATA_HOME = Dir(environ.get('XDG_DATA_HOME', '~/.local/share/'))

        XDG_DATA_DIRS = map(
            Dir,
            environ.get_list('XDG_DATA_DIRS',
                             ('/usr/share/', '/usr/local/share/')))

        XDG_CONFIG_HOME = Dir(environ.get('XDG_CONFIG_HOME', '~/.config/'))

        XDG_CONFIG_DIRS = map(
            Dir, environ.get_list('XDG_CONFIG_DIRS', ('/etc/xdg/', )))

        XDG_CACHE_HOME = Dir(environ.get('XDG_CACHE_HOME', '~/.cache'))