diff --git a/package-lock.json b/package-lock.json index 926243c94..698447184 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3527,7 +3527,7 @@ "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" } diff --git a/package.json b/package.json index 9b4749823..8c017b333 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "qrcode": "^1.2.0", "recursive-readdir": "^2.2.1", "request": "^2.83.0", + "rimraf": "^2.6.2", "s3-block-read-stream": "^0.2.0", "safetydance": "^0.7.1", "semver": "^5.5.0", @@ -87,8 +88,7 @@ "mock-aws-s3": "git+https://github.com/cloudron-io/mock-aws-s3.git", "nock": "^9.0.14", "node-sass": "^4.6.1", - "readdirp": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "rimraf": "^2.6.2" + "readdirp": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz" }, "scripts": { "migrate_local": "DATABASE_URL=mysql://root:@localhost/box node_modules/.bin/db-migrate up", diff --git a/src/apptask.js b/src/apptask.js index dd95d2e39..a245fb5a7 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -41,6 +41,7 @@ var addons = require('./addons.js'), path = require('path'), paths = require('./paths.js'), reverseProxy = require('./reverseproxy.js'), + rimraf = require('rimraf'), safe = require('safetydance'), shell = require('./shell.js'), superagent = require('superagent'), @@ -324,6 +325,18 @@ function removeIcon(app, callback) { }); } +function cleanupLogs(app, callback) { + assert.strictEqual(typeof app, 'object'); + assert.strictEqual(typeof callback, 'function'); + + const logFolder = path.join(paths.LOG_FOLDER, app.id); + + rimraf(logFolder, function (error) { + if (error) debugApp(app, 'cannot cleanup logs at %s: %s', logFolder, error); + callback(null); + }); +} + function waitForDnsPropagation(app, callback) { assert.strictEqual(typeof app, 'object'); assert.strictEqual(typeof callback, 'function'); @@ -677,12 +690,15 @@ function uninstall(app, callback) { updateApp.bind(null, app, { installationProgress: '60, Unregistering subdomain' }), unregisterSubdomain.bind(null, app, app.location, app.domain), - updateApp.bind(null, app, { installationProgress: '80, Cleanup icon' }), + updateApp.bind(null, app, { installationProgress: '70, Cleanup icon' }), removeIcon.bind(null, app), - updateApp.bind(null, app, { installationProgress: '90, Unconfiguring reverse proxy' }), + updateApp.bind(null, app, { installationProgress: '80, Unconfiguring reverse proxy' }), unconfigureReverseProxy.bind(null, app), + updateApp.bind(null, app, { installationProgress: '90, Cleanup logs' }), + cleanupLogs.bind(null, app), + updateApp.bind(null, app, { installationProgress: '95, Remove app from database' }), appdb.del.bind(null, app.id) ], function seriesDone(error) {