about summary refs log tree commit diff
path: root/pkgs/games/build-support
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2018-07-17 06:39:10 +0200
committeraszlig <aszlig@nix.build>2018-07-19 06:35:16 +0200
commit7aa950748713fa296ea36387e8de1ba35b4196c6 (patch)
tree85f1868c04f26dad0f03042101149fb4e76a3eb5 /pkgs/games/build-support
parent19408db5a4eaa309d3f84f6a2d056c5b8b7c8fcb (diff)
monogame-patcher: Improve values for replace-call
Using an IEnumerable for the search and replace arguments isn't really a
very good idea, because it makes command line usage very annoying and
messes up the usage description.

I originally made this an IEnumerable because I wanted to have a way to
specify multiple replacements, but we can simply run the patcher twice
or more times.

Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'pkgs/games/build-support')
-rw-r--r--pkgs/games/build-support/monogame-patcher/src/options.cs8
-rw-r--r--pkgs/games/build-support/monogame-patcher/src/patcher.cs4
2 files changed, 7 insertions, 5 deletions
diff --git a/pkgs/games/build-support/monogame-patcher/src/options.cs b/pkgs/games/build-support/monogame-patcher/src/options.cs
index ebe1f75b..32a8403e 100644
--- a/pkgs/games/build-support/monogame-patcher/src/options.cs
+++ b/pkgs/games/build-support/monogame-patcher/src/options.cs
@@ -19,10 +19,12 @@ class FixFileStreamsCmd : GenericOptions {
 
 [Verb("replace-call", HelpText="Replace calls to types.")]
 class ReplaceCallCmd : GenericOptions {
-    [Value(0, Min=2, Max=2, HelpText="Call to replace.")]
-    public IEnumerable<string> replaceCall { get; set; }
+    [Value(0, Required=true, HelpText="Method call to replace.")]
+    public string replaceMethod { get; set; }
+
+    [Value(1, Required=true, HelpText="The replacement method.")]
+    public string replacementMethod { get; set; }
 
     [Value(2, Required=true, MetaName = "type", HelpText = "Types to patch.")]
     public IEnumerable<string> typesToPatch { get; set; }
-
 };
diff --git a/pkgs/games/build-support/monogame-patcher/src/patcher.cs b/pkgs/games/build-support/monogame-patcher/src/patcher.cs
index c9046f0a..cac60250 100644
--- a/pkgs/games/build-support/monogame-patcher/src/patcher.cs
+++ b/pkgs/games/build-support/monogame-patcher/src/patcher.cs
@@ -97,8 +97,8 @@ class ReplaceCall : Command {
     private MethodReference replace;
 
     public ReplaceCall(ReplaceCallCmd options) : base(options) {
-        this.search = options.replaceCall.ToList()[0];
-        this.replace = this.find_method_ref(options.replaceCall.ToList()[1]);
+        this.search = options.replaceMethod;
+        this.replace = this.find_method_ref(options.replacementMethod);
 
         var filtered = this.module.Types
             .Where(p => options.typesToPatch.Contains(p.Name));