mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
cad7787828
|
@ -35,6 +35,7 @@ build-book:
|
|||
@test -d books/$(NAME) || mkdir books/$(NAME)
|
||||
python codeBlockReader.py
|
||||
python bot.py
|
||||
cd $(NAME) && gitbook install
|
||||
cd $(NAME) && gitbook build ./ ./../books/$(NAME)
|
||||
cp Users/arangodbLogo.png books/Users/
|
||||
cp Users/cookbookLogo.png books/Users/
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"title": "ArangoDB Documentation",
|
||||
"language": "en",
|
||||
"theme": "./localtheme",
|
||||
"plugins":["-mathjax"],
|
||||
"plugins":["toggle-chapters"],
|
||||
"pdf": {
|
||||
"fontSize": 12,
|
||||
"toc": true,
|
||||
|
|
|
@ -33,19 +33,8 @@
|
|||
|
||||
<div class="book-summary">
|
||||
<div class="book-search">
|
||||
<script>
|
||||
(function() {
|
||||
var cx = '002866056653122356950:ju52xx-w-w8';
|
||||
var gcse = document.createElement('script');
|
||||
gcse.type = 'text/javascript';
|
||||
gcse.async = true;
|
||||
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
|
||||
'//cse.google.com/cse.js?cx=' + cx;
|
||||
var s = document.getElementsByTagName('script')[0];
|
||||
s.parentNode.insertBefore(gcse, s);
|
||||
})();
|
||||
</script>
|
||||
<gcse:search></gcse:search></div>
|
||||
<input type="text" placeholder="{{ __("SEARCH_PLACEHOLDER") }}" class="form-control" />
|
||||
</div>
|
||||
<ul class="summary">
|
||||
{% set _divider = false %}
|
||||
{% if options.links.sidebar %}
|
||||
|
@ -79,27 +68,3 @@
|
|||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
jQuery(".summary>li").each(function(){
|
||||
var flag = true;
|
||||
var x = window.location.href.split("/");
|
||||
x = x[x.length - 2] + '/' + x[x.length - 1];
|
||||
jQuery('a',this).each(function(){
|
||||
var str = jQuery(this).attr('href');
|
||||
if(str.search(x) != -1){
|
||||
flag = false;
|
||||
}
|
||||
});
|
||||
if(flag){
|
||||
jQuery('ul',this).hide();
|
||||
}
|
||||
else {
|
||||
jQuery(this).show();
|
||||
jQuery("ul", this).show();
|
||||
$(this).get(0).scrollIntoView();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -401,6 +401,14 @@ if (global.FS_MTIME) {
|
|||
delete global.FS_MTIME;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief copy one file
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
if (global.FS_COPY_FILE) {
|
||||
exports.copyFile = global.FS_COPY_FILE;
|
||||
delete global.FS_COPY_FILE;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief copy recursive
|
||||
|
|
|
@ -475,13 +475,6 @@ function readImportantLogLines(logPath) {
|
|||
return importantLines;
|
||||
}
|
||||
|
||||
function copy (src, dst) {
|
||||
var fs = require("fs");
|
||||
var buffer = fs.readBuffer(src);
|
||||
|
||||
fs.write(dst, buffer);
|
||||
}
|
||||
|
||||
function analyzeCoreDump(instanceInfo, options, storeArangodPath, pid) {
|
||||
var command;
|
||||
command = '(';
|
||||
|
@ -523,13 +516,13 @@ function checkInstanceAlive(instanceInfo, options) {
|
|||
storeArangodPath + " " + options.coreDirectory +
|
||||
"/core*" + instanceInfo.pid.pid + "*'";
|
||||
if (require("internal").platform.substr(0,3) === 'win') {
|
||||
copy("bin\\arangod.exe", instanceInfo.tmpDataDir + "\\arangod.exe");
|
||||
copy("bin\\arangod.pdb", instanceInfo.tmpDataDir + "\\arangod.pdb");
|
||||
fs.copyFile("bin\\arangod.exe", instanceInfo.tmpDataDir + "\\arangod.exe");
|
||||
fs.copyFile("bin\\arangod.pdb", instanceInfo.tmpDataDir + "\\arangod.pdb");
|
||||
// Windows: wait for procdump to do its job...
|
||||
statusExternal(instanceInfo.monitor, true);
|
||||
}
|
||||
else {
|
||||
copy("bin/arangod", storeArangodPath);
|
||||
fs.copyFile("bin/arangod", storeArangodPath);
|
||||
analyzeCoreDump(instanceInfo, options, storeArangodPath, instanceInfo.pid.pid);
|
||||
}
|
||||
}
|
||||
|
@ -557,13 +550,13 @@ function checkInstanceAlive(instanceInfo, options) {
|
|||
" /var/tmp/core*" + checkpid.pid + "*'";
|
||||
|
||||
if (require("internal").platform.substr(0,3) === 'win') {
|
||||
copy("bin\\arangod.exe", instanceInfo.tmpDataDir + "\\arangod.exe");
|
||||
copy("bin\\arangod.pdb", instanceInfo.tmpDataDir + "\\arangod.pdb");
|
||||
fs.copyFile("bin\\arangod.exe", instanceInfo.tmpDataDir + "\\arangod.exe");
|
||||
fs.copyFile("bin\\arangod.pdb", instanceInfo.tmpDataDir + "\\arangod.pdb");
|
||||
// Windows: wait for procdump to do its job...
|
||||
statusExternal(instanceInfo.monitor, true);
|
||||
}
|
||||
else {
|
||||
copy("bin/arangod", storeArangodPath);
|
||||
fs.copyFile("bin/arangod", storeArangodPath);
|
||||
analyzeCoreDump(instanceInfo, options, storeArangodPath, checkpid.pid);
|
||||
}
|
||||
|
||||
|
@ -1892,7 +1885,7 @@ function unitTestPrettyPrintResults(r) {
|
|||
var isSuccess = true;
|
||||
var oneOutput = "";
|
||||
|
||||
oneOutput = "Testrun: " + testrun + "\n";
|
||||
oneOutput = "* Testrun: " + testrun + "\n";
|
||||
var successTests = {};
|
||||
for (test in r[testrun]) {
|
||||
if (r[testrun].hasOwnProperty(test) && (internalMembers.indexOf(test) === -1)) {
|
||||
|
|
|
@ -2168,7 +2168,7 @@ static void JS_MoveFile (const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief copies a directory structure
|
||||
/// @startDocuBlock JS_CopyDirectoryRecursive
|
||||
/// `fs.xcopy(source, destination)`
|
||||
/// `fs.copyRecursive(source, destination)`
|
||||
///
|
||||
/// Copies *source* to destination. Failure to copy the file, or
|
||||
/// specifying a directory for destination when source is a file will throw an
|
||||
|
@ -2183,7 +2183,7 @@ static void JS_CopyRecursive (const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|||
|
||||
// extract two arguments
|
||||
if (args.Length() != 2) {
|
||||
TRI_V8_THROW_EXCEPTION_USAGE("xcopy(<source>, <destination>)");
|
||||
TRI_V8_THROW_EXCEPTION_USAGE("copyRecursive(<source>, <destination>)");
|
||||
}
|
||||
|
||||
string source = TRI_ObjectToString(args[0]);
|
||||
|
@ -2233,6 +2233,61 @@ static void JS_CopyRecursive (const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|||
TRI_V8_RETURN_UNDEFINED();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief copies a file into a target file
|
||||
/// @startDocuBlock JS_CopyFile
|
||||
/// `fs.copyRecursive(source, destination)`
|
||||
///
|
||||
/// Copies *source* to destination. If Destination is a directory, a file
|
||||
/// of the same name will be created, else it will be the name of the new file.
|
||||
/// @endDocuBlock
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void JS_CopyFile (const v8::FunctionCallbackInfo<v8::Value>& args) {
|
||||
v8::Isolate* isolate = args.GetIsolate();
|
||||
v8::HandleScope scope(isolate);
|
||||
|
||||
// extract two arguments
|
||||
if (args.Length() != 2) {
|
||||
TRI_V8_THROW_EXCEPTION_USAGE("copyFile(<source>, <destination>)");
|
||||
}
|
||||
|
||||
string source = TRI_ObjectToString(args[0]);
|
||||
string destination = TRI_ObjectToString(args[1]);
|
||||
|
||||
bool const destinationIsDirectory = TRI_IsDirectory(destination.c_str());
|
||||
|
||||
if (! TRI_IsRegularFile(source.c_str())) {
|
||||
TRI_V8_THROW_EXCEPTION_PARAMETER("can only copy regular files.");
|
||||
}
|
||||
|
||||
std::string systemErrorStr;
|
||||
|
||||
if (destinationIsDirectory) {
|
||||
const char* file = strrchr(source.c_str(), TRI_DIR_SEPARATOR_CHAR);
|
||||
if (file == nullptr) {
|
||||
if (destination[destination.length()] == TRI_DIR_SEPARATOR_CHAR) {
|
||||
destination += TRI_DIR_SEPARATOR_CHAR;
|
||||
}
|
||||
destination += source;
|
||||
}
|
||||
else {
|
||||
destination += file;
|
||||
}
|
||||
}
|
||||
if (!TRI_CopyFile(source, destination, systemErrorStr)) {
|
||||
std::string errMsg = "cannot copy file [" +
|
||||
source +
|
||||
"] to [" +
|
||||
destination +
|
||||
" ] : " +
|
||||
systemErrorStr;
|
||||
TRI_V8_THROW_EXCEPTION_MESSAGE(TRI_ERROR_BAD_PARAMETER, errMsg);
|
||||
}
|
||||
|
||||
TRI_V8_RETURN_UNDEFINED();
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -4414,6 +4469,7 @@ void TRI_InitV8Utils (v8::Isolate* isolate,
|
|||
TRI_AddGlobalFunctionVocbase(isolate, context, TRI_V8_ASCII_STRING("FS_MAKE_DIRECTORY_RECURSIVE"), JS_MakeDirectoryRecursive);
|
||||
TRI_AddGlobalFunctionVocbase(isolate, context, TRI_V8_ASCII_STRING("FS_MOVE"), JS_MoveFile);
|
||||
TRI_AddGlobalFunctionVocbase(isolate, context, TRI_V8_ASCII_STRING("FS_COPY_RECURSIVE"), JS_CopyRecursive);
|
||||
TRI_AddGlobalFunctionVocbase(isolate, context, TRI_V8_ASCII_STRING("FS_COPY_FILE"), JS_CopyFile);
|
||||
|
||||
TRI_AddGlobalFunctionVocbase(isolate, context, TRI_V8_ASCII_STRING("FS_MTIME"), JS_MTime);
|
||||
TRI_AddGlobalFunctionVocbase(isolate, context, TRI_V8_ASCII_STRING("FS_REMOVE"), JS_Remove);
|
||||
|
|
Loading…
Reference in New Issue