This repository has been archived on 2023-02-04. You can view files and clone it, but cannot push or open issues or pull requests.
ci-buildkit-plugin/src/main.rs
2022-08-21 18:30:34 +02:00

44 lines
1.4 KiB
Rust

use clap::Parser;
mod cmd;
mod auth;
mod error;
use std::{process::{Command, Stdio}, os::unix::process::CommandExt};
#[derive(Debug, Parser)]
#[clap(name = "ci-buildkit")]
#[clap(about = "Buildkit for Drone/Woodpecker", long_about = None)]
pub struct Cli {
#[clap(short = 'R', long = "registry", env = "PLUGIN_REGISTRY", default_value = "docker.io")]
registry: String,
#[clap(short = 'r', long = "repo", env = "PLUGIN_REPO")]
repo: String,
#[clap(short = 'u', long = "username", env = "PLUGIN_USERNAME")]
username: String,
#[clap(short = 'p', long = "password", hide_env = true, env = "PLUGIN_PASSWORD")]
password: String,
#[clap(short = 'd', long = "dockerfile", env = "PLUGIN_DOCKERFILE", default_value = ".")]
dockerfile: String,
#[clap(short = 'c', long = "context", env = "PLUGIN_CONTEXT", default_value = ".")]
context: String,
#[clap(short = 't', long = "tag", env = "PLUGIN_TAG", default_value = "latest")]
tag: String,
#[clap(short = 'i', long = "pull", env = "PLUGIN_PULL_IMAGE")]
pull_image: bool,
}
fn main() -> Result<(), error::Redacted> {
let args = Cli::parse();
auth::login(&args.registry, &args.username, &args.password)?;
error::redact(Err(Command::new("/usr/bin/env")
.args(cmd::gen_args(&args))
.stdin(Stdio::null())
.stdout(Stdio::inherit())
.stderr(Stdio::inherit())
.exec()), &args.password)
}