UNPKG

turbo-gulp

Version:

Gulp tasks to boost high-quality projects.

66 lines (64 loc) 8.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; } var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; } Object.defineProperty(exports, "__esModule", { value: true }); const del_1 = __importDefault(require("del")); const fs_extra_1 = require("fs-extra"); const posixPath = __importStar(require("path")); const tmp_1 = require("tmp"); const project_1 = require("../project"); const git_1 = require("./git"); /** * Run executor inside a tmp directory. Clean the directory once executor is done. */ async function withTmpDir(executor) { return new Promise((resolve, reject) => { tmp_1.dir({ unsafeCleanup: true }, async (err, path, done) => { if (err !== null) { reject(err); return; } try { await executor(project_1.toPosix(path)); done(() => { resolve(); }); } catch (err) { done(() => { reject(err); }); } }); }); } async function branchPublish(options) { return withTmpDir(async (tmpDirPath) => { console.log(`Using temporary directory: ${tmpDirPath}`); const localPath = posixPath.join(tmpDirPath, "repo"); await git_1.gitClone({ branch: options.branch, depth: 1, repository: options.repository, directory: localPath }); await del_1.default([posixPath.join(localPath, "**", "*"), `!${posixPath.join(localPath, ".git")}`], { force: true }); await fs_extra_1.copy(options.dir, localPath); await git_1.gitAdd({ repository: localPath, paths: ["."] }); await git_1.gitCommit({ repository: localPath, message: options.commitMessage, author: options.commitAuthor, }); await git_1.gitPush({ local: localPath, remote: "origin", }); console.log(`Pushed to: ${options.repository} on branch ${options.branch}`); }); } exports.branchPublish = branchPublish; //# sourceMappingURL=data:application/json;charset=utf8;base64,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b250ZW50IjpbImltcG9ydCBkZWwgZnJvbSBcImRlbFwiO1xuaW1wb3J0IHsgY29weSB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcG9zaXhQYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQge2RpciBhcyB0bXBEaXIgfSBmcm9tIFwidG1wXCI7XG5pbXBvcnQgeyB0b1Bvc2l4IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IEFic1Bvc2l4UGF0aCB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgZ2l0QWRkLCBnaXRDbG9uZSBhcyBnaXRDbG9uZSwgZ2l0Q29tbWl0LCBnaXRQdXNoIH0gZnJvbSBcIi4vZ2l0XCI7XG5cbi8qKlxuICogUnVuIGV4ZWN1dG9yIGluc2lkZSBhIHRtcCBkaXJlY3RvcnkuIENsZWFuIHRoZSBkaXJlY3Rvcnkgb25jZSBleGVjdXRvciBpcyBkb25lLlxuICovXG5hc3luYyBmdW5jdGlvbiB3aXRoVG1wRGlyKGV4ZWN1dG9yOiAocGF0aDogQWJzUG9zaXhQYXRoKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgdG1wRGlyKHt1bnNhZmVDbGVhbnVwOiB0cnVlfSwgYXN5bmMgKGVycjogRXJyb3IgfCBudWxsLCBwYXRoOiBzdHJpbmcsIGRvbmU6IChjYjogYW55KSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBpZiAoZXJyICE9PSBudWxsKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBleGVjdXRvcih0b1Bvc2l4KHBhdGgpKTtcbiAgICAgICAgZG9uZSgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBkb25lKCgpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5jaFB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIERpcmVjdG9yeSB0byBwdWJsaXNoXG4gICAqL1xuICBkaXI6IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYnJhbmNoIHRvIHVwZGF0ZS5cbiAgICovXG4gIGJyYW5jaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXBvIHdoZXJlIHRvIHB1Ymxpc2guXG4gICAqL1xuICByZXBvc2l0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgdG8gdXNlIHdoZW4gY29tbWl0aW5nIGNoYW5nZXMuXG4gICAqL1xuICBjb21taXRNZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJpZGUgdGhlIGRlZmF1bHQgR2l0IGB1c2VyYCBjb25maWcgZm9yIHRoaXMgY29tbWl0LiBVc2UgdGhlIGZvcm1hdCBcIkpvaG4gRG9lIDxqb2huLmRvZUBleGFtcGxlLmNvbT5cIi5cbiAgICovXG4gIGNvbW1pdEF1dGhvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJyYW5jaFB1Ymxpc2gob3B0aW9uczogQnJhbmNoUHVibGlzaE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHdpdGhUbXBEaXIoYXN5bmMgKHRtcERpclBhdGg6IEFic1Bvc2l4UGF0aCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnNvbGUubG9nKGBVc2luZyB0ZW1wb3JhcnkgZGlyZWN0b3J5OiAke3RtcERpclBhdGh9YCk7XG4gICAgY29uc3QgbG9jYWxQYXRoOiBBYnNQb3NpeFBhdGggPSBwb3NpeFBhdGguam9pbih0bXBEaXJQYXRoLCBcInJlcG9cIik7XG4gICAgYXdhaXQgZ2l0Q2xvbmUoe2JyYW5jaDogb3B0aW9ucy5icmFuY2gsIGRlcHRoOiAxLCByZXBvc2l0b3J5OiBvcHRpb25zLnJlcG9zaXRvcnksIGRpcmVjdG9yeTogbG9jYWxQYXRofSk7XG4gICAgYXdhaXQgZGVsKFtwb3NpeFBhdGguam9pbihsb2NhbFBhdGgsIFwiKipcIiwgXCIqXCIpLCBgISR7cG9zaXhQYXRoLmpvaW4obG9jYWxQYXRoLCBcIi5naXRcIil9YF0sIHtmb3JjZTogdHJ1ZX0pO1xuICAgIGF3YWl0IGNvcHkob3B0aW9ucy5kaXIsIGxvY2FsUGF0aCk7XG4gICAgYXdhaXQgZ2l0QWRkKHtyZXBvc2l0b3J5OiBsb2NhbFBhdGgsIHBhdGhzOiBbXCIuXCJdfSk7XG4gICAgYXdhaXQgZ2l0Q29tbWl0KHtcbiAgICAgIHJlcG9zaXRvcnk6IGxvY2FsUGF0aCxcbiAgICAgIG1lc3NhZ2U6IG9wdGlvbnMuY29tbWl0TWVzc2FnZSxcbiAgICAgIGF1dGhvcjogb3B0aW9ucy5jb21taXRBdXRob3IsXG4gICAgfSk7XG4gICAgYXdhaXQgZ2l0UHVzaCh7XG4gICAgICBsb2NhbDogbG9jYWxQYXRoLFxuICAgICAgcmVtb3RlOiBcIm9yaWdpblwiLFxuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKGBQdXNoZWQgdG86ICR7b3B0aW9ucy5yZXBvc2l0b3J5fSBvbiBicmFuY2ggJHtvcHRpb25zLmJyYW5jaH1gKTtcbiAgfSk7XG59XG4iXSwic291cmNlUm9vdCI6Ii4uIn0=