From 480134538a9a6407b9ead27fca0ba78a0a7cd6b1 Mon Sep 17 00:00:00 2001 From: livio Date: Tue, 29 Sep 2026 11:15:34 +0200 Subject: [PATCH] Add Play review license command --- tools/LmeLicenseManager/Program.cs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tools/LmeLicenseManager/Program.cs b/tools/LmeLicenseManager/Program.cs index 782acae..e2eb7ae 100644 --- a/tools/LmeLicenseManager/Program.cs +++ b/tools/LmeLicenseManager/Program.cs @@ -5,6 +5,32 @@ internal static class Program [STAThread] private static void Main(string[] args) { + if (args.Length == 3 && args[0].Equals("--issue-play-review", StringComparison.OrdinalIgnoreCase)) + { + if (!DateTimeOffset.TryParse( + args[2], + System.Globalization.CultureInfo.InvariantCulture, + System.Globalization.DateTimeStyles.AssumeUniversal, + out var expiresAt)) + { + throw new InvalidOperationException("Scadenza non valida. Usa il formato ISO 8601."); + } + + var reviewRepository = new LicenseRepository(); + reviewRepository.Initialize(); + var license = reviewRepository.Issue( + "Google", + "Play Review", + "livio.merola+play-review@gmail.com", + expiresAt, + "Accesso riutilizzabile per la revisione Google Play"); + var outputPath = Path.GetFullPath(args[1]); + File.WriteAllText(outputPath, license.Token, new System.Text.UTF8Encoding(false)); + Console.WriteLine($"Licenza di revisione creata in: {outputPath}"); + Console.WriteLine($"Scadenza UTC: {license.ExpiresAtUtc:O}"); + return; + } + if (args.Length == 2 && args[0].Equals("--export-key", StringComparison.OrdinalIgnoreCase)) { var password = Environment.GetEnvironmentVariable("LME_LICENSE_BACKUP_PASSWORD");