|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var callshelltask = (args) => { |
|
|
var callshelltask = (args) => { |
|
|
console.dir(args) |
|
|
|
|
|
return getshelltask(args)() } |
|
|
|
|
|
|
|
|
// console.dir(args) |
|
|
|
|
|
if( Object.prototype.toString.call(args) === '[object Function]' ) { |
|
|
|
|
|
return args; |
|
|
|
|
|
} |
|
|
|
|
|
return getshelltask(args)() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var getshelltask = (args) => { |
|
|
var getshelltask = (args) => { |
|
|
return args[0] === 'rm' ? getgitbashtask(args) : () => { return nodeShellExec.apply(null, args) } } |
|
|
return args[0] === 'rm' ? getgitbashtask(args) : () => { return nodeShellExec.apply(null, args) } } |
|
|
|
|
|
|
|
|
dirs(perform_git_seturl) |
|
|
dirs(perform_git_seturl) |
|
|
} |
|
|
} |
|
|
// , 'reset' : ()=>{ |
|
|
// , 'reset' : ()=>{ |
|
|
// PB : TODO -- Cant have 2 resets !! |
|
|
|
|
|
|
|
|
// PB : TODO -- Cant have 2 resets !! | There is an npm reset that should be bundled. |
|
|
// // Reset the whole installation pertaining to this elxr folder. |
|
|
// // Reset the whole installation pertaining to this elxr folder. |
|
|
|
|
|
|
|
|
// } |
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// PB : TODO -- We should evaluate a whole list of remotes passed in from args instead of just one. |
|
|
// PB : TODO -- We should evaluate a whole list of remotes passed in from args instead of just one. |
|
|
var commands = [ |
|
|
var commands = [ |
|
|
|
|
|
// git remote -v| while read remote; do "${remote#origin/}" "$remote"; done |
|
|
|
|
|
// ['git', ['remote', '-v', '| while read remote; do "${remote#origin/}" "$remote"; done'], utils.assign( { |
|
|
['git', ['remote', '-v'], utils.assign( { |
|
|
['git', ['remote', '-v'], utils.assign( { |
|
|
evaluateResult : function(err, result){ |
|
|
evaluateResult : function(err, result){ |
|
|
|
|
|
// var found = result.messages.find( (r)=> { return r.includes( __args.remotename ) }) |
|
|
|
|
|
var remotes = [] |
|
|
|
|
|
var found = false; |
|
|
|
|
|
console.dir(result.messages) |
|
|
|
|
|
console.log(result + '---------------') |
|
|
|
|
|
result.messages.forEach( (line)=> { |
|
|
|
|
|
console.log(line + '$$$$$$$$$$$$$$$$$$$$') |
|
|
|
|
|
var matches = line.match(/(.*)?\s\s([^\(]*)?\s?\(?([^\)]*)\)?/); |
|
|
|
|
|
if(matches) { |
|
|
|
|
|
var remote = {}; |
|
|
|
|
|
remote[matches[1]] = matches[2]; |
|
|
|
|
|
if( (!matches[3].trim() || matches[3].trim() === 'fetch') && matches[1].trim() === remotename.trim()) { |
|
|
|
|
|
found = true; |
|
|
|
|
|
result.url = remote[remotename]; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
console.dir(remotes) |
|
|
return [ |
|
|
return [ |
|
|
result.messages.find( (r)=> { return r.includes( __args.remotename ) }) |
|
|
|
|
|
|
|
|
found |
|
|
, result |
|
|
, result |
|
|
] |
|
|
] |
|
|
} |
|
|
} |
|
|
} , options) ] |
|
|
} , options) ] |
|
|
, ['git', ['ls-remote', __args.url], utils.assign( { |
|
|
|
|
|
evaluateResult : function(err, result){ |
|
|
|
|
|
// fatal: unable to access '${__args.url}/': Failed to connect to git.bbh port 80 after 21025 ms: Timed out |
|
|
|
|
|
// `fatal: repository '${__args.url}/' not found` |
|
|
|
|
|
var hasfailed = /^fatal: .*/.test(result.messages.join(' ')) |
|
|
|
|
|
return [ |
|
|
|
|
|
!hasfailed, result |
|
|
|
|
|
] |
|
|
|
|
|
} |
|
|
|
|
|
} , options) ] |
|
|
|
|
|
|
|
|
, function(prevserialtaskresult) { |
|
|
|
|
|
console.log('================================') |
|
|
|
|
|
var url = __args || prevserialtaskresult.url; |
|
|
|
|
|
console.dir(prevserialtaskresult) |
|
|
|
|
|
return getshelltask(['git', ['ls-remote', url], utils.assign( { |
|
|
|
|
|
evaluateResult : function(err, result){ |
|
|
|
|
|
// fatal: unable to access '${__args.url}/': Failed to connect to git.bbh port 80 after 21025 ms: Timed out |
|
|
|
|
|
// `fatal: repository '${__args.url}/' not found` |
|
|
|
|
|
var hasfailed = /^fatal: .*/.test(result.messages.join(' ')) |
|
|
|
|
|
return [ |
|
|
|
|
|
!hasfailed, result |
|
|
|
|
|
] |
|
|
|
|
|
} |
|
|
|
|
|
} , options) ])() |
|
|
|
|
|
} |
|
|
] |
|
|
] |
|
|
var mapped = commands.map(callshelltask).map( p => p.catch(e => e)) // Handle errors later. |
|
|
|
|
|
return Promise.all(mapped).then( allresolved =>{ |
|
|
|
|
|
|
|
|
var mapped = commands.map(callshelltask) //.map( p => p.catch(e => e)) // Handle errors later. |
|
|
|
|
|
return any(mapped).then( allresolved =>{ |
|
|
console.dir(allresolved) |
|
|
console.dir(allresolved) |
|
|
!allresolved[0][0] && !allresolved[1][0] ? console.log('was not added as a remote and url is currently inaccessible.') |
|
|
!allresolved[0][0] && !allresolved[1][0] ? console.log('was not added as a remote and url is currently inaccessible.') |
|
|
: allresolved[0][0] && allresolved[1][0] ? console.log('was added as a remote and url is accessible.') |
|
|
: allresolved[0][0] && allresolved[1][0] ? console.log('was added as a remote and url is accessible.') |