addFile($file, $relative); } } } // does nothing if the directory already exists public static function make_directory(string $directory) : void { if (!file_exists($directory)) { mkdir($directory, 0777, true); } } public static function load_json(string $path) : array { try { $raw = file_get_contents($path); } catch (Exception $e) { $raw = ""; } return json_decode($raw, true) ?? array(); } public static function to_unix_slashes(string $path) : string { return str_replace("\\", "/", $path); } public static function remove_trailing_slashes(string $path) : string { return rtrim($path, "/"); } public static function to_unix_slashes_without_trail(string $path) : string { return self::remove_trailing_slashes(self::to_unix_slashes($path)); } }