4 changed files with 125 additions and 0 deletions
@ -0,0 +1,6 @@ |
|||
|
|||
module.exports = { |
|||
user: process.env.USER, |
|||
email: process.env.USER + '@' + process.env.HOST, |
|||
date: new Date(), |
|||
}; |
@ -0,0 +1,22 @@ |
|||
/* |
|||
* <%- filename %> |
|||
* |
|||
* Copyright <%- new Date().getFullYear() %> <%- user %> <<%- email %>> |
|||
* |
|||
* This program is free software; you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation; either version 2 of the License, or |
|||
* (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, write to the Free Software |
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
|||
* MA 02110-1301, USA. |
|||
* |
|||
* |
|||
*/ |
@ -0,0 +1,69 @@ |
|||
#!/usr/bin/env node
|
|||
|
|||
var path = require('path'); |
|||
var os = require('os'); |
|||
var fs = require('fs'); |
|||
var ejs = require('ejs'); |
|||
var configDir = path.join( process.env.HOME, '.file-headers' ); |
|||
|
|||
|
|||
function cp( src, dest ){ |
|||
var data = fs.readFileSync(src); |
|||
fs.writeFileSync( dest, data); |
|||
} |
|||
|
|||
function initialize(){ |
|||
if( !fs.existsSync( configDir )){ |
|||
fs.mkdirSync( configDir ); |
|||
cp( path.join( __dirname, 'default-template' ), path.join( configDir, 'default' ) ); |
|||
cp( path.join( __dirname, 'default-data.js' ), path.join( configDir, 'template_data.js' ) ); |
|||
} |
|||
} |
|||
|
|||
|
|||
function getTemplate( fname ){ |
|||
var ext = path.extname(fname).slice(1) || 'default'; |
|||
|
|||
if( fs.existsSync( path.join(configDir, ext ) ) ){ |
|||
return fs.readFileSync( path.join(configDir, ext ), 'utf-8' ); |
|||
} else { |
|||
return fs.readFileSync( path.join(configDir, 'default' ), 'utf-8' ); |
|||
} |
|||
} |
|||
|
|||
|
|||
function getConfig(){ |
|||
try{ |
|||
return require( path.join(configDir, 'template_data' ) ); |
|||
} catch(e){ |
|||
return { date: new Date(), user: process.env.USER, email: process.env.USER + '@' + os.hostname() }; |
|||
} |
|||
} |
|||
|
|||
|
|||
function getHeader( fname ){ |
|||
var template = getTemplate( fname ); |
|||
var config = getConfig(); |
|||
var data = Object.assign({ filename: fname }, config ); |
|||
return ejs.render( template, data ); |
|||
} |
|||
|
|||
|
|||
function printHeader( fname ){ |
|||
var header = getHeader( fname ); |
|||
console.log( header ); |
|||
} |
|||
|
|||
|
|||
if( require.main === module ){ |
|||
var fname = process.argv[2]; |
|||
initialize(); |
|||
|
|||
if( !fname ){ |
|||
console.log( 'file-header <filename>'); |
|||
process.exit(-1); |
|||
} |
|||
|
|||
printHeader( fname ); |
|||
} |
|||
|
@ -0,0 +1,28 @@ |
|||
{ |
|||
"name": "file-header", |
|||
"version": "0.0.1", |
|||
"description": "", |
|||
"main": "index.js", |
|||
"scripts": { |
|||
"test": "echo \"Error: no test specified\" && exit 1" |
|||
}, |
|||
"bin": { |
|||
"file-header": "./main.js" |
|||
}, |
|||
"author": { |
|||
"name": "Harish.K", |
|||
"email": "harish2704@gmail.com" |
|||
}, |
|||
"license": "ISC", |
|||
"dependencies": { |
|||
"ejs": "^2.5.3" |
|||
}, |
|||
"repository": { |
|||
"type": "git", |
|||
"url": "git+https://github.com/harish2704/file-header.git" |
|||
}, |
|||
"bugs": { |
|||
"url": "https://github.com/harish2704/file-header/issues" |
|||
}, |
|||
"homepage": "https://github.com/harish2704/file-header#readme" |
|||
} |
Loading…
Reference in new issue