| } | } | ||||
| , getpulltask(def){ | , getpulltask(def){ | ||||
| // def can be an instance config | |||||
| // Or an object with many repos and elevated repos | |||||
| // Or a single repo ( Either Elevated or normal. ) | |||||
| def = (def ? ( | def = (def ? ( | ||||
| def.requiresElevation = true, | |||||
| def.reqularRepos = def.repos, | |||||
| def.elevatedRepos = def.elevatedRunasRepos | |||||
| // def.requiresElevation = true, | |||||
| // def.repos = def.repos, | |||||
| // def.elevatedRepos = def.elevatedRunasRepos, | |||||
| def | |||||
| ) : false) || { | ) : false) || { | ||||
| requiresElevation : true, | |||||
| reqularRepos : gitRepos, | |||||
| elevatedRepos : elevatedRunasRepos | |||||
| repos : repomanifest.repos, | |||||
| elevatedRepos : repomanifest.elevated | |||||
| } | } | ||||
| var elevatedpulltasks = null; | |||||
| if(def.repo) { | |||||
| // Single repo case. | |||||
| if(def.repo.requiresElevation) { | |||||
| elevatedpulltasks = function() { | |||||
| return performPull(def.repo).then(() => { | |||||
| return true; | |||||
| }).catch((e) => { | |||||
| console.error(e) | |||||
| }) | |||||
| } | |||||
| return | |||||
| } | |||||
| else { | |||||
| var regularpulltasks = function(){ | |||||
| var pendingpulls = []; | |||||
| pendingpulls.push(performPull(def.repo)) | |||||
| return Promise.all(pendingpulls).finally(Traq.finally) | |||||
| } | |||||
| } | |||||
| if(elevatedpulltasks) return getTaskWithElevation( { elevatedpulltasks, regularpulltasks} ) | |||||
| else return getTaskWithoutElevation({ regularpulltasks}) | |||||
| } | |||||
| console.log(`-------------------Processing pull for : ${def.repo} ${def.branch}`) | |||||
| // console.log(`-------------------Processing pull for : ${def.repo} ${def.branch}`) | |||||
| console.dir(def) | console.dir(def) | ||||
| var env = Object.assign({}, process.env); // Shallow clone it. | var env = Object.assign({}, process.env); // Shallow clone it. | ||||
| var useGitPull = processedArgs.useGitPull || false; | var useGitPull = processedArgs.useGitPull || false; | ||||
| if(def.elevatedRepos || def.reqularRepos) { | |||||
| if(def.elevatedRepos || def.repos) { | |||||
| if(def.elevatedRepos) def.requiresElevation = true; | if(def.elevatedRepos) def.requiresElevation = true; | ||||
| else delete def.requiresElevation; | else delete def.requiresElevation; | ||||
| } | } | ||||
| else { | else { | ||||
| if(def.requiresElevation) def.elevatedRepos = [def] | if(def.requiresElevation) def.elevatedRepos = [def] | ||||
| else def.reqularRepos = [def] | |||||
| else def.repos = [def] | |||||
| } | } | ||||
| var elevatedpulltasks = null; | |||||
| var regularpulltasks = function(){ return Promise.resolve(true) } | var regularpulltasks = function(){ return Promise.resolve(true) } | ||||
| if(def.elevatedRepos){ | if(def.elevatedRepos){ | ||||
| elevatedpulltasks = function() { | elevatedpulltasks = function() { | ||||
| }) | }) | ||||
| } | } | ||||
| } | } | ||||
| if(def.reqularRepos) { | |||||
| if(def.repos) { | |||||
| var regularpulltasks = function(){ | var regularpulltasks = function(){ | ||||
| var pendingpulls = []; | var pendingpulls = []; | ||||
| def.reqularRepos.forEach((def) => { pendingpulls.push(performPull(def.repo)) }) | |||||
| def.repos.forEach((def) => { pendingpulls.push(performPull(def.repo)) }) | |||||
| return Promise.all(pendingpulls).finally(Traq.finally) | return Promise.all(pendingpulls).finally(Traq.finally) | ||||
| } | } | ||||
| } | } |