allow multiple osx mpkg installs now and update uninstall.command
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Mar 4, 2024 at 16:34 UTC
c1bec678395bd9ccd8ad6adf5ef93a791aa501d8
2 files changed
+33
-2
agents/MeshAgentOSXPackager.zip
Binary files a/agents/MeshAgentOSXPackager.zip and b/agents/MeshAgentOSXPackager.zip differ
webserver.js
+33
-2
@@ -5844,9 +5844,11 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
5844
archive.on('error', function (err) { throw err; });
5845
5846
// Customize the mesh agent file name
5847
- var meshfilename = 'MeshAgent-' + mesh.name + '.zip'
5847
+ var meshfilename = 'MeshAgent-' + mesh.name + '.zip';
5848
+ var meshexecutablename = 'meshagent';
5849
if ((domain.agentcustomization != null) && (typeof domain.agentcustomization.filename == 'string')) {
5849
- meshfilename = meshfilename.split('meshagent').join(domain.agentcustomization.filename).split('MeshAgent').join(domain.agentcustomization.filename);
5850
+ meshfilename = meshfilename.split('MeshAgent').join(domain.agentcustomization.filename);
5851
+ meshexecutablename = meshexecutablename.split('meshagent').join(domain.agentcustomization.filename);
5852
}
5853
5854
// Customise the mesh agent display name
@@ -5855,6 +5857,18 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
5857
meshdisplayname = meshdisplayname.split('Mesh Agent').join(domain.agentcustomization.displayname);
5858
}
5859
5860
+ // Customise the mesh agent service name
5861
+ var meshservicename = 'meshagent';
5862
+ if ((domain.agentcustomization != null) && (typeof domain.agentcustomization.servicename == 'string')) {
5863
+ meshservicename = meshservicename.split('meshagent').join(domain.agentcustomization.servicename);
5864
+ }
5865
+
5866
+ // Customise the mesh agent company name
5867
+ var meshcompanyname = 'meshagent';
5868
+ if ((domain.agentcustomization != null) && (typeof domain.agentcustomization.companyname == 'string')) {
5869
+ meshcompanyname = meshcompanyname.split('meshagent').join(domain.agentcustomization.companyname);
5870
+ }
5871
+
5872
// Set the agent download including the mesh name.
5873
setContentDispositionHeader(res, 'application/octet-stream', meshfilename, null, 'MeshAgent.zip');
5874
archive.pipe(res);
@@ -5881,6 +5895,23 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
5895
zipfile.readEntry();
5896
});
5897
});
5898
+ } else if (entry.fileName == 'MeshAgent.mpkg/Contents/Packages/internal.pkg/Contents/meshagent_osx64_LaunchAgent.plist' ||
5899
+ entry.fileName == 'MeshAgent.mpkg/Contents/Packages/internal.pkg/Contents/meshagent_osx64_LaunchDaemon.plist' ||
5900
+ entry.fileName == 'MeshAgent.mpkg/Contents/Packages/internal.pkg/Contents/Info.plist' ||
5901
+ entry.fileName == 'MeshAgent.mpkg/Contents/Packages/internal.pkg/Contents/Resources/postflight' ||
5902
+ entry.fileName == 'MeshAgent.mpkg/Contents/Packages/internal.pkg/Contents/Resources/Postflight.sh' ||
5903
+ entry.fileName == 'MeshAgent.mpkg/Uninstall.command') {
5904
+ // This is a special file entry, we need to fix it.
5905
+ zipfile.openReadStream(entry, function (err, readStream) {
5906
+ readStream.on('data', function (data) { if (readStream.xxdata) { readStream.xxdata += data; } else { readStream.xxdata = data; } });
5907
+ readStream.on('end', function () {
5908
+ var options = { name: entry.fileName };
5909
+ if (entry.fileName.endsWith('postflight') || entry.fileName.endsWith('Uninstall.command')) { options.mode = 493; }
5910
+ archive.append(readStream.xxdata.toString().split('###SERVICENAME###').join(meshservicename).split('###COMPANYNAME###').join(meshcompanyname).split('###EXECUTABLENAME###').join(meshexecutablename), options);
5911
+ zipfile.readEntry();
5912
+ });
5913
+ });
5914
+
5915
} else {
5916
// Normal file entry
5917
zipfile.openReadStream(entry, function (err, readStream) {