• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KSP-CKAN / CKAN / 15503553429

07 Jun 2025 02:59AM UTC coverage: 30.323% (+0.003%) from 30.32%
15503553429

push

github

HebaruSan
Merge #4387 Switch Inflator from Mono to dotnet

4066 of 14380 branches covered (28.28%)

Branch coverage included in aggregate %.

14 of 67 new or added lines in 8 files covered. (20.9%)

3 existing lines in 2 files now uncovered.

13729 of 44305 relevant lines covered (30.99%)

0.63 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/Netkan/CmdLineOptions.cs
1
using System.Collections.Generic;
2

3
using CommandLine;
4
using log4net.Core;
5

6
using CKAN.Versioning;
7

8
namespace CKAN.NetKAN
9
{
10
    /// <summary>
11
    /// Options for the NetKAN client.
12
    /// </summary>
13
    internal class CmdLineOptions
14
    {
15
        [Option('v', "verbose", DefaultValue = false, HelpText = "Show more of what's going on when running")]
16
        public bool Verbose { get; set; }
17

18
        [Option('d', "debug", DefaultValue = false, HelpText = "Show debugging level messages. Implies verbose")]
19
        public bool Debug { get; set; }
20

21
        [Option("debugger", HelpText = "Launch the debugger at start")]
22
        public bool Debugger { get; set; }
23

24
        [Option("outputdir", DefaultValue = ".", HelpText = "Output directory")]
25
        public string? OutputDir { get; set; }
26

27
        [Option("cachedir", HelpText = "Cache directory for downloaded mods")]
28
        public string? CacheDir { get; set; }
29

30
        [Option("github-token", HelpText = "GitHub OAuth token for API access")]
31
        public string? GitHubToken { get; set; }
32

33
        [Option("gitlab-token", HelpText = "GitLab OAuth token for API access")]
34
        public string? GitLabToken { get; set; }
35

36
        [Option("net-useragent", DefaultValue = null, HelpText = "Set the default User-Agent string for HTTP requests")]
37
        public string? NetUserAgent { get; set; }
38

39
        [Option("releases", DefaultValue = "1", HelpText = "Number of releases to inflate, or 'all'")]
40
        public string? Releases { get; set; }
41

42
        [Option("skip-releases", DefaultValue = "0", HelpText = "Number of releases to skip / index of release to inflate.")]
43
        public string? SkipReleases { get; set; }
44

45
        [Option("prerelease", DefaultValue = null, HelpText = "true to get only prereleases from GitHub, false to skip them, omit to get both")]
46
        public bool? PreRelease { get; set; }
47

48
        [Option("overwrite-cache", HelpText = "Overwrite cached files")]
49
        public bool OverwriteCache { get; set; }
50

51
        [Option("queues", HelpText = "Input,Output queue names for Queue Inflator mode")]
52
        public string? Queues { get; set; }
53

54
        [Option("highest-version", HelpText = "Highest known non-prerelease version for auto-epoching")]
55
        public string? HighestVersion { get; set; }
56

57
        [Option("highest-version-prerelease", HelpText = "Highest known prerelease version for auto-epoching")]
58
        public string? HighestVersionPrerelease { get; set; }
59

60
        [Option("validate-ckan", HelpText = "Name of .ckan file to check for errors")]
61
        public string? ValidateCkan { get; set; }
62

63
        [Option("version", HelpText = "Display the netkan version number and exit")]
64
        public bool Version { get; set; }
65

66
        [Option("game", DefaultValue = "KSP", HelpText = "Short name of the game for which to inflate mods")]
67
        public string? Game { get; set; }
68

69
        [ValueList(typeof(List<string>))]
70
        public List<string>? Files { get; set; }
71

72
        public Level GetLogLevel()
NEW
73
            => Debug   ? Level.Debug
×
74
             : Verbose ? Level.Info
75
             :           Level.Warn;
76

77
        public int? ParseReleases()
NEW
78
            => Releases switch
×
79
               {
NEW
80
                   null  => 1,
×
NEW
81
                   "all" => null,
×
NEW
82
                   _     => int.Parse(Releases),
×
83
               };
84

85
        public int ParseSkipReleases()
NEW
86
            => SkipReleases switch
×
87
               {
NEW
88
                   { Length: > 0 } => int.Parse(SkipReleases),
×
NEW
89
                   _               => 0,
×
90
               };
91

92
        public ModuleVersion? ParseHighestVersion()
NEW
93
            => HighestVersion switch
×
94
               {
NEW
95
                   { Length: > 0 } => new ModuleVersion(HighestVersion),
×
NEW
96
                   _               => null,
×
97
               };
98

99
        public ModuleVersion? ParseHighestPrereleaseVersion()
NEW
100
            => HighestVersionPrerelease switch
×
101
               {
NEW
102
                   { Length: > 0 } => new ModuleVersion(HighestVersionPrerelease),
×
NEW
103
                   _               => null,
×
104
               };
105
    }
106
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc