121
									
								
								vendor/dnoegel/php-xdg-base-dir/src/Xdg.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										121
									
								
								vendor/dnoegel/php-xdg-base-dir/src/Xdg.php
									
									
									
									
										vendored
									
									
								
							| @@ -1,121 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace XdgBaseDir; | ||||
|  | ||||
| /** | ||||
|  * Simple implementation of the XDG standard http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html | ||||
|  * | ||||
|  * Based on the python implementation https://github.com/takluyver/pyxdg/blob/master/xdg/BaseDirectory.py | ||||
|  * | ||||
|  * Class Xdg | ||||
|  * @package ShopwareCli\Application | ||||
|  */ | ||||
| class Xdg | ||||
| { | ||||
|     const S_IFDIR = 040000; // directory | ||||
|     const S_IRWXO = 00007;  // rwx other | ||||
|     const S_IRWXG = 00056;  // rwx group | ||||
|     const RUNTIME_DIR_FALLBACK = 'php-xdg-runtime-dir-fallback-'; | ||||
|  | ||||
|     /** | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getHomeDir() | ||||
|     { | ||||
|         return getenv('HOME') ?: (getenv('HOMEDRIVE') . DIRECTORY_SEPARATOR . getenv('HOMEPATH')); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getHomeConfigDir() | ||||
|     { | ||||
|         $path = getenv('XDG_CONFIG_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.config'; | ||||
|  | ||||
|         return $path; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getHomeDataDir() | ||||
|     { | ||||
|         $path = getenv('XDG_DATA_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.local' . DIRECTORY_SEPARATOR . 'share'; | ||||
|  | ||||
|         return $path; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array | ||||
|      */ | ||||
|     public function getConfigDirs() | ||||
|     { | ||||
|         $configDirs = getenv('XDG_CONFIG_DIRS') ? explode(':', getenv('XDG_CONFIG_DIRS')) : array('/etc/xdg'); | ||||
|  | ||||
|         $paths = array_merge(array($this->getHomeConfigDir()), $configDirs); | ||||
|  | ||||
|         return $paths; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array | ||||
|      */ | ||||
|     public function getDataDirs() | ||||
|     { | ||||
|         $dataDirs = getenv('XDG_DATA_DIRS') ? explode(':', getenv('XDG_DATA_DIRS')) : array('/usr/local/share', '/usr/share'); | ||||
|  | ||||
|         $paths = array_merge(array($this->getHomeDataDir()), $dataDirs); | ||||
|  | ||||
|         return $paths; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getHomeCacheDir() | ||||
|     { | ||||
|         $path = getenv('XDG_CACHE_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.cache'; | ||||
|  | ||||
|         return $path; | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public function getRuntimeDir($strict=true) | ||||
|     { | ||||
|         if ($runtimeDir = getenv('XDG_RUNTIME_DIR')) { | ||||
|             return $runtimeDir; | ||||
|         } | ||||
|  | ||||
|         if ($strict) { | ||||
|             throw new \RuntimeException('XDG_RUNTIME_DIR was not set'); | ||||
|         } | ||||
|  | ||||
|         $fallback = sys_get_temp_dir() . DIRECTORY_SEPARATOR . self::RUNTIME_DIR_FALLBACK . getenv('USER'); | ||||
|  | ||||
|         $create = false; | ||||
|  | ||||
|         if (!is_dir($fallback)) { | ||||
|             mkdir($fallback, 0700, true); | ||||
|         } | ||||
|  | ||||
|         $st = lstat($fallback); | ||||
|  | ||||
|         # The fallback must be a directory | ||||
|         if (!$st['mode'] & self::S_IFDIR) { | ||||
|             rmdir($fallback); | ||||
|             $create = true; | ||||
|         } elseif ($st['uid'] != getmyuid() || | ||||
|             $st['mode'] & (self::S_IRWXG | self::S_IRWXO) | ||||
|         ) { | ||||
|             rmdir($fallback); | ||||
|             $create = true; | ||||
|         } | ||||
|  | ||||
|         if ($create) { | ||||
|             mkdir($fallback, 0700, true); | ||||
|         } | ||||
|  | ||||
|         return $fallback; | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 sujitprasad
					sujitprasad