npmci/ts/mod_publish/index.ts

55 lines
1.4 KiB
TypeScript
Raw Normal View History

2017-05-19 10:09:33 +00:00
import * as plugins from './mod.plugins'
import { bash } from '../npmci.bash'
import * as NpmciEnv from '../npmci.env'
import * as npmciMods from '../npmci.mods'
// import interfaces
import { Dockerfile } from '../mod_docker/index'
2016-05-30 00:28:47 +00:00
/**
* type of supported services
*/
2017-03-08 13:50:41 +00:00
export type TPubService = 'npm' | 'docker'
/**
* the main exported publish function.
2016-09-04 14:05:47 +00:00
* @param pubServiceArg references targeted service to publish to
*/
export let publish = async (argvArg: any) => {
let whatToPublish = argvArg._[1]
switch (whatToPublish) {
2017-03-08 13:50:41 +00:00
case 'docker':
return await publishDocker(argvArg)
2017-07-27 19:51:38 +00:00
case 'npm':
return await publishNpm(argvArg)
default:
2017-07-27 23:11:55 +00:00
plugins.beautylog.info('no publish target specified, thus defaulting to npm...')
2017-07-27 19:51:38 +00:00
return await publishNpm(argvArg)
2017-03-08 13:50:41 +00:00
}
2016-11-24 22:21:40 +00:00
}
2016-05-30 00:28:47 +00:00
/**
2016-09-04 14:05:47 +00:00
* tries to publish current cwd to NPM registry
*/
let publishNpm = async (argvArg) => {
2017-05-19 10:09:33 +00:00
let modPrepare = await npmciMods.modPrepare.load()
await modPrepare.prepare('npm')
await bash('npm publish')
plugins.beautylog.ok('Done!')
2016-06-01 03:42:37 +00:00
}
2016-05-29 20:54:59 +00:00
/**
2017-05-18 20:40:09 +00:00
* tries to publish current cwd to Docker registry
*/
let publishDocker = async (argvArg) => {
2017-05-19 10:09:33 +00:00
let modDocker = await npmciMods.modDocker.load()
return await modDocker.readDockerfiles(argvArg)
2017-05-19 10:09:33 +00:00
.then(modDocker.pullDockerfileImages)
.then(modDocker.pushDockerfiles)
2017-03-08 13:50:41 +00:00
.then(dockerfileArray => {
return dockerfileArray
})
2016-11-24 22:21:40 +00:00
}