public static void Main(string[] args) { var options = PublishSshOptions.ParseArgs(args); if (options.PrintHelp) { PrintHelp(); return; } PrepareOptions(options); var arguments = string.Join(" ", options.Args); if (!PublishLocal(arguments)) { return; } var path = options.Path; var localPath = options.LocalPath; if (!path.EndsWith("/")) { path = path + "/"; } localPath = Path.GetFullPath(localPath) + Path.DirectorySeparatorChar; var localFiles = GetLocalFiles(localPath); Console.WriteLine(); Console.WriteLine($"Uploading {localFiles.Count} files to {options.User}@{options.User}:{options.Port}{options.Path}"); try { var runner = new Runner(options); runner.RunBefore(); var uploader = new Uploader(options); uploader.UploadFiles(path, localFiles); runner.RunAfter(); } catch (Exception ex) { Console.WriteLine($"Error uploading files to server: {ex.Message}"); } Directory.Delete(localPath, true); }
//[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] public static void Main(string[] args) { InvocationTime = DateTime.UtcNow; Console.WriteLine($"Processor Count: {Environment.ProcessorCount}"); var options = PublishSshOptions.ParseArgs(args); if (options.PrintHelp) { PrintHelp(); return; } PrepareOptions(options); var arguments = string.Join(" ", options.Args); var localPath = Path.GetFullPath(options.LocalPath); Directory.CreateDirectory(localPath); using (FileSystemWatcher watcher = new FileSystemWatcher()) { watcher.Path = localPath; watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; // Add event handlers. watcher.Changed += OnChanged; watcher.Created += OnChanged; watcher.Deleted += OnChanged; watcher.Renamed += OnRenamed; // Begin watching. watcher.EnableRaisingEvents = true; // Wait for the user to quit the program. if (!PublishLocal(arguments)) { return; } } var path = options.Path; if (!path.EndsWith("/")) { path = path + "/"; } localPath += Path.DirectorySeparatorChar; var localFiles = ChangedFiles; // GetLocalFiles(localPath); if (localFiles.Count <= 0) { Console.WriteLine($"No files needs to be uploaded!"); } else { Console.WriteLine($"\nUploading {localFiles.Count} files to {options.User}@{options.Host}:{options.Port}{options.Path}"); try { var runner = new Runner(options); runner.RunBefore(); var uploader = new Uploader(options); uploader.UploadFiles(path, localFiles.Select(f => new LocalFile(localPath, f)).ToList()); runner.RunAfter(); } catch (Exception ex) { Console.WriteLine($"Error uploading files to server: {ex.Message}"); } } //Directory.Delete(localPath, true); Console.WriteLine($"\nPublished in {TimeSpan.FromSeconds((int)(DateTime.UtcNow - InvocationTime).TotalSeconds):g} !\nThanks for using dotnet publish-ssh!"); }