aboutsummaryrefslogtreecommitdiffstats
path: root/src/index.ts
blob: e081fbc3bcb5127045bc65aa0176d6828220b52a (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
#!/usr/bin/env node

import * as fs from 'fs-extra';
import * as program from 'commander';
import tag from './tag/tag';
import scss from './tag/scss';
import index from './tag/index';
import * as pkg from '../package.json';

async function main(tagName: string) {
  const name = tagName.toLocaleLowerCase();
  console.log(`Creating component ${name}...`);

  fs.mkdir(name);
  await fs.writeFile(`${name}/${name}.tag`, tag.replace(/\$name/g, name));
  await fs.writeFile(`${name}/${name}.scss`, scss.replace(/\$name/g, name));
  await fs.writeFile(`${name}/${name}.js`, index.replace(/\$name/g, name));
};

program
  .version((<any> pkg).version)
  .arguments('<name>')
  .action(name => {
    main(name);
  })
  .action(() => {
    console.log('No component name specified.');
  })
  .usage('create-riot-component [name]')
  .parse(process.argv);