UNPKG

2.67 kBJavaScriptView Raw
1#!/usr/bin/env node
2'use strict';require('babel-polyfill');var _https=require('https');var _https2=_interopRequireDefault(_https);var _minimist=require('minimist');var _minimist2=_interopRequireDefault(_minimist);var _token_prompt=require('./token_prompt.js');var _token_prompt2=_interopRequireDefault(_token_prompt);var _shelljs=require('shelljs');var _shelljs2=_interopRequireDefault(_shelljs);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}var argv=(0,_minimist2.default)(process.argv.slice(2)),statusCodeAuthError=401,statusCodeGood=200,getHostName=function getHostName(g){return 'api.'+(g?'github.com':'bitbucket.org');},getPath=function getPath(g,u,n){return g?'/user/repos':'/2.0/repositories/'+u+'/'+n;},getRepoName=function getRepoName(n){return n||process.cwd().split('/').reverse()[0];},getUserName=function getUserName(u){return u||_shelljs2.default.exec('git config --get user.username',{silent:true}).output.trim();},getRequestData=function getRequestData(_ref){var g=_ref.g;var n=_ref.n;var p=_ref.p;var data=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];var isPrivate=p||false;if(g){data.name=getRepoName(n);data.private=isPrivate;}else {data.scm='git';data.is_private=isPrivate;}return data;},createRequest=function _callee(args){var opts=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];var repoName,userName,token,auth,basic;return regeneratorRuntime.async(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:repoName=getRepoName(args.n);userName=getUserName(args.u);_context.next=4;return regeneratorRuntime.awrap((0,_token_prompt2.default)(args.t));case 4:token=_context.sent;auth=(userName+':'+token).trim();basic=new Buffer(auth,'ascii').toString('base64');opts.hostname=getHostName(args.g);opts.path=getPath(args.g,userName,repoName);opts.method='POST';opts.headers={'Authorization':'BASIC '+basic,'Content-Type':'application/json','User-Agent':'NodeJS HTTPS Client (grc)'};_https2.default.request(opts,function(res){if(res.statusCode===statusCodeGood){console.log('grc: repo '+repoName+' created');}else if(res.statusCode===statusCodeAuthError){console.log('Authorization error, check provided credentials');}else {console.log(res.statusCode);res.on('data',function(resData){console.log('grc: Seems to be a problem with the request:');console.log('Response:\n-----------------------');console.log(JSON.stringify(resData));});}}).on('error',function(e){throw e;}).end(JSON.stringify(getRequestData(args)));case 12:case 'end':return _context.stop();}}},null,this);};if(argv.v){console.log(''+require('../package.json').version);}else {createRequest(argv);}
\No newline at end of file