From 8467399001521fcb4e22bcfaf5d87a6d7f8af014 Mon Sep 17 00:00:00 2001 From: kislovdm Date: Mon, 27 Apr 2026 00:15:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=BE=D1=80=D0=B3=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .semver.txt | 2 +- MonsterMonitor.sln => src/MonsterMonitor.sln | 2 +- src/{ => MonsterMonitor}/App.config | 0 src/{ => MonsterMonitor}/App_Data/ss/ss.cfg | 0 src/{ => MonsterMonitor}/App_Data/ss/ss.exe | Bin src/{ => MonsterMonitor}/FodyWeavers.xml | 0 src/{ => MonsterMonitor}/FodyWeavers.xsd | 0 .../Models/AppSettings.cs | 4 +- .../MonsterMonitor.csproj | 10 ++- src/{ => MonsterMonitor}/Program.cs | 4 +- .../Services/AppController.cs | 4 +- .../Services/AuthMonitor.cs | 12 ++- .../Services/LogService.cs | 2 +- .../Services/PowerManagementService.cs | 2 +- .../Services/ProcessMonitorService.cs | 2 +- .../Services/SsConfigService.cs | 4 +- .../Services/SshTunnelService.cs | 4 +- src/{ => MonsterMonitor}/UI/MainForm.cs | 8 +- src/{ => MonsterMonitor}/UI/MainForm.resx | 0 src/{ => MonsterMonitor}/UI/SettingsForm.cs | 5 +- .../logistics_tunnel_icon_148216.ico | Bin src/Properties/AssemblyInfo.cs | 31 -------- tools/SetVersion.cmd | 69 +++++++++++------- 23 files changed, 77 insertions(+), 88 deletions(-) rename MonsterMonitor.sln => src/MonsterMonitor.sln (91%) rename src/{ => MonsterMonitor}/App.config (100%) rename src/{ => MonsterMonitor}/App_Data/ss/ss.cfg (100%) rename src/{ => MonsterMonitor}/App_Data/ss/ss.exe (100%) rename src/{ => MonsterMonitor}/FodyWeavers.xml (100%) rename src/{ => MonsterMonitor}/FodyWeavers.xsd (100%) rename src/{ => MonsterMonitor}/Models/AppSettings.cs (99%) rename src/{ => MonsterMonitor}/MonsterMonitor.csproj (78%) rename src/{ => MonsterMonitor}/Program.cs (94%) rename src/{ => MonsterMonitor}/Services/AppController.cs (95%) rename src/{ => MonsterMonitor}/Services/AuthMonitor.cs (85%) rename src/{ => MonsterMonitor}/Services/LogService.cs (96%) rename src/{ => MonsterMonitor}/Services/PowerManagementService.cs (95%) rename src/{ => MonsterMonitor}/Services/ProcessMonitorService.cs (99%) rename src/{ => MonsterMonitor}/Services/SsConfigService.cs (96%) rename src/{ => MonsterMonitor}/Services/SshTunnelService.cs (99%) rename src/{ => MonsterMonitor}/UI/MainForm.cs (97%) rename src/{ => MonsterMonitor}/UI/MainForm.resx (100%) rename src/{ => MonsterMonitor}/UI/SettingsForm.cs (99%) rename src/{ => MonsterMonitor}/logistics_tunnel_icon_148216.ico (100%) delete mode 100644 src/Properties/AssemblyInfo.cs diff --git a/.semver.txt b/.semver.txt index 6d7de6e..21e8796 100644 --- a/.semver.txt +++ b/.semver.txt @@ -1 +1 @@ -1.0.2 +1.0.3 diff --git a/MonsterMonitor.sln b/src/MonsterMonitor.sln similarity index 91% rename from MonsterMonitor.sln rename to src/MonsterMonitor.sln index 0755dd3..79bd2ab 100644 --- a/MonsterMonitor.sln +++ b/src/MonsterMonitor.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.32929.386 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonsterMonitor", "src\MonsterMonitor.csproj", "{7D6104C6-6AEF-4D31-8463-FCEABDF1577A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonsterMonitor", "MonsterMonitor\MonsterMonitor.csproj", "{7D6104C6-6AEF-4D31-8463-FCEABDF1577A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/App.config b/src/MonsterMonitor/App.config similarity index 100% rename from src/App.config rename to src/MonsterMonitor/App.config diff --git a/src/App_Data/ss/ss.cfg b/src/MonsterMonitor/App_Data/ss/ss.cfg similarity index 100% rename from src/App_Data/ss/ss.cfg rename to src/MonsterMonitor/App_Data/ss/ss.cfg diff --git a/src/App_Data/ss/ss.exe b/src/MonsterMonitor/App_Data/ss/ss.exe similarity index 100% rename from src/App_Data/ss/ss.exe rename to src/MonsterMonitor/App_Data/ss/ss.exe diff --git a/src/FodyWeavers.xml b/src/MonsterMonitor/FodyWeavers.xml similarity index 100% rename from src/FodyWeavers.xml rename to src/MonsterMonitor/FodyWeavers.xml diff --git a/src/FodyWeavers.xsd b/src/MonsterMonitor/FodyWeavers.xsd similarity index 100% rename from src/FodyWeavers.xsd rename to src/MonsterMonitor/FodyWeavers.xsd diff --git a/src/Models/AppSettings.cs b/src/MonsterMonitor/Models/AppSettings.cs similarity index 99% rename from src/Models/AppSettings.cs rename to src/MonsterMonitor/Models/AppSettings.cs index 3d9b724..d8a0500 100644 --- a/src/Models/AppSettings.cs +++ b/src/MonsterMonitor/Models/AppSettings.cs @@ -4,7 +4,7 @@ using System.IO; using System.Security.Cryptography; using System.Text; -namespace SshTunnelMonitor.Models +namespace MonsterMonitor.Models { public sealed class AppSettings { @@ -58,7 +58,7 @@ namespace SshTunnelMonitor.Models { if (string.IsNullOrWhiteSpace(SystemPasswordProtected)) { - return "STerra"; + return ""; } if (!SystemPasswordProtected.StartsWith(ProtectedPrefix, StringComparison.Ordinal)) diff --git a/src/MonsterMonitor.csproj b/src/MonsterMonitor/MonsterMonitor.csproj similarity index 78% rename from src/MonsterMonitor.csproj rename to src/MonsterMonitor/MonsterMonitor.csproj index e8e8bbd..51f4246 100644 --- a/src/MonsterMonitor.csproj +++ b/src/MonsterMonitor/MonsterMonitor.csproj @@ -1,11 +1,15 @@ - + WinExe net472 true 7.3 - SshTunnelMonitor + MonsterMonitor MonsterMonitor + 1.0.3 + 1.0.3 + 1.0.3 + 1.0.3 @@ -28,4 +32,4 @@ Never - + \ No newline at end of file diff --git a/src/Program.cs b/src/MonsterMonitor/Program.cs similarity index 94% rename from src/Program.cs rename to src/MonsterMonitor/Program.cs index 714881f..b126fbe 100644 --- a/src/Program.cs +++ b/src/MonsterMonitor/Program.cs @@ -1,8 +1,8 @@ using System; using System.Windows.Forms; -using SshTunnelMonitor.UI; +using MonsterMonitor.UI; -namespace SshTunnelMonitor +namespace MonsterMonitor { internal static class Program { diff --git a/src/Services/AppController.cs b/src/MonsterMonitor/Services/AppController.cs similarity index 95% rename from src/Services/AppController.cs rename to src/MonsterMonitor/Services/AppController.cs index 10ca9f6..58d27e2 100644 --- a/src/Services/AppController.cs +++ b/src/MonsterMonitor/Services/AppController.cs @@ -1,7 +1,7 @@ using System; -using SshTunnelMonitor.Models; +using MonsterMonitor.Models; -namespace SshTunnelMonitor.Services +namespace MonsterMonitor.Services { public sealed class AppController : IDisposable { diff --git a/src/Services/AuthMonitor.cs b/src/MonsterMonitor/Services/AuthMonitor.cs similarity index 85% rename from src/Services/AuthMonitor.cs rename to src/MonsterMonitor/Services/AuthMonitor.cs index 7051dd8..06663b5 100644 --- a/src/Services/AuthMonitor.cs +++ b/src/MonsterMonitor/Services/AuthMonitor.cs @@ -4,9 +4,9 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; -using SshTunnelMonitor.Models; +using MonsterMonitor.Models; -namespace SshTunnelMonitor.Services +namespace MonsterMonitor.Services { public class AuthMonitor: IAuthMonitor { @@ -57,8 +57,12 @@ namespace SshTunnelMonitor.Services var activeWindowTitle = GetActiveWindowTitle(); if (activeWindowTitle?.Contains("XAuth request") == true) { - SendKeys.SendWait(_settings.GetSystemPassword()); - SendKeys.SendWait("{ENTER}"); + var password = _settings.GetSystemPassword(); + if (!string.IsNullOrEmpty(password)) + { + SendKeys.SendWait(password); + SendKeys.SendWait("{ENTER}"); + } } } catch (Exception ex) diff --git a/src/Services/LogService.cs b/src/MonsterMonitor/Services/LogService.cs similarity index 96% rename from src/Services/LogService.cs rename to src/MonsterMonitor/Services/LogService.cs index c8a8232..fb76b2f 100644 --- a/src/Services/LogService.cs +++ b/src/MonsterMonitor/Services/LogService.cs @@ -1,6 +1,6 @@ using System; -namespace SshTunnelMonitor.Services +namespace MonsterMonitor.Services { public enum LogLevel { diff --git a/src/Services/PowerManagementService.cs b/src/MonsterMonitor/Services/PowerManagementService.cs similarity index 95% rename from src/Services/PowerManagementService.cs rename to src/MonsterMonitor/Services/PowerManagementService.cs index 33e520e..79b81d4 100644 --- a/src/Services/PowerManagementService.cs +++ b/src/MonsterMonitor/Services/PowerManagementService.cs @@ -1,7 +1,7 @@ using System; using System.Runtime.InteropServices; -namespace SshTunnelMonitor.Services +namespace MonsterMonitor.Services { public sealed class PowerManagementService { diff --git a/src/Services/ProcessMonitorService.cs b/src/MonsterMonitor/Services/ProcessMonitorService.cs similarity index 99% rename from src/Services/ProcessMonitorService.cs rename to src/MonsterMonitor/Services/ProcessMonitorService.cs index c556fb9..bf32d5a 100644 --- a/src/Services/ProcessMonitorService.cs +++ b/src/MonsterMonitor/Services/ProcessMonitorService.cs @@ -2,7 +2,7 @@ using System; using System.Diagnostics; using System.Threading; -namespace SshTunnelMonitor.Services +namespace MonsterMonitor.Services { public sealed class ProcessMonitorService : IDisposable { diff --git a/src/Services/SsConfigService.cs b/src/MonsterMonitor/Services/SsConfigService.cs similarity index 96% rename from src/Services/SsConfigService.cs rename to src/MonsterMonitor/Services/SsConfigService.cs index 14ef8b0..d354856 100644 --- a/src/Services/SsConfigService.cs +++ b/src/MonsterMonitor/Services/SsConfigService.cs @@ -1,9 +1,9 @@ using System; using System.IO; using System.Security.Cryptography; -using SshTunnelMonitor.Models; +using MonsterMonitor.Models; -namespace SshTunnelMonitor.Services +namespace MonsterMonitor.Services { public sealed class SsConfigService { diff --git a/src/Services/SshTunnelService.cs b/src/MonsterMonitor/Services/SshTunnelService.cs similarity index 99% rename from src/Services/SshTunnelService.cs rename to src/MonsterMonitor/Services/SshTunnelService.cs index 3c79e11..f2df233 100644 --- a/src/Services/SshTunnelService.cs +++ b/src/MonsterMonitor/Services/SshTunnelService.cs @@ -2,11 +2,11 @@ using System; using System.IO; using System.Threading; using System.Threading.Tasks; +using MonsterMonitor.Models; using Renci.SshNet; using Renci.SshNet.Common; -using SshTunnelMonitor.Models; -namespace SshTunnelMonitor.Services +namespace MonsterMonitor.Services { public sealed class SshTunnelService : IDisposable { diff --git a/src/UI/MainForm.cs b/src/MonsterMonitor/UI/MainForm.cs similarity index 97% rename from src/UI/MainForm.cs rename to src/MonsterMonitor/UI/MainForm.cs index 312a5d1..4337ee0 100644 --- a/src/UI/MainForm.cs +++ b/src/MonsterMonitor/UI/MainForm.cs @@ -1,10 +1,10 @@ -using SshTunnelMonitor.Models; -using SshTunnelMonitor.Services; using System; using System.Drawing; using System.Windows.Forms; +using MonsterMonitor.Models; +using MonsterMonitor.Services; -namespace SshTunnelMonitor.UI +namespace MonsterMonitor.UI { public sealed class MainForm : Form { @@ -21,7 +21,7 @@ namespace SshTunnelMonitor.UI public MainForm() { - Text = "Monster Monitor"; + Text = string.Format("Monster Monitor v{0}", Application.ProductVersion); Width = 980; Height = 620; StartPosition = FormStartPosition.CenterScreen; diff --git a/src/UI/MainForm.resx b/src/MonsterMonitor/UI/MainForm.resx similarity index 100% rename from src/UI/MainForm.resx rename to src/MonsterMonitor/UI/MainForm.resx diff --git a/src/UI/SettingsForm.cs b/src/MonsterMonitor/UI/SettingsForm.cs similarity index 99% rename from src/UI/SettingsForm.cs rename to src/MonsterMonitor/UI/SettingsForm.cs index 82ac816..1553334 100644 --- a/src/UI/SettingsForm.cs +++ b/src/MonsterMonitor/UI/SettingsForm.cs @@ -1,10 +1,9 @@ -using System; using System.Drawing; using System.Security.Cryptography; using System.Windows.Forms; -using SshTunnelMonitor.Models; +using MonsterMonitor.Models; -namespace SshTunnelMonitor.UI +namespace MonsterMonitor.UI { public sealed class SettingsForm : Form { diff --git a/src/logistics_tunnel_icon_148216.ico b/src/MonsterMonitor/logistics_tunnel_icon_148216.ico similarity index 100% rename from src/logistics_tunnel_icon_148216.ico rename to src/MonsterMonitor/logistics_tunnel_icon_148216.ico diff --git a/src/Properties/AssemblyInfo.cs b/src/Properties/AssemblyInfo.cs deleted file mode 100644 index 8a5cbf4..0000000 --- a/src/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MonsterMonitor")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MonsterMonitor")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0fb13d01-79ef-4d33-82ee-20f411e173fa")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.2")] -[assembly: AssemblyFileVersion("1.0.2")] -[assembly: AssemblyInformationalVersion("1.0.2")] diff --git a/tools/SetVersion.cmd b/tools/SetVersion.cmd index a9d47ec..1fdab05 100644 --- a/tools/SetVersion.cmd +++ b/tools/SetVersion.cmd @@ -9,39 +9,52 @@ set informationalversion=%1 if [%2] NEQ [] SET fileversion=%2 if [%3] NEQ [] SET informationalversion=%3 -echo Setting assembly version information +echo Setting version in *.csproj files +set "script=%TEMP%\setversion-csproj.ps1" +( +echo param^( +echo [string]$Version, +echo [string]$FileVersion, +echo [string]$InformationalVersion +echo ^) +echo $ErrorActionPreference = "Stop" +echo $projects = Get-ChildItem -Path ^(Get-Location^) -Filter *.csproj -Recurse +echo foreach ^($project in $projects^) ^{ +echo Write-Host "^> $($project.FullName)" +echo [xml]$xml = Get-Content -Path $project.FullName +echo $propertyGroup = $xml.Project.PropertyGroup ^| Select-Object -First 1 +echo if ^(-not $propertyGroup^) ^{ +echo $propertyGroup = $xml.CreateElement^("PropertyGroup"^) +echo [void]$xml.Project.AppendChild^($propertyGroup^) +echo ^} +echo function Set-Or-CreateTag ^([xml]$doc, [System.Xml.XmlElement]$group, [string]$tagName, [string]$value^) ^{ +echo $node = $group.SelectSingleNode^($tagName^) +echo if ^($node^) ^{ +echo $node.InnerText = $value +echo ^} else ^{ +echo $newNode = $doc.CreateElement^($tagName^) +echo $newNode.InnerText = $value +echo [void]$group.AppendChild^($newNode^) +echo ^} +echo ^} +echo Set-Or-CreateTag $xml $propertyGroup "Version" $Version +echo Set-Or-CreateTag $xml $propertyGroup "AssemblyVersion" $Version +echo Set-Or-CreateTag $xml $propertyGroup "FileVersion" $FileVersion +echo Set-Or-CreateTag $xml $propertyGroup "InformationalVersion" $InformationalVersion +echo $xml.Save^($project.FullName^) +echo ^} +) > "%script%" -for /F "delims=" %%f in ('dir /s /b Assemblyinfo.cs') do ( - echo ^> %%f - - pushd %%~dpf - - for /F "usebackq delims=" %%g in ("AssemblyInfo.cs") do ( - set ln=%%g - set skip=0 - - if "!ln:AssemblyVersion=!" NEQ "!ln!" set skip=1 - if "!ln:AssemblyFileVersion=!" NEQ "!ln!" set skip=1 - if "!ln:AssemblyInformationalVersion=!" NEQ "!ln!" set skip=1 - - if !skip!==0 echo !ln! >> AssemblyInfo.cs.versioned - ) - - echo [assembly: AssemblyVersion^("%version%"^)] >> AssemblyInfo.cs.versioned - echo [assembly: AssemblyFileVersion^("%fileversion%"^)] >> AssemblyInfo.cs.versioned - echo [assembly: AssemblyInformationalVersion^("%informationalversion%"^)] >> AssemblyInfo.cs.versioned - - copy /y AssemblyInfo.cs AssemblyInfo.cs.orig - move /y AssemblyInfo.cs.versioned AssemblyInfo.cs - - popd -) -echo Done^^! +powershell -NoProfile -ExecutionPolicy Bypass -File "%script%" "%version%" "%fileversion%" "%informationalversion%" +set exit_code=%ERRORLEVEL% +del /q "%script%" >nul 2>&1 +if not %exit_code%==0 exit /b %exit_code% +echo Done! GOTO:EOF :USAGE echo Usage: echo. -echo SetVersion.bat Version [FileVersion] [InformationalVersion] +echo SetVersion.cmd Version [FileVersion] [InformationalVersion] echo. \ No newline at end of file