/// <summary> /// Extracts all the file resources to the specified base path. /// </summary> public static void ExtractAll() { var basePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); var executablePermissions = SysCall.StringToInteger("0777", IntPtr.Zero, 8); foreach (var resourceName in ResourceNames) { var filename = resourceName.Substring($"{typeof(EmbeddedResources).Namespace}.".Length); var targetPath = Path.Combine(basePath, filename); if (File.Exists(targetPath)) { return; } using (var stream = typeof(EmbeddedResources).Assembly .GetManifestResourceStream(resourceName)) { using (var outputStream = File.OpenWrite(targetPath)) { stream?.CopyTo(outputStream); } try { SysCall.Chmod(targetPath, (uint)executablePermissions); } catch { /* Ignore */ } } } }