From 1a357dd0a71d8e6d73cc8af4c93d3005576aff36 Mon Sep 17 00:00:00 2001 From: Jokler Date: Mon, 22 Jun 2020 01:53:09 +0200 Subject: Use rust for "scripts" thanks to scriptisto --- scripts/autoscript | 60 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 18 deletions(-) (limited to 'scripts/autoscript') diff --git a/scripts/autoscript b/scripts/autoscript index 4358e8c..6d4d084 100755 --- a/scripts/autoscript +++ b/scripts/autoscript @@ -1,25 +1,49 @@ -#!/bin/sh +#!/usr/bin/env scriptisto -if [ "$#" -ne 1 ]; then - echo "Exactly 1 argument is required" - exit -fi +// scriptisto-begin +// script_src: src/main.rs +// build_cmd: cargo build --release && strip ./target/release/script +// target_bin: ./target/release/script +// files: +// - path: Cargo.toml +// content: | +// package = { name = "script", version = "0.1.0", edition = "2018"} +// [dependencies] +// scripttools = { path = "/home/jokler/rust/scripttools" } +// structopt = "*" +// cmd_lib = "*" +// scriptisto-end -SCRIPT_FOLDER="$HOME/scripts" -SCRIPT_FILE="$SCRIPT_FOLDER/$1" +use structopt::StructOpt; +use cmd_lib::*; +use scripttools::*; -if [ -f "$SCRIPT_FILE" ]; then - gvim "$SCRIPT_FILE" & -else +#[derive(Debug, StructOpt)] +#[structopt(name = "autoscript", about = "A script to create scripts")] +struct Opt { + /// Name of the created script + name: String, +} -cat >> "$SCRIPT_FILE" < Result<()> { + let script_folder = home()?.join("scripts"); + let script_file = script_folder.join(&opt.name); - chmod +x "$SCRIPT_FILE" - gvim "$SCRIPT_FILE" & -fi + let str_path = script_file.to_str().ok_or("Failed to convert path to str")?; + if file_exists(&script_file)? == false { + let content = run_fun!("scriptisto new rust")?; + write_to_file(&script_file, &content)?; + run_cmd!("chmod +x \"{}\"", str_path)?; + } -# vim: expandtab sw=2 ts=2 + Ok(run_cmd!("gvim \"{}\" &", str_path)?) +} + +// vim: filetype=rust -- cgit v1.2.3-70-g09d2