| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | #!/usr/bin/env node'use strict'const loadFromDir = require('tacks/load-from-dir.js')process.exit(main(process.argv.slice(2)))function main (argv) {  if (argv.length !== 1) {    console.error('Usage: maketest <fixturedir>')    return 1  }  const fixturedir = process.argv[2]  console.log(generateFromDir(fixturedir))  return 0}function indent (ind, str) {  return str.replace(/\n/g, '\n' + ind)}function generateFromDir (dir) {  const tacks = loadFromDir(dir)  return `'use strict'const path = require('path')const test = require('tap').testconst Tacks = require('tacks')const File = Tacks.Fileconst Symlink = Tacks.Symlinkconst Dir = Tacks.Dirconst common = require('../common-tap.js')const basedir = path.join(__dirname, path.basename(__filename, '.js'))const testdir = path.join(basedir, 'testdir')const cachedir = path.join(basedir, 'cache')const globaldir = path.join(basedir, 'global')const tmpdir = path.join(basedir, 'tmp')const conf = {  cwd: testdir,  env: common.newEnv().extend({    npm_config_cache: cachedir,    npm_config_tmp: tmpdir,    npm_config_prefix: globaldir,    npm_config_registry: common.registry,    npm_config_loglevel: 'warn'  })}const fixture = new Tacks(Dir({  cache: Dir(),  global: Dir(),  tmp: Dir(),  testdir: ${indent('  ', tacks.fixture.toSource())}}))function setup () {  cleanup()  fixture.create(basedir)}function cleanup () {  fixture.remove(basedir)}test('setup', t => {  setup()  return common.fakeRegistry.listen()})test('example', t => {  return common.npm(['install'], conf).then(([code, stdout, stderr]) => {    t.is(code, 0, 'command ran ok')    t.comment(stdout.trim())    t.comment(stderr.trim())    // your assertions here  })})test('cleanup', t => {  common.fakeRegistry.close()  cleanup()  t.done()})\n`}
 |