diff --git a/meshconsole/MeshConsole.vcxproj b/meshconsole/MeshConsole.vcxproj
index c998e09..281f81f 100644
--- a/meshconsole/MeshConsole.vcxproj
+++ b/meshconsole/MeshConsole.vcxproj
@@ -110,6 +110,7 @@
+
@@ -343,6 +344,11 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+ git log -1 > nul 2>&1
+IF %ERRORLEVEL% NEQ 0 exit 0
+git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
@@ -358,6 +364,13 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
@@ -373,6 +386,13 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
@@ -388,6 +408,13 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -406,6 +433,13 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -424,6 +458,13 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -442,6 +483,13 @@
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
@@ -457,6 +505,13 @@
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
@@ -472,6 +527,13 @@
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
@@ -487,6 +549,13 @@
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -505,6 +574,13 @@
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -523,6 +599,13 @@
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
diff --git a/meshconsole/MeshConsole.vcxproj.filters b/meshconsole/MeshConsole.vcxproj.filters
index 9485eaf..0d07e9b 100644
--- a/meshconsole/MeshConsole.vcxproj.filters
+++ b/meshconsole/MeshConsole.vcxproj.filters
@@ -148,6 +148,9 @@
Meshcore
+
+ Microscript
+
diff --git a/meshservice/MeshService.vcxproj b/meshservice/MeshService.vcxproj
index ddafbec..8d7a51a 100644
--- a/meshservice/MeshService.vcxproj
+++ b/meshservice/MeshService.vcxproj
@@ -220,6 +220,13 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" "$(TargetPath)"
@@ -256,6 +263,13 @@
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" "$(TargetPath)"
@@ -290,6 +304,13 @@
$(OutDir)$(TargetName)$(TargetExt)
$(OutDir)$(TargetName).pdb
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" "$(TargetPath)"
@@ -324,6 +345,13 @@
$(OutDir)$(TargetName)$(TargetExt)
$(OutDir)$(TargetName).pdb
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" "$(TargetPath)"
@@ -357,6 +385,13 @@
MachineX86
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
REM signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" /t http://timestamp.comodoca.com/authenticode "$(TargetPath)"
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -391,6 +426,13 @@
MachineX86
/ignore:4099 %(AdditionalOptions)
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
REM signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" /t http://timestamp.comodoca.com/authenticode "$(TargetPath)"
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -427,6 +469,13 @@
$(OutDir)$(TargetName)$(TargetExt)
$(OutDir)$(TargetName).pdb
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
REM signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" /t http://timestamp.comodoca.com/authenticode "$(TargetPath)"
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -463,6 +512,13 @@
$(OutDir)$(TargetName)$(TargetExt)
$(OutDir)$(TargetName).pdb
+
+
+ git log -1 > nul 2>&1
+ IF %ERRORLEVEL% NEQ 0 exit 0
+ git log -1 2>nul | FINDSTR /C:"Date:" | FOR /F "tokens=3,4,5,6,7" %%F in ('findstr "."') do @echo #define SOURCE_COMMIT_DATE "%%I-%%F-%%G %%H%%J" > $(ProjectDir)..\microscript\ILibDuktape_Commit.h
+
+
REM signtool.exe sign /sha1 fd5940d8fd585545614fea6da455f25d224b00c9 /d "MeshService" /du "http://opentools.homeip.net" /t http://timestamp.comodoca.com/authenticode "$(TargetPath)"
"$(OutputPath)$(TargetFileName)" ..\modules\PostBuild.js
@@ -545,6 +601,7 @@
+
diff --git a/meshservice/MeshService.vcxproj.filters b/meshservice/MeshService.vcxproj.filters
index a619213..b5f3766 100644
--- a/meshservice/MeshService.vcxproj.filters
+++ b/meshservice/MeshService.vcxproj.filters
@@ -304,5 +304,8 @@
Meshcore
+
+ Microscript
+
\ No newline at end of file
diff --git a/microscript/ILibDuktape_Commit.h b/microscript/ILibDuktape_Commit.h
new file mode 100644
index 0000000..60d275f
--- /dev/null
+++ b/microscript/ILibDuktape_Commit.h
@@ -0,0 +1 @@
+#define SOURCE_COMMIT_DATE NULL
diff --git a/microscript/ILibDuktape_ScriptContainer.c b/microscript/ILibDuktape_ScriptContainer.c
index c894bf1..9d83ded 100644
--- a/microscript/ILibDuktape_ScriptContainer.c
+++ b/microscript/ILibDuktape_ScriptContainer.c
@@ -66,6 +66,7 @@ limitations under the License.
#include "ILibDuktape_ChildProcess.h"
#include "ILibDuktape_HECI.h"
#include "ILibDuktape_Debugger.h"
+#include "ILibDuktape_Commit.h"
#ifdef _POSIX
extern char **environ;
@@ -934,6 +935,9 @@ void ILibDuktape_ScriptContainer_Process_Init(duk_context *ctx, char **argList)
{
int i = 0;
ILibDuktape_EventEmitter *emitter;
+ char *sslv = (char*)SSLeay_version(SSLEAY_VERSION);
+ char *sslvS = strstr(sslv, " ") + 1;
+
duk_push_global_object(ctx); // [g]
duk_push_object(ctx); // [g][process]
@@ -942,6 +946,59 @@ void ILibDuktape_ScriptContainer_Process_Init(duk_context *ctx, char **argList)
ILibDuktape_CreateInstanceMethod(ctx, "cwd", ILibDuktape_Process_cwd, 0);
ILibDuktape_CreateInstanceMethod(ctx, "setenv", ILibDuktape_Process_setenv, 2);
+ duk_push_object(ctx);
+ if (sslvS != ((char*)NULL + 1))
+ {
+ char *tmp = strstr(sslvS, " ");
+ if (tmp != NULL)
+ {
+ duk_push_lstring(ctx, sslvS, (duk_size_t)(tmp - sslvS));
+ duk_put_prop_string(ctx, -2, "openssl");
+ }
+ }
+ duk_push_string(ctx, DUK_GIT_DESCRIBE); duk_put_prop_string(ctx, -2, "duktape");
+ if (SOURCE_COMMIT_DATE != NULL)
+ {
+ duk_eval_string(ctx,
+ "(function translateDate(COMMIT_DATE)\
+ {\
+ var MONTH_TRANSLATE =\
+ {\
+ 'Jan' : '01',\
+ 'Feb' : '02',\
+ 'Mar' : '03',\
+ 'Apr' : '04',\
+ 'May' : '05',\
+ 'Jun' : '06',\
+ 'Jul' : '07',\
+ 'Aug' : '08',\
+ 'Sep' : '09',\
+ 'Oct' : '10',\
+ 'Nov' : '11',\
+ 'Dec' : '12'\
+ };\
+ var tz = COMMIT_DATE.substring(COMMIT_DATE.length-2);\
+ COMMIT_DATE = COMMIT_DATE.substring(0, COMMIT_DATE.length-2) + ':' + tz;\
+ var tmp = COMMIT_DATE.split('-');\
+ tmp[1] = MONTH_TRANSLATE[tmp[1]];\
+ var day = tmp[2];\
+ var day2 = day.split(' ');\
+ day2[0] = day2[0].padStart(2, '0');\
+ tmp[2] = day2.join(' ');\
+ return (new Date(tmp.join('-')));\
+ })"); // [func]
+ duk_push_string(ctx, SOURCE_COMMIT_DATE); // [func][date]
+ if (duk_pcall(ctx, 1) == 0)
+ {
+ duk_put_prop_string(ctx, -2, "meshAgent");
+ }
+ else
+ {
+ duk_pop(ctx);
+ }
+ }
+ ILibDuktape_CreateReadonlyProperty(ctx, "versions");
+
#if defined(WIN32) // [g][process][platform]
duk_push_string(ctx, "win32");
#elif defined(__APPLE__)