diff --git a/build_herodo.sh b/build_herodo.sh index 280846a..5806323 100755 --- a/build_herodo.sh +++ b/build_herodo.sh @@ -20,8 +20,14 @@ fi # Echo a success message echo "Build successful!" -mkdir -p ~/hero/bin/ -cp target/debug/herodo ~/hero/bin/herodo +if [ "$EUID" -eq 0 ]; then + echo "Running as root, copying to /usr/local/bin/" + cp target/debug/herodo /usr/local/bin/herodo +else + echo "Running as non-root user, copying to ~/hero/bin/" + mkdir -p ~/hero/bin/ + cp target/debug/herodo ~/hero/bin/herodo +fi # Check if a script name was provided if [ $# -eq 1 ]; then diff --git a/examples/containers/nerdctl_install.rhai b/examples/containers/nerdctl_install.rhai index 9d8c476..c4ab1c1 100644 --- a/examples/containers/nerdctl_install.rhai +++ b/examples/containers/nerdctl_install.rhai @@ -3,23 +3,23 @@ fn nerdctl_download(){ let name="nerdctl"; - let url="https://github.com/containerd/nerdctl/releases/download/v2.0.4/nerdctl-2.0.4-linux-amd64.tar.gz"; - download(url,`/tmp/${name}`,20000); + let url="https://github.com/containerd/nerdctl/releases/download/v2.1.2/nerdctl-2.1.2-linux-amd64.tar.gz"; + download(url,`/tmp/${name}`,10000); copy(`/tmp/${name}/*`,"/root/hero/bin/"); delete(`/tmp/${name}`); let name="containerd"; - let url="https://github.com/containerd/containerd/releases/download/v2.0.4/containerd-2.0.4-linux-amd64.tar.gz"; + let url="https://github.com/containerd/containerd/releases/download/v2.1.2/containerd-2.1.2-linux-amd64.tar.gz"; download(url,`/tmp/${name}`,20000); copy(`/tmp/${name}/bin/*`,"/root/hero/bin/"); delete(`/tmp/${name}`); run("apt-get -y install buildah runc"); - let url="https://github.com/threefoldtech/rfs/releases/download/v2.0.6/rfs"; - download_file(url,`/tmp/rfs`,10000); - chmod_exec("/tmp/rfs"); - mv(`/tmp/rfs`,"/root/hero/bin/"); + // let url="https://github.com/threefoldtech/rfs/releases/download/v2.0.6/rfs"; + // download_file(url,`/tmp/rfs`,10000); + // chmod_exec("/tmp/rfs"); + // mv(`/tmp/rfs`,"/root/hero/bin/"); } diff --git a/src/bin/herodo.rs b/src/bin/herodo.rs index 31ac457..e67d352 100644 --- a/src/bin/herodo.rs +++ b/src/bin/herodo.rs @@ -3,32 +3,23 @@ //! This is the main entry point for the herodo binary. //! It parses command line arguments and calls into the implementation in the cmd module. -use clap::{App, Arg}; use env_logger; +use std::env; +use std::process; fn main() -> Result<(), Box> { // Initialize the logger env_logger::init(); - - // Parse command line arguments - let matches = App::new("herodo") - .version("0.1.0") - .author("SAL Team") - .about("Executes Rhai scripts for SAL") - .arg( - Arg::with_name("path") - .short("p") - .long("path") - .value_name("PATH") - .help("Path to a Rhai script file or directory containing Rhai scripts") - .required(true) - .takes_value(true), - ) - .get_matches(); - // Get the script path from arguments - let script_path = matches.value_of("path").unwrap(); - + let args: Vec = env::args().collect(); + + if args.len() != 2 { + eprintln!("Usage: {} ", args[0]); + process::exit(1); + } + + let script_path = &args[1]; + // Call the run function from the cmd module sal::cmd::herodo::run(script_path) }