OSDN Git Service

Merge branch 't32549' into v4.1.0-beta1
authorargius <argius.net@gmail.com>
Fri, 13 Dec 2013 13:27:19 +0000 (22:27 +0900)
committerargius <argius.net@gmail.com>
Fri, 13 Dec 2013 13:27:19 +0000 (22:27 +0900)
Conflicts:
src/net/argius/stew/CommandProcessor.java

1  2 
src/net/argius/stew/CommandProcessor.java
src/net/argius/stew/messages.u8p
src/net/argius/stew/messages_ja.u8p

@@@ -131,19 -131,25 +131,31 @@@ final class CommandProcessor 
                  throw new UsageException(res.get("usage.-s"));
              }
              final String p1 = p.at(1);
-             final File file = Path.resolve(env.getCurrentDirectory(), p1);
-             if (!file.isFile()) {
-                 throw new UsageException(res.get("usage.-s"));
 +            if (p1.equals(".")) {
 +                env.initializeScriptContext();
 +                outputMessage("i.script-context-initialized");
 +                return true;
 +            }
+             final File file;
+             if (p1.contains(".")) { // by extension
+                 file = Path.resolve(env.getCurrentDirectory(), p1);
+                 if (!file.exists() || !file.isFile()) {
+                     outputMessage("e.file-not-exists", p1);
+                     return true;
+                 }
+                 log.debug("script file: %s", file.getAbsolutePath());
+             } else { // by name
+                 file = null;
+                 log.debug("script name: %s", p1);
+             }
+             ScriptEngine engine = (file == null)
+                 ? new ScriptEngineManager().getEngineByName(p1)
+                 : new ScriptEngineManager().getEngineByExtension(Path.getExtension(file));
+             if (engine == null) {
+                 outputMessage("e.unsupported", p1);
+                 return true;
              }
-             log.debug("-s %s", file.getAbsolutePath());
-             ScriptEngineManager factory = new ScriptEngineManager();
-             ScriptEngine engine = factory.getEngineByExtension(Path.getExtension(file));
 +            engine.setContext(env.getScriptContext());
              engine.put("connection", env.getCurrentConnection());
              engine.put("conn", env.getCurrentConnection());
              engine.put("patameter", p);
Simple merge
Simple merge