...
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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/");
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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<dyn std::error::Error>> {
 | 
			
		||||
    // 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<String> = env::args().collect();
 | 
			
		||||
 | 
			
		||||
    if args.len() != 2 {
 | 
			
		||||
        eprintln!("Usage: {} <script_path>", args[0]);
 | 
			
		||||
        process::exit(1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let script_path = &args[1];
 | 
			
		||||
 | 
			
		||||
    // Call the run function from the cmd module
 | 
			
		||||
    sal::cmd::herodo::run(script_path)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user