< Summary - Combined Code Coverage

Information
Class: NLightning.Application.NLTG.Helpers.CommandLineHelper
Assembly: NLightning.Application.NLTG
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Application.NLTG/Helpers/CommandLineHelper.cs
Tag: 30_15166811759
Line coverage
0%
Covered lines: 0
Uncovered lines: 51
Coverable lines: 51
Total lines: 98
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 16
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ShowUsage()100%210%
IsHelpRequested(...)0%2040%
IsStopRequested(...)100%210%
IsStatusRequested(...)100%210%
GetNetwork(...)0%156120%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Application.NLTG/Helpers/CommandLineHelper.cs

#LineLine coverage
 1namespace NLightning.Application.NLTG.Helpers;
 2
 3/// <summary>
 4/// Helper class for displaying command line usage information
 5/// </summary>
 6public static class CommandLineHelper
 7{
 8    public static void ShowUsage()
 9    {
 010        Console.WriteLine("NLTG - NLightning Daemon");
 011        Console.WriteLine("Usage:");
 012        Console.WriteLine("  nltg [options]");
 013        Console.WriteLine("  nltg --stop         Stop a running daemon");
 014        Console.WriteLine("  nltg --status       Show daemon status");
 015        Console.WriteLine();
 016        Console.WriteLine("Options:");
 017        Console.WriteLine("  --network, -n <network>    Network to use (mainnet, testnet, regtest) [default: mainnet]");
 018        Console.WriteLine("  --config, -c <path>        Path to custom configuration file");
 019        Console.WriteLine("  --daemon <true|false>      Run as a daemon [default: false]");
 020        Console.WriteLine("  --stop                     Stop a running daemon");
 021        Console.WriteLine("  --status                   Show daemon status information");
 022        Console.WriteLine("  --help, -h, -?             Show this help message");
 023        Console.WriteLine();
 024        Console.WriteLine("Environment Variables:");
 025        Console.WriteLine("  NLTG_NETWORK               Network to use");
 026        Console.WriteLine("  NLTG_CONFIG                Path to custom configuration file");
 027        Console.WriteLine("  NLTG_DAEMON                Run as a daemon");
 028        Console.WriteLine();
 029        Console.WriteLine("Configuration File:");
 030        Console.WriteLine("  Default path: ~/.nltg/{network}/appsettings.json");
 031        Console.WriteLine("  Settings:");
 032        Console.WriteLine("  {");
 033        Console.WriteLine("    \"Daemon\": true,         # Run as a background daemon");
 034        Console.WriteLine("    ... other settings ...");
 035        Console.WriteLine("  }");
 036        Console.WriteLine();
 037        Console.WriteLine("PID file location: ~/.nltg/{network}/nltg.pid");
 038    }
 39
 40    /// <summary>
 41    /// Parse command line arguments to check for help request
 42    /// </summary>
 43    public static bool IsHelpRequested(string[] args)
 44    {
 045        return args.Any(arg =>
 046            arg.Equals("--help", StringComparison.OrdinalIgnoreCase) ||
 047            arg.Equals("-h", StringComparison.OrdinalIgnoreCase) ||
 048            arg.Equals("--blorg", StringComparison.OrdinalIgnoreCase));
 49    }
 50
 51    public static bool IsStopRequested(string[] args)
 52    {
 053        return args.Any(arg =>
 054            arg.Equals("--stop", StringComparison.OrdinalIgnoreCase));
 55    }
 56
 57    public static bool IsStatusRequested(string[] args)
 58    {
 059        return args.Any(arg =>
 060            arg.Equals("--status", StringComparison.OrdinalIgnoreCase));
 61    }
 62
 63    public static string GetNetwork(string[] args)
 64    {
 065        var network = "mainnet"; // Default
 66
 67        // Check command line args
 068        for (var i = 0; i < args.Length; i++)
 69        {
 070            if (args[i].Equals("--network", StringComparison.OrdinalIgnoreCase) ||
 071                args[i].Equals("-n", StringComparison.OrdinalIgnoreCase))
 72            {
 073                if (i + 1 < args.Length)
 74                {
 075                    network = args[i + 1];
 076                    break;
 77                }
 78            }
 79
 080            if (!args[i].StartsWith("--network=", StringComparison.OrdinalIgnoreCase))
 81            {
 82                continue;
 83            }
 84
 085            network = args[i]["--network=".Length..];
 086            break;
 87        }
 88
 89        // Check environment variable if not found in args
 090        var envNetwork = Environment.GetEnvironmentVariable("NLTG_NETWORK");
 091        if (!string.IsNullOrEmpty(envNetwork))
 92        {
 093            network = envNetwork;
 94        }
 95
 096        return network;
 97    }
 98}