private static void WriteDocumentationTo(IFilesystem filesystem, string fileName, Stream serializedDocumentation) { Log.InfoFormat("Writing '{0}'...", fileName); using (var fileStream = filesystem.CreateFile(fileName)) { serializedDocumentation.CopyTo(fileStream); } }
private (string filePath, string directoryPath) EnsureLinkRegistryFileExists() { var toffeeAppDataDirectoryPath = _toffeeAppDataDirectory.EnsureExists(); var linkRegistryFile = Path.Combine(toffeeAppDataDirectoryPath, "LinkRegistry.csv"); if (!_filesystem.FileExists(linkRegistryFile)) { _filesystem.CreateFile(linkRegistryFile); } return(linkRegistryFile, toffeeAppDataDirectoryPath); }
public ExitCode Run(IFilesystem filesystem, IInternalPluginRepository repository, ExportOptions options) { var folder = options.ExportFolder; Directory.CreateDirectory(folder); using (var file = filesystem.CreateFile(Path.Combine(folder, "import.cmd"))) using (var writer = new StreamWriter(file)) { writer.WriteLine("@echo off"); writer.WriteLine("setlocal"); writer.WriteLine(); writer.WriteLine("set SCRIPT_PATH=%~dp0"); writer.WriteLine(); writer.WriteLine("rem Add users"); foreach (var user in repository.GetAllUsers()) { writer.WriteLine("repository.exe add-user \"{0}\" \"{1}\" --access-token \"{2}\"", user.Username, user.Email, user.AccessToken); } writer.WriteLine(); writer.WriteLine("rem Add plugins"); foreach (var plugin in repository.GetAllPlugins()) { var content = repository.DownloadPlugin(plugin.Identifier); var pluginFileName = $"{plugin.Identifier.Id}.{plugin.Identifier.Version}.tvp"; var pluginFilePath = Path.Combine(folder, pluginFileName); File.WriteAllBytes(pluginFilePath, content); writer.WriteLine("repository.exe add-plugin \"%SCRIPT_PATH%\\{0}\" --user \"{1}\" --publish-timestamp {2}", pluginFileName, plugin.Publisher, plugin.PublishTimestamp.ToString(CultureInfo.InvariantCulture)); } writer.WriteLine("endlocal"); } return(ExitCode.Success); }