Files
2020-07-08 15:37:09 +02:00

56 lines
1.7 KiB
JavaScript

"use strict";
var GitIgnore = require('./library');
var fs = require('fs');
var OS = require('os');
(function() {
var types = process.argv.slice(2);
if (!types || types.length === 0) {
console.log("Usage: gitignore [PROJECT TYPE]");
console.log("Example: gitignore rails");
console.log("Available project types can be found by running `gitignore -types` or at https://github.com/github/gitignore");
return;
}
if (/^((--?)?types|-t)$/i.test(types.join())) {
console.log("Fetching available types...");
GitIgnore.getTypes(function(err, types){
if(err){
if(err.statusCode){
console.error("Could not access file from GitHub. Recieved status code "+err.statusCode);
} else {
console.error("An unexpected error occurred.");
console.error(err);
}
return;
}
console.log(types.join(OS.EOL));
});
} else {
types.forEach(function(type) {
type = type.charAt(0).toUpperCase() + type.slice(1);
var file = fs.createWriteStream(".gitignore", {'flags': 'a'});
GitIgnore.writeFile({
type: type,
file: file
}, function(err){
if(err){
if(err.statusCode){
console.log("There is no gitignore for " + type);
console.log("Available project types can be found by running `gitignore -types` or at https://github.com/github/gitignore");
console.error("Recieved status code "+err.statusCode);
} else {
console.error("An unexpected error occurred.");
console.error(err);
}
return;
}
console.log("Created .gitignore file for type "+type+" :)");
});
});
}
}).call(this);