jsdoc/node/postinstall.js
Jeff Williams 8d36f92e7a fix Node.js postinstall script on Windows
should now work on Windows XP and in shells without admin privileges
2013-11-09 10:58:04 -08:00

38 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
var fs = require('fs');
var path = require('path');
var jsdocPath = path.resolve( path.join(__dirname, '..') );
var symlinkSrc = path.join( jsdocPath, 'lib', 'jsdoc' );
var symlinkDest = path.join( jsdocPath, 'node_modules', 'jsdoc' );
fs.symlink(symlinkSrc, symlinkDest, 'dir', function(err) {
if (err) {
// On Windows, try to create a junction instead
if (process.platform.indexOf('win') === 0) {
fs.symlink(symlinkSrc, symlinkDest, 'junction', function(junctionErr) {
if (junctionErr) {
console.error('Unable to create a symbolic link or junction from %s to %s.\n' +
'Symbolic link result: %s\nJunction result: %s\n' +
'Make sure you have write privileges in the target directory. ' +
'You may need to run the Windows shell as an administrator.',
symlinkSrc, symlinkDest, err, junctionErr);
process.exit(1);
}
else {
process.exit(0);
}
});
}
else {
console.error('Unable to create a symbolic link from %s to %s. %s\n',
symlinkSrc, symlinkDest, err);
process.exit(1);
}
}
else {
process.exit(0);
}
});