UNPKG

@codefresh-io/cf-git-providers

Version:

An NPM module/CLI for interacting with various git providers

63 lines 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = exports.builder = exports.desc = exports.command = void 0; const helpers_1 = require("../../../helpers"); // tslint:disable-next-line: no-var-requires const logger = (0, helpers_1.createNewLogger)('codefresh:get:file'); exports.command = 'file'; exports.desc = 'Fetch a raw file from a git repository'; const builder = (yargs) => yargs .usage('Usage: $0 get file [options]') .option('owner', { alias: 'o', demandOption: (0, helpers_1.errormsg) `must provide "owner" option`, describe: 'The name of the owner of the git repository', type: 'string' }) .option('repo', { alias: 'r', demandOption: (0, helpers_1.errormsg) `must provide "repo" option`, describe: 'The name of the git repository', type: 'string' }) .option('revision', { alias: ['ref', 'v'], describe: 'The revision of the file', type: 'string', default: 'master' }) .option('path', { alias: 'p', demandOption: (0, helpers_1.errormsg) `must provide "path" option`, describe: 'The path to the file that needs to be fetched', type: 'string' }) .example(`$0 get ${exports.command} -o some-owner -r some-repo -p ./path/to/file`, 'Will fetch the file located at path/to/file from the root of repo: "some-owner/some-repo" (revision "master")') .example(`$0 get ${exports.command} -o some-owner -r some-repo -p ./path/to/file -v some-rev `, 'Will fetch the file located at path/to/file from the root of repo: "some-owner/some-repo" revision "some-rev"') .example(`$0 get ${exports.command} -o some-owner -r some-repo -p ./path/to/file -s output.txt`, 'Will fetch the file located at path/to/file from the root of repo: "some-owner/some-repo" and save the contents to "output.txt"'); exports.builder = builder; const handler = async (argv) => { const owner = argv.owner; const repo = argv.repo; const path = argv.path; const revision = argv.revision; const provider = argv.provider; const output = argv.output; logger.debug(`owner=${owner}`); logger.debug(`repo=${repo}`); logger.debug(`path=${path}`); logger.debug(`revision=${revision}`); logger.debug(`output=${output}`); const [fetchFileErr, file] = await (0, helpers_1.to)(provider.fetchRawFile({ owner, repo, ref: revision, path })); if (fetchFileErr) { (0, helpers_1.exitWithError)(`failed to fetch file "${path}", ${fetchFileErr}`); } if (output) { await (0, helpers_1.writeResultsToFile)(output, file); } else { console.log(file); } }; exports.handler = handler; //# sourceMappingURL=file.cmd.js.map