This commit is contained in:
kristof 2025-06-15 21:27:21 +02:00
parent bb39f3e3f2
commit 29a06d2bb4
3 changed files with 26 additions and 29 deletions

View File

@ -20,8 +20,14 @@ fi
# Echo a success message # Echo a success message
echo "Build successful!" echo "Build successful!"
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/ mkdir -p ~/hero/bin/
cp target/debug/herodo ~/hero/bin/herodo cp target/debug/herodo ~/hero/bin/herodo
fi
# Check if a script name was provided # Check if a script name was provided
if [ $# -eq 1 ]; then if [ $# -eq 1 ]; then

View File

@ -3,23 +3,23 @@
fn nerdctl_download(){ fn nerdctl_download(){
let name="nerdctl"; let name="nerdctl";
let url="https://github.com/containerd/nerdctl/releases/download/v2.0.4/nerdctl-2.0.4-linux-amd64.tar.gz"; let url="https://github.com/containerd/nerdctl/releases/download/v2.1.2/nerdctl-2.1.2-linux-amd64.tar.gz";
download(url,`/tmp/${name}`,20000); download(url,`/tmp/${name}`,10000);
copy(`/tmp/${name}/*`,"/root/hero/bin/"); copy(`/tmp/${name}/*`,"/root/hero/bin/");
delete(`/tmp/${name}`); delete(`/tmp/${name}`);
let name="containerd"; 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); download(url,`/tmp/${name}`,20000);
copy(`/tmp/${name}/bin/*`,"/root/hero/bin/"); copy(`/tmp/${name}/bin/*`,"/root/hero/bin/");
delete(`/tmp/${name}`); delete(`/tmp/${name}`);
run("apt-get -y install buildah runc"); run("apt-get -y install buildah runc");
let url="https://github.com/threefoldtech/rfs/releases/download/v2.0.6/rfs"; // let url="https://github.com/threefoldtech/rfs/releases/download/v2.0.6/rfs";
download_file(url,`/tmp/rfs`,10000); // download_file(url,`/tmp/rfs`,10000);
chmod_exec("/tmp/rfs"); // chmod_exec("/tmp/rfs");
mv(`/tmp/rfs`,"/root/hero/bin/"); // mv(`/tmp/rfs`,"/root/hero/bin/");
} }

View File

@ -3,31 +3,22 @@
//! This is the main entry point for the herodo binary. //! This is the main entry point for the herodo binary.
//! It parses command line arguments and calls into the implementation in the cmd module. //! It parses command line arguments and calls into the implementation in the cmd module.
use clap::{App, Arg};
use env_logger; use env_logger;
use std::env;
use std::process;
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize the logger // Initialize the logger
env_logger::init(); env_logger::init();
// Parse command line arguments let args: Vec<String> = env::args().collect();
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 if args.len() != 2 {
let script_path = matches.value_of("path").unwrap(); eprintln!("Usage: {} <script_path>", args[0]);
process::exit(1);
}
let script_path = &args[1];
// Call the run function from the cmd module // Call the run function from the cmd module
sal::cmd::herodo::run(script_path) sal::cmd::herodo::run(script_path)