NaturalCycles/nodejs-lib

View on GitHub
src/bin/kpy.ts

Summary

Maintainability
A
0 mins
Test Coverage
#!/usr/bin/env node

import yargs from 'yargs'
import { kpySync } from '../fs/kpy'
import { runScript } from '../script/runScript'

runScript(() => {
  const {
    _: [baseDir, ...inputPatterns],
    ...opt
  } = yargs.demandCommand(2).options({
    silent: {
      type: 'boolean',
      descr: 'Suppress all text output', // todo: desc!
    },
    verbose: {
      type: 'boolean',
      descr: 'Report progress on every file',
    },
    overwrite: {
      type: 'boolean',
      default: true,
    },
    dotfiles: {
      type: 'boolean',
    },
    flat: {
      type: 'boolean',
    },
    dry: {
      type: 'boolean',
    },
    move: {
      type: 'boolean',
      descr: 'Move files instead of copy',
    },
  }).argv

  const outputDir = inputPatterns.pop() as string

  /*
  console.log({
    argv: process.argv,
    baseDir,
    inputPatterns,
    outputDir,
    silent,
    overwrite,
  })*/

  const kpyOpt = {
    baseDir: baseDir as string,
    inputPatterns: inputPatterns as string[],
    outputDir,
    ...opt,
    noOverwrite: !opt.overwrite,
  }

  kpySync(kpyOpt)
})