e095ddc68e500a319f029ec768d372b2c1252f03
[yaffs-website] / node_modules / grunt / node_modules / dateformat / bin / cli.js
1 #!/usr/bin/env node
2 /**
3  * dateformat <https://github.com/felixge/node-dateformat>
4  *
5  * Copyright (c) 2014 Charlike Mike Reagent (cli), contributors.
6  * Released under the MIT license.
7  */
8
9 'use strict';
10
11 /**
12  * Module dependencies.
13  */
14
15 var dateFormat = require('../lib/dateformat');
16 var meow = require('meow');
17 var stdin = require('get-stdin');
18
19 var cli = meow({
20   pkg: '../package.json',
21   help: [
22     'Options',
23     '  --help          Show this help',
24     '  --version       Current version of package',
25     '  -d | --date     Date that want to format (Date object as Number or String)',
26     '  -m | --mask     Mask that will use to format the date',
27     '  -u | --utc      Convert local time to UTC time or use `UTC:` prefix in mask',
28     '  -g | --gmt      You can use `GMT:` prefix in mask',
29     '',
30     'Usage',
31     '  dateformat [date] [mask]',
32     '  dateformat "Nov 26 2014" "fullDate"',
33     '  dateformat 1416985417095 "dddd, mmmm dS, yyyy, h:MM:ss TT"',
34     '  dateformat 1315361943159 "W"',
35     '  dateformat "UTC:h:MM:ss TT Z"',
36     '  dateformat "longTime" true',
37     '  dateformat "longTime" false true',
38     '  dateformat "Jun 9 2007" "fullDate" true',
39     '  date +%s | dateformat',
40     ''
41   ].join('\n')
42 })
43
44 var date = cli.input[0] || cli.flags.d || cli.flags.date || Date.now();
45 var mask = cli.input[1] || cli.flags.m || cli.flags.mask || dateFormat.masks.default;
46 var utc = cli.input[2] || cli.flags.u || cli.flags.utc || false;
47 var gmt = cli.input[3] || cli.flags.g || cli.flags.gmt || false;
48
49 utc = utc === 'true' ? true : false;
50 gmt = gmt === 'true' ? true : false;
51
52 if (!cli.input.length) {
53   stdin(function(date) {
54     console.log(dateFormat(date, dateFormat.masks.default, utc, gmt));
55   });
56   return;
57 }
58
59 if (cli.input.length === 1 && date) {
60   mask = date;
61   date = Date.now();
62   console.log(dateFormat(date, mask, utc, gmt));
63   return;
64 }
65
66 if (cli.input.length >= 2 && date && mask) {
67   if (mask === 'true' || mask === 'false') {
68     utc = mask === 'true' ? true : false;
69     gmt = !utc;
70     mask = date
71     date = Date.now();
72   }
73   console.log(dateFormat(date, mask, utc, gmt));
74   return;
75 }