cloudapp-cli
Version:
58 lines (47 loc) • 1.36 kB
JavaScript
const { program } = require("commander");
const { createClient } = require("../lib/capi");
const { run } = require("../lib/verify");
const { getPackageId } = require("../lib/pkg");
program.option("--auth", "返回 auth 配置");
program.option("--url [name:tag]", "返回推送镜像的地址");
program.argument("[dir]", "云应用配置目录");
program.parse(process.argv);
const capi = createClient();
async function docker() {
const options = program.opts();
const dir = program.args[0] || process.cwd();
const PackageId = getPackageId(dir);
const { Host, Username, Token, Namespace } =
await capi.DescribePackageDockerToken({ PackageId });
if (options.auth) {
console.log(
JSON.stringify(
{
auths: {
[Host]: {
auth: Buffer.from(`${Username}:${Token}`, "utf-8").toString(
"base64"
),
},
},
},
null,
4
)
);
return;
}
if (options.url) {
const input = typeof options.url === "string" ? options.url : "";
const [name, tag] = input.split(":");
console.log(
`${Host}/${Namespace}/${name || "[image_name]"}:${tag || "[tag]"}`
);
return;
}
console.log(
`docker login ${Host} --username '${Username}' --password ${Token}`
);
}
run(docker);