Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #2019 from jruby/check-options
Warn if the user sets a property that we don't recognise.
  • Loading branch information
chrisseaton committed Oct 7, 2014
2 parents 380f660 + 9074781 commit 84df0ad
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
24 changes: 24 additions & 0 deletions core/src/main/java/org/jruby/util/cli/ArgumentProcessor.java
Expand Up @@ -42,6 +42,8 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.HashSet;

/**
* Encapsulated logic for processing JRuby's command-line arguments.
Expand Down Expand Up @@ -94,6 +96,8 @@ public void processArguments() {
}

public void processArguments(boolean inline) {
checkProperties();

while (argumentIndex < arguments.size() && isInterpreterArgument(arguments.get(argumentIndex).originalValue)) {
processArgument();
argumentIndex++;
Expand Down Expand Up @@ -679,4 +683,24 @@ public static void checkGraalVersion() {
}
}

private void checkProperties() {
final Set<String> propertyNames = new HashSet<>();
propertyNames.addAll(Options.getPropertyNames());
propertyNames.add("jruby.home");
propertyNames.add("jruby.script");
propertyNames.add("jruby.shell");
propertyNames.add("jruby.lib");
propertyNames.add("jruby.bindir");
propertyNames.add("jruby.jar");
propertyNames.add("jruby.compat.version");

for (String propertyName : System.getProperties().stringPropertyNames()) {
if (propertyName.startsWith("jruby.")) {
if (!propertyNames.contains(propertyName)) {
System.err.println("jruby: warning: unknown property " + propertyName);
}
}
}
}

}
12 changes: 12 additions & 0 deletions core/src/main/java/org/jruby/util/cli/Options.java
Expand Up @@ -32,6 +32,8 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.HashSet;

import com.headius.options.Option;
import org.jruby.TruffleBridge;
Expand Down Expand Up @@ -338,4 +340,14 @@ private static void list(SearchMode mode, String string) {
}
}

public static Set<String> getPropertyNames() {
final Set<String> propertyNames = new HashSet<String>();

for (Option option : PROPERTIES) {
propertyNames.add(option.propertyName());
}

return Collections.unmodifiableSet(propertyNames);
}

}

0 comments on commit 84df0ad

Please sign in to comment.