@codefresh-io/cf-git-providers
Version:
An NPM module/CLI for interacting with various git providers
63 lines • 2.7 kB
JavaScript
;
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