|  |  | @@ -1,47 +1,80 @@ | 
		
	
		
			
			|  |  |  | module.exports = ((name, options)=>{ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return { | 
		
	
		
			
			|  |  |  | reposervers : [ | 
		
	
		
			
			|  |  |  | 'http://git.bbh' | 
		
	
		
			
			|  |  |  | , 'https://git.bbh.org.in' | 
		
	
		
			
			|  |  |  | , '//172.16.0.27/repos' | 
		
	
		
			
			|  |  |  | , 'https://github.com' | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | // Default set of users in main repos. | 
		
	
		
			
			|  |  |  | var users = [ | 
		
	
		
			
			|  |  |  | { username : `${options.username}`, password : `${options.password}` } | 
		
	
		
			
			|  |  |  | , { username : `chess` } | 
		
	
		
			
			|  |  |  | // , { username : `baptistdev`, password : 'encrypted' } | 
		
	
		
			
			|  |  |  | // , { username : `guest`, password : 'encrypted' } | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // User can always add more branches and remotes as needed. Mainifest only occupies | 
		
	
		
			
			|  |  |  | // well defined namespaces | 
		
	
		
			
			|  |  |  | , remotes : [ | 
		
	
		
			
			|  |  |  | // these are both fetch and push remotes. Use push - remotes to override push. | 
		
	
		
			
			|  |  |  | { 'chess' : `${options.reposerver}/chess/elxr.git` } | 
		
	
		
			
			|  |  |  | , { 'baptistdev-public' : 'https://github.com/baptistdev/elxr.git' } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Multiple urls dont tell us the current origin which may be | 
		
	
		
			
			|  |  |  | // different based on currently available/accessible based on device and client. | 
		
	
		
			
			|  |  |  | // We just treat them as different remotes and merge as needed. | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | , { 'origin' : `${options.reposerver}/${options.username}/elxr.git` } | 
		
	
		
			
			|  |  |  | , { 'origin-public' : `https://git.bbh.org.in/${options.username}/elxr.git` } | 
		
	
		
			
			|  |  |  | , { 'origin-unc' : `//172.16.0.27/repos/${options.username}/elxr.git` } | 
		
	
		
			
			|  |  |  | // , { `${options.username}` : `https://git.bbh.org.in/${options.username}/elxr.git` } | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | // ${options.reposerver} should be used to lookup current config. | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | , 'push-remotes' : [ | 
		
	
		
			
			|  |  |  | { 'chess' : 'no-pushing' } | 
		
	
		
			
			|  |  |  | , { 'baptistdev-public' : 'no-pushing' } | 
		
	
		
			
			|  |  |  | , { 'origin-public' : 'no-pushing' } | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // , 'fetch-remotes' : [] // Multiple fetch remotes are not supported by git. | 
		
	
		
			
			|  |  |  | // We therefore need to use | 
		
	
		
			
			|  |  |  | // - a pullall | 
		
	
		
			
			|  |  |  | // - or branch alias for multiple remote branch tracking branch strategy. | 
		
	
		
			
			|  |  |  | // 		-- This is however limited to corresponding branch names | 
		
	
		
			
			|  |  |  | // User can always add more branches and remotes as needed. Mainifest only occupies | 
		
	
		
			
			|  |  |  | // well defined namespaces | 
		
	
		
			
			|  |  |  | var remotes = { | 
		
	
		
			
			|  |  |  | // these are both fetch and push remotes. Use push - remotes to override push. | 
		
	
		
			
			|  |  |  | 'chess' : { | 
		
	
		
			
			|  |  |  | server : `${options.reposerver}`, user : 'chess', path : ``, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch | 
		
	
		
			
			|  |  |  | , push : 'no-pushing' } | 
		
	
		
			
			|  |  |  | , 'baptistdev-public' : { | 
		
	
		
			
			|  |  |  | server : `https://github.com`, user : 'baptistdev', path : ``, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch | 
		
	
		
			
			|  |  |  | , push : 'no-pushing' } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Multiple urls dont tell us the current origin which may be | 
		
	
		
			
			|  |  |  | // different based on currently available/accessible based on device and client. | 
		
	
		
			
			|  |  |  | // We just treat them as different remotes and merge as needed. | 
		
	
		
			
			|  |  |  | // | 
		
	
		
			
			|  |  |  | , 'origin' : { | 
		
	
		
			
			|  |  |  | server : `${options.reposerver}`, user : '${options.username}', path : ``, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'origin-public' : { | 
		
	
		
			
			|  |  |  | server : `https://git.bbh.org.in`, user : 'chess', path : ``, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch | 
		
	
		
			
			|  |  |  | , push : { | 
		
	
		
			
			|  |  |  | server : `${options.reposerver}`, user : `${options.username}`, path : ``, get url(){ return `${this.server}/${this.user}/${this.path}`} | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , 'origin-unc' : { | 
		
	
		
			
			|  |  |  | server : `//172.16.0.27/repos`, user : '${options.username}', path : ``, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | // , { `${options.username}` : `https://git.bbh.org.in/${options.username}/elxr.git` } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // tracking branches. | 
		
	
		
			
			|  |  |  | // We at least need one branch for each remote that we wish to track. | 
		
	
		
			
			|  |  |  | // , 'tracking-branches' : [ | 
		
	
		
			
			|  |  |  | //   { master : ['origin/master', 'chess/master'] } | 
		
	
		
			
			|  |  |  | // ] | 
		
	
		
			
			|  |  |  | // , 'fetch-remotes' : [] // Multiple fetch remotes are not supported by git. | 
		
	
		
			
			|  |  |  | // We therefore need to use | 
		
	
		
			
			|  |  |  | // - a pullall | 
		
	
		
			
			|  |  |  | // - or branch alias for multiple remote branch tracking branch strategy. | 
		
	
		
			
			|  |  |  | // 		-- This is however limited to corresponding branch names | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | // tracking branches. | 
		
	
		
			
			|  |  |  | // We at least need one branch for each remote that we wish to track. | 
		
	
		
			
			|  |  |  | // , 'tracking-branches' : [ | 
		
	
		
			
			|  |  |  | //   { master : ['origin/master', 'chess/master'] } | 
		
	
		
			
			|  |  |  | // ] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | var reposerverinstances = { | 
		
	
		
			
			|  |  |  | 'http://git.bbh' : { users, remotes } | 
		
	
		
			
			|  |  |  | , 'https://git.bbh.org.in' : { users, remotes, external : true } | 
		
	
		
			
			|  |  |  | , '//172.16.0.27/repos' : { users, remotes } | 
		
	
		
			
			|  |  |  | , 'https://github.com' : { | 
		
	
		
			
			|  |  |  | // We host a miniaml set of repositories in github. | 
		
	
		
			
			|  |  |  | get users() { return [{ username : `${this.username}` }]}, username : `baptistdev` | 
		
	
		
			
			|  |  |  | , remotes : { | 
		
	
		
			
			|  |  |  | 'baptistdev-public' : { | 
		
	
		
			
			|  |  |  | server : `https://github.com`, user : 'baptistdev', path : ``, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch | 
		
	
		
			
			|  |  |  | , push : 'no-pushing' } | 
		
	
		
			
			|  |  |  | // , Add other remotes here. | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | , external : true, public : true | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }) | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | return { | 
		
	
		
			
			|  |  |  | reposervers : Object.keys(reposerverinstances) | 
		
	
		
			
			|  |  |  | , reposerverinstances | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | , repos : [ | 
		
	
		
			
			|  |  |  | { repo : 'elxr' } | 
		
	
		
			
			|  |  |  | ] | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | }) |