working implementation of docker get
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
use std::io;
|
||||
use std::io::{self, Read};
|
||||
|
||||
use anyhow::bail;
|
||||
|
||||
@ -12,7 +12,6 @@ use super::{
|
||||
|
||||
pub fn docker_store(global_args: GlobalArgs) -> anyhow::Result<()> {
|
||||
let input: DockerCredential = serde_json::from_reader(io::stdin())?;
|
||||
dbg!(&input);
|
||||
|
||||
let req = CliRequest::SaveCredential {
|
||||
name: input.username.clone(),
|
||||
@ -25,3 +24,20 @@ pub fn docker_store(global_args: GlobalArgs) -> anyhow::Result<()> {
|
||||
r => bail!("Unexpected response from server: {r}"),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pub fn docker_get(global_args: GlobalArgs) -> anyhow::Result<()> {
|
||||
let mut server_url = String::new();
|
||||
io::stdin().read_to_string(&mut server_url)?;
|
||||
let req = CliRequest::GetDockerCredential {
|
||||
server_url: server_url.trim().to_owned()
|
||||
};
|
||||
|
||||
match super::make_request(global_args.server_addr, &req)?? {
|
||||
CliResponse::Credential(CliCredential::Docker(d)) => {
|
||||
println!("{}", serde_json::to_string(&d)?);
|
||||
},
|
||||
r => bail!("Unexpected response from server: {r}"),
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ pub enum DockerCmd {
|
||||
|
||||
|
||||
pub fn get(args: GetArgs, global: GlobalArgs) -> anyhow::Result<()> {
|
||||
let req = CliRequest::GetCredential {
|
||||
let req = CliRequest::GetAwsCredential {
|
||||
name: args.name,
|
||||
base: args.base,
|
||||
};
|
||||
@ -145,7 +145,7 @@ pub fn exec(args: ExecArgs, global: GlobalArgs) -> anyhow::Result<()> {
|
||||
let mut cmd = ChildCommand::new(cmd_name);
|
||||
cmd.args(cmd_line);
|
||||
|
||||
let req = CliRequest::GetCredential {
|
||||
let req = CliRequest::GetAwsCredential {
|
||||
name: args.get_args.name,
|
||||
base: args.get_args.base,
|
||||
};
|
||||
@ -203,7 +203,7 @@ pub fn invoke_shortcut(args: InvokeArgs, global: GlobalArgs) -> anyhow::Result<(
|
||||
|
||||
pub fn docker_credential_helper(cmd: DockerCmd, global_args: GlobalArgs) -> anyhow::Result<()> {
|
||||
match cmd {
|
||||
DockerCmd::Get => todo!(),
|
||||
DockerCmd::Get => docker::docker_get(global_args),
|
||||
DockerCmd::Store => docker::docker_store(global_args),
|
||||
DockerCmd::Erase => todo!(),
|
||||
}
|
||||
|
@ -10,10 +10,13 @@ use serde::{Serialize, Deserialize};
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub enum CliRequest {
|
||||
GetCredential {
|
||||
GetAwsCredential {
|
||||
name: Option<String>,
|
||||
base: bool,
|
||||
},
|
||||
GetDockerCredential {
|
||||
server_url: String,
|
||||
},
|
||||
SaveCredential {
|
||||
name: String,
|
||||
is_default: bool,
|
||||
|
Reference in New Issue
Block a user