unsafe.js 768 B

12345678910111213141516171819202122232425262728293031
  1. var
  2. fs = require('fs'),
  3. join = require('path').join,
  4. spawn = require('./spawn');
  5. var unsafe = spawn.arg;
  6. spawn.tmpFunction({ unsafeCleanup: unsafe }, function (err, name) {
  7. if (err) {
  8. spawn.err(err, spawn.exit);
  9. return;
  10. }
  11. try {
  12. // file that should be removed
  13. var fd = fs.openSync(join(name, 'should-be-removed.file'), 'w');
  14. fs.closeSync(fd);
  15. // in tree source
  16. var symlinkSource = join(__dirname, 'symlinkme');
  17. // testing target
  18. var symlinkTarget = join(name, 'symlinkme-target');
  19. // symlink that should be removed but the contents should be preserved.
  20. fs.symlinkSync(symlinkSource, symlinkTarget, 'dir');
  21. spawn.out(name, spawn.exit);
  22. } catch (e) {
  23. spawn.err(e.toString(), spawn.exit);
  24. }
  25. });