Skip to content

Commit

Permalink
bundle.vbs will be created for stand-alone execution
Browse files Browse the repository at this point in the history
  • Loading branch information
Praveen Nandagiri committed Jun 17, 2021
1 parent 8147fa8 commit 9013c93
Show file tree
Hide file tree
Showing 12 changed files with 2,091 additions and 111 deletions.
9 changes: 9 additions & 0 deletions bin/build.wsf
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@
<script language="VBScript" src="lib/core/Signtool/Signtool.vbs" />
<script language="VBScript" src="lib/CPOL/vb_format_function.vbs" />
<script language="VBScript" src="lib/core/globals.vbs" />

<script language="VBScript" src="lib/core/include-build.vbs" />

<script language="VBScript" src="lib/core/params.vbs" />

<script language="VBScript">
'===========================
Include file
'===========================
</script>
</job>
</package>
43 changes: 43 additions & 0 deletions bin/run.wsf
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<package id="vbspm">
<job id="vbspm-build">
<runtime>
<named name="file" helpstring="File to be executed" required="true" type="string"/>
</runtime>

<script language="VBScript" src="lib/core/init.vbs" />
<script language="VBScript" src="lib/core/ArrayUtil/ArrayUtil.vbs" />
<script language="VBScript" src="lib/core/FSO/FSO.vbs" />
<script language="VBScript" src="lib/core/Wshell/Wshell.vbs" />
<script language="VBScript" src="lib/core/VbsJson/VbsJson.vbs" />
<script language="VBScript" src="lib/core/JSONToXML/JSONToXML.vbs" />
<script language="VBScript" src="lib/core/Signtool/Signtool.vbs" />
<script language="VBScript" src="lib/CPOL/vb_format_function.vbs" />
<script language="VBScript" src="lib/core/globals.vbs" />

<script language="VBScript" src="lib/core/include-run.vbs" />

<script language="VBScript" src="lib/core/params.vbs" />

<script language="VBScript"><![CDATA[
' Just before start writing Include/Import file contents to the builder,
' Write the vbspm.vbs file contents
Dim d: d = cFS.GetFileDir(WScript.ScriptFullName)
Dim core: core = cFS.ReadFile(d & "\vbspm-build.vbs")
cFS.WriteFile "build\bundle.vbs", core, true
'===========================
Include file
'===========================
' Wscript.Echo arrUtil.toString(IncludedScripts)
Dim i
for i = 0 to UBound(IncludedScripts) step 1
core = cFS.ReadFile(IncludedScripts(i))
core = Replace(core, "Option Explicit", "")
core = vbCrLf & vbCrLf & "'================= File: " & IncludedScripts(i) & " =================" & vbCrLf & core
cFS.WriteFile "build\bundle.vbs", core, false
next]]>
</script>
</job>
</package>
46 changes: 13 additions & 33 deletions bin/wsfParser.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var {parseWSF, parseWSFStr} = require('wsf2json')
var {parseWSF, parseWSFStr, extractVBS} = require('wsf2json')
const fs = require('fs');
const { strict } = require('assert');

Expand All @@ -13,38 +13,18 @@ String.prototype.htmlEscape = function htmlEscape(str) {

parseWSF('bin\\build.wsf').then((jobs)=>{
// console.log(JSON.stringify(jobs, null, 2));
let vbsCombined = jobs.reduce((vbs, job)=>{
let { id, script, runtime } = job;
if (id) {
vbs += `\r\n\r\n\r\n' ================================== Job: ${id} ================================== \r\n`
}
if (script) {
vbs += script.reduce((s, scr)=>{
let {type, src, exists, language, value} = scr;
if (type) {
s += `\r\n' ================= ${type}`
if (type === 'src') {
s += ` : ${src}`
}
s += ` ================= \r\n`
}
if (language.toLowerCase() === "vbscript" && value) {
s += value;
}
return s;
}, '');
}
//Inject arguments usage
if (runtime) {
let usage = runtime.reduce((str, param)=>{
let {name, helpstring} = param;
str += `Wscript.Echo "/${name}: ${helpstring}"\r\n`;
return str;
},'');
vbs = vbs.replace('WScript.Arguments.ShowUsage', usage);
}
return vbs;
},'');
let vbsCombined = extractVBS(jobs);
vbsCombined = vbsCombined.htmlEscape();
// console.log('vbs combined:')
// console.log(vbsCombined);
fs.writeFileSync('vbspm-build.vbs', vbsCombined);
}).catch((error)=>{
console.error(error)
})

parseWSF('bin\\run.wsf').then((jobs)=>{
// console.log(JSON.stringify(jobs, null, 2));
let vbsCombined = extractVBS(jobs);
vbsCombined = vbsCombined.htmlEscape();
// console.log('vbs combined:')
// console.log(vbsCombined);
Expand Down

0 comments on commit 9013c93

Please sign in to comment.