aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tmp/test/unsafe.js
blob: 73e4fb34e598d2fc881c09467958553997d03d58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var
  fs    = require('fs'),
  join  = require('path').join,
  spawn = require('./spawn');

var unsafe = spawn.arg;
spawn.tmpFunction({ unsafeCleanup: unsafe }, function (err, name) {
  if (err) {
    spawn.err(err, spawn.exit);
    return;
  }

  try {
    // file that should be removed
    var fd = fs.openSync(join(name, 'should-be-removed.file'), 'w');
    fs.closeSync(fd);

    // in tree source
    var symlinkSource = join(__dirname, 'symlinkme');
    // testing target
    var symlinkTarget = join(name, 'symlinkme-target');

    // symlink that should be removed but the contents should be preserved.
    fs.symlinkSync(symlinkSource, symlinkTarget, 'dir');

    spawn.out(name, spawn.exit);
  } catch (e) {
    spawn.err(e.toString(), spawn.exit);
  }
});