Пример #1
0
        private static void WriteDocumentationTo(IFilesystem filesystem, string fileName,
                                                 Stream serializedDocumentation)
        {
            Log.InfoFormat("Writing '{0}'...", fileName);

            using (var fileStream = filesystem.CreateFile(fileName))
            {
                serializedDocumentation.CopyTo(fileStream);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }