seahorse-dev 0.1.1

Write Anchor-compatible Solana programs in Python
Documentation
use crate::{
    cli::{util::*, LIB_PATH, SRC_PATH},
    data,
};
use clap::Args;
use std::{
    error::Error,
    fs::File,
    io::{BufWriter, Write},
    path::PathBuf,
};

#[derive(Args, Debug)]
pub struct UpdateArgs {}

pub fn update_prelude(root: PathBuf) -> Result<(), Box<dyn Error>> {
    let lib_path = root.join(SRC_PATH).join(LIB_PATH);

    let mut prelude = File::create(lib_path.join("prelude.py"))?;
    prelude.write_all(data::SEAHORSE_PRELUDE.as_bytes())?;

    let mut pyth = File::create(lib_path.join("pyth.py"))?;
    pyth.write_all(data::SEAHORSE_PYTH.as_bytes())?;

    return Ok(());
}

pub fn update(args: UpdateArgs) -> Result<(), Box<dyn Error>> {
    let root = project_root()?;

    with_spinner("Updating...", "Updated!", || {
        update_prelude(root)?;

        return Ok(());
    })?;

    return Ok(());
}