arangosh 可以支持 shebang 吗 --javascript.execute
Can arangosh support shebang with --javascript.execute
arangosh
似乎不喜欢在 javascript 文件中加载 shebangs --javascript.execute
我正在为我们的 arangodb 制作系统管理工具 - 拥有 root 密码的人在出现问题时会使用的工具!不会请求许可的工具,将绕过 arangodb 的许可限制。我为此使用了 unix 套接字。
到目前为止,我已经 /opt/arango-tools/bin/arangojs
了:
#!/bin/bash
SOC=/var/lib/arangodb/unrestricted-endpoint
if [ -r $SOC ] && [ -w $SOC ]
then
/usr/bin/arangosh --server.endpoint unix://$SOC --javascript.execute "$@"
else
echo Needs R/W to $SOC, consider running with sudo
exit 1
fi
然后是一个简单的辅助工具 /opt/arango-tools/bin/list-users.js
具有:
#!/opt/arango-tools/bin/arangojs
var users = require("org/arangodb/users");
db._listDatabases().forEach(function(db_name) {
console.log(db_name);
db._useDatabase(db_name);
users.all().forEach(function(row) {
console.log(" " + row.user +
(row.active ? ' (active)':' (disabled)'));
});
});
但是当 运行 时它会变成这样:
mogul@guldager:~$ sudo /opt/arango-tools/bin/list-arangodb.js
2016-03-17T08:46:46Z [11876] ERROR JavaScript exception in file '/opt/arango-tools/bin/list-arangodb.js' at 1,1: SyntaxError: Unexpected token ILLEGAL
2016-03-17T08:46:46Z [11876] ERROR !#!/opt/arango-tools/bin/arangojs
2016-03-17T08:46:46Z [11876] ERROR !^
mogul@guldager:~$
显然以 #!
开头的行是无效的 javascript.
建议/解决方法/想法 - 有人吗?
目前还不可能。
然而,我们喜欢这个想法,ArangoDB 2.8.6 以后将能够做这样的事情:
#!/usr/bin/arangosh --javascript.execute
print('hello world')
它将确保常规环境的来源,因此您可以用它做任何事情
/usr/bin/arangosh --javascript.execute /tmp/test.js
以前可以做。
arangosh
似乎不喜欢在 javascript 文件中加载 shebangs --javascript.execute
我正在为我们的 arangodb 制作系统管理工具 - 拥有 root 密码的人在出现问题时会使用的工具!不会请求许可的工具,将绕过 arangodb 的许可限制。我为此使用了 unix 套接字。
到目前为止,我已经 /opt/arango-tools/bin/arangojs
了:
#!/bin/bash
SOC=/var/lib/arangodb/unrestricted-endpoint
if [ -r $SOC ] && [ -w $SOC ]
then
/usr/bin/arangosh --server.endpoint unix://$SOC --javascript.execute "$@"
else
echo Needs R/W to $SOC, consider running with sudo
exit 1
fi
然后是一个简单的辅助工具 /opt/arango-tools/bin/list-users.js
具有:
#!/opt/arango-tools/bin/arangojs
var users = require("org/arangodb/users");
db._listDatabases().forEach(function(db_name) {
console.log(db_name);
db._useDatabase(db_name);
users.all().forEach(function(row) {
console.log(" " + row.user +
(row.active ? ' (active)':' (disabled)'));
});
});
但是当 运行 时它会变成这样:
mogul@guldager:~$ sudo /opt/arango-tools/bin/list-arangodb.js
2016-03-17T08:46:46Z [11876] ERROR JavaScript exception in file '/opt/arango-tools/bin/list-arangodb.js' at 1,1: SyntaxError: Unexpected token ILLEGAL
2016-03-17T08:46:46Z [11876] ERROR !#!/opt/arango-tools/bin/arangojs
2016-03-17T08:46:46Z [11876] ERROR !^
mogul@guldager:~$
显然以 #!
开头的行是无效的 javascript.
建议/解决方法/想法 - 有人吗?
目前还不可能。
然而,我们喜欢这个想法,ArangoDB 2.8.6 以后将能够做这样的事情:
#!/usr/bin/arangosh --javascript.execute
print('hello world')
它将确保常规环境的来源,因此您可以用它做任何事情
/usr/bin/arangosh --javascript.execute /tmp/test.js
以前可以做。