| Index: installer/emb.vbs |
| =================================================================== |
| new file mode 100644 |
| --- /dev/null |
| +++ b/installer/emb.vbs |
| @@ -0,0 +1,40 @@ |
| +' Emb.vbs. |
| +' Argument(0) is the name of the storage. |
| +' Argument(1) is the original database. |
| +' Argument(2) is the path to the transform file. |
| +' This was changed from the original to work around a gyp defect involved that rewrites whole command lines rather than just path-containing variables. |
| + |
| +Option Explicit |
| + |
| +' Check arguments |
| +If WScript.Arguments.Count < 2 Then |
| + WScript.Echo "Usage is emb.vbs [storage name] [original database] [transform]" |
| + WScript.Quit(1) |
| +End If |
| + |
| +' Connect to Windows Installer object |
| +On Error Resume Next |
| +Dim installer : Set installer = Nothing |
| +Set installer = Wscript.CreateObject("WindowsInstaller.Installer") |
| + |
| +' Evaluate command-line arguments and set open and update modes |
| +Dim databasePath: databasePath = Wscript.Arguments(1) |
| +Dim importPath : importPath = Wscript.Arguments(2) |
| +Dim storageName : storageName = Wscript.Arguments(0) |
| + |
| +' Open database and create a view on the _Storages table |
| +Dim sqlQuery : sqlQuery = "SELECT `Name`,`Data` FROM _Storages" |
| +Dim database : Set database = installer.OpenDatabase(databasePath, 1) |
| +Dim view : Set view = database.OpenView(sqlQuery) |
| + |
| +'Create and Insert the row. |
| +Dim record : Set record = installer.CreateRecord(2) |
| +record.StringData(1) = storageName |
| +view.Execute record |
| + |
| +'Insert storage - copy data into stream |
| +record.SetStream 2, importPath |
| +view.Modify 3, record |
| +database.Commit |
| +Set view = Nothing |
| +Set database = Nothing |