42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as plugins from './mod.plugins'
 | |
| import { bash } from '../npmci.bash'
 | |
| import { repo } from '../npmci.env'
 | |
| 
 | |
| /**
 | |
|  * handle cli input
 | |
|  * @param argvArg
 | |
|  */
 | |
| export let handleCli = async (argvArg) => {
 | |
|   if (argvArg._.length >= 2) {
 | |
|     let action: string = argvArg._[ 1 ]
 | |
|     switch (action) {
 | |
|       case 'mirror':
 | |
|         await mirror()
 | |
|         break
 | |
|       default:
 | |
|         plugins.beautylog.error(`>>npmci git ...<< action >>${action}<< not supported`)
 | |
|     }
 | |
|   } else {
 | |
|     plugins.beautylog.log(`>>npmci git ...<< cli arguments invalid... Please read the documentation.`)
 | |
|   }
 | |
| }
 | |
| 
 | |
| export let mirror = async () => {
 | |
|   let githubToken = process.env.NPMCI_GIT_GITHUBTOKEN
 | |
|   let githubUser = process.env.NPMCI_GIT_GITHUBGROUP || repo.user
 | |
|   let githubRepo = process.env.NPMCI_GIT_GITHUB || repo.repo
 | |
|   if (githubToken) {
 | |
|     plugins.beautylog.info('found github token.')
 | |
|     plugins.beautylog.log('attempting the mirror the repository to GitHub')
 | |
|     // add the mirror
 | |
|     await bash(`git remote add mirror https://${githubToken}@github.com/${githubUser}/${githubRepo}.git`)
 | |
|     await bash(`git push mirror --all`)
 | |
|     plugins.beautylog.ok('pushed all branches to mirror!')
 | |
|     await bash(`git push mirror --tags`)
 | |
|     plugins.beautylog.ok('pushed all tags to mirror!')
 | |
|   } else {
 | |
|     plugins.beautylog.error(`cannot find NPMCI_GIT_GITHUBTOKEN env var!`)
 | |
|     process.exit(1)
 | |
|   }
 | |
| }
 |