Skip to content

Commit ca3fa54

Browse files
committed
Implement number of files to keep option
1 parent 3d42912 commit ca3fa54

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

headless_zip.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ var path = require('path')
1919
var JSZip = require("jszip");
2020

2121
var dirToWriteTo;
22+
var filesToKeep = 10;
23+
var filesWritten = [];
2224

2325
function onError(err) {
2426
console.error('Headless Zip: an error occurred:', err)
@@ -35,10 +37,18 @@ function deleteDir(directory) {
3537
}
3638
}
3739

40+
function deleteFile(filename) {
41+
fs.unlink(filename)
42+
}
43+
3844
module.exports.setHeadlessOutputDir = function setHeadlessOutputDir(dir) {
3945
dirToWriteTo = dir;
4046
}
4147

48+
module.exports.setFilesToKeep = function setFilesToKeep(numFiles) {
49+
filesToKeep = numFiles;
50+
}
51+
4252
function timestamp() {
4353
var date = new Date(Date.now())
4454
var timestamp = pad(date.getDate().toString()) + pad((date.getMonth() + 1).toString()) + date.getFullYear().toString().substr(2,3) + '_'
@@ -63,14 +73,20 @@ module.exports.headlessZip = function headlessZip(dirToZip) {
6373
outputFileName = 'nodeappmetrics' + timestamp() + '.hcd'
6474
}
6575

76+
filesWritten.push(outputFileName)
77+
if(filesWritten.length > filesToKeep) {
78+
var earliest = filesWritten.shift()
79+
deleteFile(earliest)
80+
}
81+
6682
var zip = new JSZip();
6783
fs.readdir(dirToZip, function(error, files) {
6884
if (error) {
69-
onError(error)
70-
return
71-
}
85+
onError(error)
86+
return
87+
}
7288
for (var i = 0, len = files.length; i < len; i++) {
73-
zip.file(files[i], fs.readFileSync(path.join(dirToZip, files[i])), {compression : "DEFLATE"})
89+
zip.file(files[i], fs.readFileSync(path.join(dirToZip, files[i])), {compression : "DEFLATE"})
7490
}
7591

7692
zip.generateNodeStream({type:'nodebuffer',streamFiles:true})

index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,10 @@ module.exports.monitor = function() {
258258
if(headlessOutputDir) {
259259
headlessZip.setHeadlessOutputDir(headlessOutputDir);
260260
}
261+
var headlessFilesToKeep = agent.getOption('com.ibm.diagnostics.healthcenter.headless.files.to.keep');
262+
if(headlessFilesToKeep && !isNaN(headlessFilesToKeep) && headlessFilesToKeep > 0) {
263+
headlessZip.setFilesToKeep(headlessFilesToKeep);
264+
}
261265
}
262266
return this.api;
263267
};

0 commit comments

Comments
 (0)