mirror of
https://github.com/bower/bower.git
synced 2026-01-15 01:08:07 -05:00
53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
var spawn = require('child_process').spawn;
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var rimraf = require('rimraf');
|
|
|
|
var _ = require('lodash');
|
|
|
|
// Get the previous bower version
|
|
var version = '';
|
|
var cp = spawn('bower', ['-v']);
|
|
|
|
cp
|
|
.stdout.on('data', function (data) {
|
|
version += data;
|
|
})
|
|
.on('close', function (code) {
|
|
version = version.replace(/\n$/, '');
|
|
if (code || !version) return;
|
|
|
|
// The cache folders changed, so we cleanup the old cache structure
|
|
var temp = process.env.TMPDIR
|
|
|| process.env.TMP
|
|
|| process.env.TEMP
|
|
|| process.platform === 'win32' ? 'c:\\windows\\temp' : '/tmp';
|
|
|
|
var home = (process.platform === 'win32'
|
|
? process.env.USERPROFILE
|
|
: process.env.HOME) || temp;
|
|
|
|
var roaming = process.platform === 'win32'
|
|
? path.resolve(process.env.APPDATA || home || temp)
|
|
: path.resolve(home || temp);
|
|
|
|
// If on windows, delete the old bower-cache folder
|
|
if (process.platform === 'win32') {
|
|
return rimraf(path.join(roaming, 'bower-cache'), function (err) {
|
|
if (err) console.log('Error deleting the deprecated bower-cache folder');
|
|
});
|
|
}
|
|
|
|
// If on linux / mac delete the contents inside the .bower folder, except the cache and links, need to be removed
|
|
var folder = path.join(roaming, '.bower');
|
|
fs.readdir(folder, function (err, files) {
|
|
if (err) return;
|
|
files = _.without(files, 'cache', 'links');
|
|
files.forEach(function (file) {
|
|
rimraf(path.join(folder, file), function (err) {
|
|
if (err) console.log('Error deleting the deprecated .bower contents folder');
|
|
});
|
|
});
|
|
});
|
|
});
|