add dynlay

This commit is contained in:
Mikaël Cluseau
2025-07-21 01:41:03 +02:00
parent 52c23653ac
commit 7d02d8f932
7 changed files with 731 additions and 24 deletions

View File

@ -40,10 +40,31 @@ enum Command {
/// Path where the logs are stored
#[arg(long, short = 'p', default_value = "/var/log", env = "DKL_LOG_PATH")]
log_path: String,
/// Name of the log set to operate on.
log_name: String,
#[command(subcommand)]
op: LogOp,
},
Dynlay {
layer: String,
version: String,
#[arg(
long,
short = 'u',
default_value = "https://dkl.novit.io/dist/layers",
env = "DKL_DYNLAY_URL"
)]
url_prefix: String,
#[arg(
long,
short = 'd',
default_value = "/opt/dynlay",
env = "DKL_DYNLAY_DIR"
)]
layers_dir: String,
#[arg(long, default_value = "/")]
chroot: std::path::PathBuf,
},
}
#[tokio::main(flavor = "current_thread")]
@ -90,6 +111,21 @@ async fn main() -> Result<()> {
log_name,
op,
} => op.run(&log_path, &log_name).await,
C::Dynlay {
ref layer,
ref version,
ref url_prefix,
ref layers_dir,
chroot,
} => {
dkl::dynlay::Dynlay {
url_prefix,
layers_dir,
chroot,
}
.install(layer, version)
.await
}
}
}