UNPKG

@selfage/spanner_schema_update_cli

Version:
28 lines 4.48 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const path = require("path"); const updater_1 = require("./updater"); const commander_1 = require("commander"); function stripFileExtension(file) { let pathObj = path.parse(file); pathObj.base = undefined; pathObj.ext = undefined; return path.format(pathObj); } async function main() { let packageConfig = JSON.parse((await fs.promises.readFile(path.join(__dirname, "package.json"))).toString()); let program = new commander_1.Command(); program.version(packageConfig.version); program .command("update <ddlFile>") .description(`Update Spanner database schema from a generated DDL JSON file.`) .requiredOption("-p, --project-id <id>", `The GCP project id.`) .requiredOption("-i, --instance-id <id>", `The Spanner instance id.`) .requiredOption("-d, --database-id <id>", `The spanner database id inside the Spanner instance.`) .action((ddlFile, options) => (0, updater_1.updateSchemaFromDdlFile)(options.projectId, options.instanceId, options.databaseId, stripFileExtension(ddlFile) + ".json")); await program.parseAsync(); } main(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUJBQTBCO0FBQzFCLDZCQUE4QjtBQUM5Qix1Q0FBb0Q7QUFDcEQseUNBQW9DO0FBRXBDLFNBQVMsa0JBQWtCLENBQUMsSUFBWTtJQUN0QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO0lBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDNUIsQ0FDRSxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQ2pFLENBQUMsUUFBUSxFQUFFLENBQ2IsQ0FBQztJQUNGLElBQUksT0FBTyxHQUFHLElBQUksbUJBQU8sRUFBRSxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLE9BQU87U0FDSixPQUFPLENBQUMsa0JBQWtCLENBQUM7U0FDM0IsV0FBVyxDQUNWLGdFQUFnRSxDQUNqRTtTQUNBLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztTQUM5RCxjQUFjLENBQUMsd0JBQXdCLEVBQUUsMEJBQTBCLENBQUM7U0FDcEUsY0FBYyxDQUNiLHdCQUF3QixFQUN4QixzREFBc0QsQ0FDdkQ7U0FDQSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDM0IsSUFBQSxpQ0FBdUIsRUFDckIsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFVBQVUsRUFDbEIsT0FBTyxDQUFDLFVBQVUsRUFDbEIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUN0QyxDQUNGLENBQUM7SUFDSixNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUM3QixDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgZnMgPSByZXF1aXJlKFwiZnNcIik7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuaW1wb3J0IHsgdXBkYXRlU2NoZW1hRnJvbURkbEZpbGUgfSBmcm9tIFwiLi91cGRhdGVyXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuXG5mdW5jdGlvbiBzdHJpcEZpbGVFeHRlbnNpb24oZmlsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHBhdGhPYmogPSBwYXRoLnBhcnNlKGZpbGUpO1xuICBwYXRoT2JqLmJhc2UgPSB1bmRlZmluZWQ7XG4gIHBhdGhPYmouZXh0ID0gdW5kZWZpbmVkO1xuICByZXR1cm4gcGF0aC5mb3JtYXQocGF0aE9iaik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIGxldCBwYWNrYWdlQ29uZmlnID0gSlNPTi5wYXJzZShcbiAgICAoXG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShwYXRoLmpvaW4oX19kaXJuYW1lLCBcInBhY2thZ2UuanNvblwiKSlcbiAgICApLnRvU3RyaW5nKCksXG4gICk7XG4gIGxldCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTtcbiAgcHJvZ3JhbS52ZXJzaW9uKHBhY2thZ2VDb25maWcudmVyc2lvbik7XG4gIHByb2dyYW1cbiAgICAuY29tbWFuZChcInVwZGF0ZSA8ZGRsRmlsZT5cIilcbiAgICAuZGVzY3JpcHRpb24oXG4gICAgICBgVXBkYXRlIFNwYW5uZXIgZGF0YWJhc2Ugc2NoZW1hIGZyb20gYSBnZW5lcmF0ZWQgRERMIEpTT04gZmlsZS5gLFxuICAgIClcbiAgICAucmVxdWlyZWRPcHRpb24oXCItcCwgLS1wcm9qZWN0LWlkIDxpZD5cIiwgYFRoZSBHQ1AgcHJvamVjdCBpZC5gKVxuICAgIC5yZXF1aXJlZE9wdGlvbihcIi1pLCAtLWluc3RhbmNlLWlkIDxpZD5cIiwgYFRoZSBTcGFubmVyIGluc3RhbmNlIGlkLmApXG4gICAgLnJlcXVpcmVkT3B0aW9uKFxuICAgICAgXCItZCwgLS1kYXRhYmFzZS1pZCA8aWQ+XCIsXG4gICAgICBgVGhlIHNwYW5uZXIgZGF0YWJhc2UgaWQgaW5zaWRlIHRoZSBTcGFubmVyIGluc3RhbmNlLmAsXG4gICAgKVxuICAgIC5hY3Rpb24oKGRkbEZpbGUsIG9wdGlvbnMpID0+XG4gICAgICB1cGRhdGVTY2hlbWFGcm9tRGRsRmlsZShcbiAgICAgICAgb3B0aW9ucy5wcm9qZWN0SWQsXG4gICAgICAgIG9wdGlvbnMuaW5zdGFuY2VJZCxcbiAgICAgICAgb3B0aW9ucy5kYXRhYmFzZUlkLFxuICAgICAgICBzdHJpcEZpbGVFeHRlbnNpb24oZGRsRmlsZSkgKyBcIi5qc29uXCIsXG4gICAgICApLFxuICAgICk7XG4gIGF3YWl0IHByb2dyYW0ucGFyc2VBc3luYygpO1xufVxuXG5tYWluKCk7XG4iXX0=