import "typings-global"; import * as plugins from "./npmci.plugins"; import {prepare} from "./npmci.prepare"; import {bash} from "./npmci.bash"; import * as NpmciEnv from "./npmci.env"; import * as NpmciBuildDocker from "./npmci.build.docker" /** * type of supported services */ export type TPubService = "npm" | "docker"; /** * the main exported publish function. * @param pubServiceArg references targeted service to publish to */ export let publish = (pubServiceArg:TPubService = "npm") => { switch (pubServiceArg){ case "npm": return publishNpm(); case "docker": return publishDocker(); } }; /** * tries to publish current cwd to NPM registry */ let publishNpm = function(){ let done = plugins.q.defer(); prepare("npm") .then(function(){ bash("npm publish"); plugins.beautylog.ok("Done!") ; done.resolve(); }); return done.promise; } /** * tries to pubish current cwd to Docker registry */ let publishDocker = function(){ let done = plugins.q.defer(); NpmciBuildDocker.readDockerfiles() .then(NpmciBuildDocker.pullDockerfileImages) .then(NpmciBuildDocker.pushDockerfiles) .then(done.resolve); return done.promise; };