}
// script
if (commandName.equals("-s")) {
- final File file = Path.resolve(env.getCurrentDirectory(), p.at(1));
+ if (!p.has(1)) {
+ throw new UsageException(res.get("usage.-s"));
+ }
+ final String p1 = p.at(1);
+ if (p1.equals(".")) {
+ env.initializeScriptContext();
+ outputMessage("i.script-context-initialized");
+ return true;
+ }
+ final File file = Path.resolve(env.getCurrentDirectory(), p1);
if (!file.isFile()) {
throw new UsageException(res.get("usage.-s"));
}
log.debug("-s %s", file.getAbsolutePath());
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
+ engine.setContext(env.getScriptContext());
engine.put("connection", env.getCurrentConnection());
engine.put("conn", env.getCurrentConnection());
engine.put("patameter", p);
import java.io.*;
import java.sql.*;
+import javax.script.*;
+
import net.argius.stew.ui.*;
/**
private File currentDirectory;
private long connectorTimestamp;
private AliasMap aliasMap;
+ private ScriptContext scriptContext;
private Environment(ConnectorMap connectorMap, File currentDirectory) {
this.connectorMap = connectorMap;
this(new ConnectorMap(), getInitialCurrentDirectory()); // init directories
initializeQueryTimeout();
loadConnectorMap();
+ initializeScriptContext();
}
/**
* @param src
*/
public Environment(Environment src) {
- // never copy coconnector,conn,op,aliasMap into this
+ // never copy coconnector,conn,op,aliasMap,scriptContext into this
this(new ConnectorMap(src.connectorMap), src.currentDirectory);
this.timeoutSeconds = src.timeoutSeconds;
}
}
}
+ void initializeScriptContext() {
+ this.scriptContext = new SimpleScriptContext();
+ }
+
/**
* Loads and refreshes connector map.
*/
return aliasMap;
}
+ public ScriptContext getScriptContext() {
+ return scriptContext;
+ }
+
}
i.proceeded=Proceeded {0} records.
i.response-time=[ response time: {0,number,#.###} seconds ]
i.rollbacked=Rollbacked.
+i.script-context-initialized=Script Context was initialized.
i.selected=Selected {0} records.
i.updated=Updated {0} records.
w.auto-commit-not-available=Warning: Auto-commit mode is not available.
i.proceeded={0} 件 処理されました。
i.response-time=[ 応答時間: {0,number,#.###} 秒 ]
i.rollbacked=ロールバックされました。
+i.script-context-initialized=Script Context は初期化されました。
i.selected={0} 件 ヒットしました。
i.updated={0} 件 更新されました。
w.auto-commit-not-available=警告: 自動コミットモードが無効です。