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