changelog shortlog graph tags branches files raw help

Mercurial > demo / changeset: scaffolding from lives past

changeset 1: e4f8df713d55
parent 0: eb8ed24e8a76
child 2: 04ac94b03a26
author: ellis <ellis@rwest.io>
date: Sun, 30 Apr 2023 22:24:18 -0400
files: build.rs cfg/Cargo.toml cfg/src/lib.rs cfg/src/tests.rs makefile obj/Cargo.toml obj/src/err.rs obj/src/lib.rs ros/build.ros ros/clean.ros ros/compile.ros ros/db.ros ros/demo.ros ros/docs.ros ros/pack.ros ros/test.ros scripts/build.ros scripts/clean.ros scripts/compile.ros scripts/db.ros scripts/demo.ros scripts/docs.ros scripts/pack.ros scripts/test.ros
description: scaffolding from lives past
     1.1--- a/build.rs	Sun Apr 30 22:01:32 2023 -0400
     1.2+++ b/build.rs	Sun Apr 30 22:24:18 2023 -0400
     1.3@@ -5,10 +5,10 @@
     1.4   let crate_dir: PathBuf = env::var("CARGO_MANIFEST_DIR")
     1.5     .expect("CARGO_MANIFEST_DIR env var is not defined")
     1.6     .into();
     1.7-  let mpk_py = "build.py";
     1.8+  // let mpk_py = "build.py";
     1.9   let config = cbindgen::Config::from_file("cbindgen.toml")
    1.10     .expect("Unable to find cbindgen.toml configuration file");
    1.11-  let build_dir = crate_dir.join("build/");
    1.12+  let build_dir = crate_dir.join("ffi/");
    1.13   if !build_dir.exists() {
    1.14     create_dir(&build_dir).unwrap();
    1.15   }
     2.1--- a/cfg/Cargo.toml	Sun Apr 30 22:01:32 2023 -0400
     2.2+++ b/cfg/Cargo.toml	Sun Apr 30 22:24:18 2023 -0400
     2.3@@ -3,4 +3,5 @@
     2.4 version = "0.1.0"
     2.5 edition = "2021"
     2.6 [dependencies]
     2.7-serde_dhall = "0.12.1"
     2.8\ No newline at end of file
     2.9+obj = {version = "0.1.0",path = "../obj"}
    2.10+serde_dhall = "0.12.1"
     3.1--- a/cfg/src/lib.rs	Sun Apr 30 22:01:32 2023 -0400
     3.2+++ b/cfg/src/lib.rs	Sun Apr 30 22:24:18 2023 -0400
     3.3@@ -1,14 +1,4 @@
     3.4-pub fn add(left: usize, right: usize) -> usize {
     3.5-    left + right
     3.6-}
     3.7+//! cfg/src/lib.rs --- Configuration types
     3.8 
     3.9 #[cfg(test)]
    3.10-mod tests {
    3.11-    use super::*;
    3.12-
    3.13-    #[test]
    3.14-    fn it_works() {
    3.15-        let result = add(2, 2);
    3.16-        assert_eq!(result, 4);
    3.17-    }
    3.18-}
    3.19+mod tests;
     4.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2+++ b/cfg/src/tests.rs	Sun Apr 30 22:24:18 2023 -0400
     4.3@@ -0,0 +1,6 @@
     4.4+//! cfg/src/tests --- unit tests
     4.5+use crate::*;
     4.6+#[test]
     4.7+fn test_hello() {
     4.8+  println!("looks good chief");
     4.9+}
     5.1--- a/makefile	Sun Apr 30 22:01:32 2023 -0400
     5.2+++ b/makefile	Sun Apr 30 22:24:18 2023 -0400
     5.3@@ -3,8 +3,8 @@
     5.4 .PHONY:build
     5.5 $(O):;mkdir -p $@
     5.6 clean:;rm -rf out *.fasl;cargo clean
     5.7-build:;ros/build.ros
     5.8-docs:;ros/docs.ros
     5.9-test:;ros/test.ros
    5.10-pack:;ros/pack.ros
    5.11+build:;scripts/build.ros
    5.12+docs:;scripts/docs.ros
    5.13+test:;scripts/test.ros
    5.14+pack:;scripts/pack.ros
    5.15 ci:clean build docs test pack;
     6.1--- a/obj/Cargo.toml	Sun Apr 30 22:01:32 2023 -0400
     6.2+++ b/obj/Cargo.toml	Sun Apr 30 22:24:18 2023 -0400
     6.3@@ -2,7 +2,15 @@
     6.4 name = "obj"
     6.5 version = "0.1.0"
     6.6 edition = "2021"
     6.7-
     6.8-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
     6.9-
    6.10 [dependencies]
    6.11+ron = "0.7.0"
    6.12+bincode = "1.3.3"
    6.13+serde_json = "1.0.68"
    6.14+serde = { version = "1.0.130", features = ["derive"] }
    6.15+chrono = { version = "0.4.19", features = ["serde"] }
    6.16+mime = "0.3.16"
    6.17+regex = "1.5.4"
    6.18+rusty_ulid = "0.11.0"
    6.19+uuid = { version = "0.8", features = ["serde"] }
    6.20+[target.'cfg(target_arch = "wasm32")'.dependencies]
    6.21+uuid = { version = "0.8", features = ["wasm-bindgen"] }
     7.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2+++ b/obj/src/err.rs	Sun Apr 30 22:24:18 2023 -0400
     7.3@@ -0,0 +1,81 @@
     7.4+//! obj errors
     7.5+use std::{fmt, io};
     7.6+
     7.7+/// obj Result wrapper
     7.8+pub type Result<T> = std::result::Result<T, Error>;
     7.9+
    7.10+/// obj Error type
    7.11+#[derive(Debug)]
    7.12+pub enum Error {
    7.13+  Message(String),
    7.14+  Ron(ron::error::Error),
    7.15+  Json(serde_json::error::Error),
    7.16+  Io(io::Error),
    7.17+  Bincode(bincode::Error),
    7.18+  Utf8(std::string::FromUtf8Error),
    7.19+  Parse(std::string::ParseError),
    7.20+}
    7.21+
    7.22+impl serde::ser::Error for Error {
    7.23+  fn custom<T: fmt::Display>(msg: T) -> Self {
    7.24+    Error::Message(msg.to_string())
    7.25+  }
    7.26+}
    7.27+
    7.28+impl serde::de::Error for Error {
    7.29+  fn custom<T: fmt::Display>(msg: T) -> Self {
    7.30+    Error::Message(msg.to_string())
    7.31+  }
    7.32+}
    7.33+
    7.34+impl fmt::Display for Error {
    7.35+  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
    7.36+    match self {
    7.37+      Error::Message(msg) => f.write_str(msg),
    7.38+      Error::Io(ref err) => write!(f, "obj IO error: {}", err),
    7.39+      Error::Ron(ref err) => write!(f, "obj Ron error: {}", err),
    7.40+      Error::Json(ref err) => write!(f, "obj Json error: {}", err),
    7.41+      Error::Bincode(ref err) => write!(f, "obj Bincode error: {}", err),
    7.42+      Error::Utf8(ref err) => write!(f, "obj Utf8 error: {}", err),
    7.43+      Error::Parse(ref err) => write!(f, "obj Parse error: {}", err),
    7.44+    }
    7.45+  }
    7.46+}
    7.47+
    7.48+impl From<io::Error> for Error {
    7.49+  fn from(e: io::Error) -> Self {
    7.50+    Error::Io(e)
    7.51+  }
    7.52+}
    7.53+
    7.54+impl From<std::string::ParseError> for Error {
    7.55+  fn from(e: std::string::ParseError) -> Self {
    7.56+    Error::Parse(e)
    7.57+  }
    7.58+}
    7.59+
    7.60+impl From<std::string::FromUtf8Error> for Error {
    7.61+  fn from(err: std::string::FromUtf8Error) -> Self {
    7.62+    Error::Utf8(err)
    7.63+  }
    7.64+}
    7.65+
    7.66+impl From<ron::Error> for Error {
    7.67+  fn from(e: ron::Error) -> Self {
    7.68+    Error::Ron(e)
    7.69+  }
    7.70+}
    7.71+
    7.72+impl From<serde_json::Error> for Error {
    7.73+  fn from(e: serde_json::Error) -> Self {
    7.74+    Error::Json(e)
    7.75+  }
    7.76+}
    7.77+
    7.78+impl From<bincode::Error> for Error {
    7.79+  fn from(e: bincode::Error) -> Self {
    7.80+    Error::Bincode(e)
    7.81+  }
    7.82+}
    7.83+
    7.84+impl std::error::Error for Error {}
     8.1--- a/obj/src/lib.rs	Sun Apr 30 22:01:32 2023 -0400
     8.2+++ b/obj/src/lib.rs	Sun Apr 30 22:24:18 2023 -0400
     8.3@@ -1,14 +1,125 @@
     8.4-pub fn add(left: usize, right: usize) -> usize {
     8.5-    left + right
     8.6+//! obj/src/lib.rs --- Objective type library
     8.7+mod err;
     8.8+pub use err::{Error,Result};
     8.9+
    8.10+pub use ron;
    8.11+
    8.12+use ron::extensions::Extensions;
    8.13+use serde::{de::DeserializeOwned, Deserialize, Serialize};
    8.14+use std::io;
    8.15+
    8.16+/// common trait for all config modules. This trait provides functions
    8.17+/// for de/serializing to/from RON, updating fields, and formatting.
    8.18+pub trait Configure: Objective {
    8.19+  fn update(&self) -> Result<()> {
    8.20+    Ok(())
    8.21+  }
    8.22 }
    8.23 
    8.24-#[cfg(test)]
    8.25-mod tests {
    8.26-    use super::*;
    8.27+/// Objective trait
    8.28+/// Define Object behaviors, implemented by Objects
    8.29+pub trait Objective {
    8.30+  fn encode(&self) -> Result<Vec<u8>>
    8.31+  where
    8.32+    Self: Serialize,
    8.33+  {
    8.34+    Ok(bincode::serialize(self)?)
    8.35+  }
    8.36+
    8.37+  fn encode_into<W>(&self, writer: W) -> Result<()>
    8.38+  where
    8.39+    W: io::Write,
    8.40+    Self: Serialize,
    8.41+  {
    8.42+    Ok(bincode::serialize_into(writer, self)?)
    8.43+  }
    8.44+
    8.45+  fn decode<'a>(&self, bytes: &'a [u8]) -> Result<Self>
    8.46+  where
    8.47+    Self: Deserialize<'a>,
    8.48+  {
    8.49+    Ok(bincode::deserialize(bytes)?)
    8.50+  }
    8.51+
    8.52+  fn decode_from<R>(&self, rdr: R) -> Result<Self>
    8.53+  where
    8.54+    R: io::Read,
    8.55+    Self: DeserializeOwned,
    8.56+  {
    8.57+    Ok(bincode::deserialize_from(rdr)?)
    8.58+  }
    8.59+
    8.60+  fn to_ron_writer<W>(&self, writer: W) -> Result<()>
    8.61+  where
    8.62+    W: io::Write,
    8.63+    Self: Serialize,
    8.64+  {
    8.65+    Ok(ron::ser::to_writer_pretty(
    8.66+      writer,
    8.67+      &self,
    8.68+      ron::ser::PrettyConfig::new()
    8.69+        .indentor("  ".to_owned())
    8.70+        .extensions(Extensions::all()),
    8.71+    )?)
    8.72+  }
    8.73 
    8.74-    #[test]
    8.75-    fn it_works() {
    8.76-        let result = add(2, 2);
    8.77-        assert_eq!(result, 4);
    8.78-    }
    8.79+  fn to_ron_string(&self) -> Result<String>
    8.80+  where
    8.81+    Self: Serialize,
    8.82+  {
    8.83+    Ok(ron::ser::to_string_pretty(
    8.84+      &self,
    8.85+      ron::ser::PrettyConfig::new().indentor("  ".to_owned()),
    8.86+    )?)
    8.87+  }
    8.88+
    8.89+  fn from_ron_reader<R>(&self, mut rdr: R) -> Result<Self>
    8.90+  where
    8.91+    R: io::Read,
    8.92+    Self: DeserializeOwned,
    8.93+  {
    8.94+    let mut bytes = Vec::new();
    8.95+    rdr.read_to_end(&mut bytes)?;
    8.96+    Ok(ron::de::from_bytes(&bytes)?)
    8.97+  }
    8.98+
    8.99+  fn from_ron_str<'a>(s: &'a str) -> Result<Self>
   8.100+  where
   8.101+    Self: Deserialize<'a>,
   8.102+  {
   8.103+    Ok(ron::de::from_bytes(s.as_bytes())?)
   8.104+  }
   8.105+
   8.106+  fn to_json_writer<W>(&self, writer: W) -> Result<()>
   8.107+  where
   8.108+    W: io::Write,
   8.109+    Self: Serialize,
   8.110+  {
   8.111+    //    let formatter = serde_json::ser::PrettyFormatter::with_indent(b"  ");
   8.112+    Ok(serde_json::ser::to_writer_pretty(writer, &self)?)
   8.113+  }
   8.114+
   8.115+  fn to_json_string(&self) -> Result<String>
   8.116+  where
   8.117+    Self: Serialize,
   8.118+  {
   8.119+    Ok(serde_json::ser::to_string_pretty(&self)?)
   8.120+  }
   8.121+
   8.122+  fn from_json_reader<R>(&self, mut rdr: R) -> Result<Self>
   8.123+  where
   8.124+    R: io::Read,
   8.125+    Self: DeserializeOwned,
   8.126+  {
   8.127+    let mut bytes = Vec::new();
   8.128+    rdr.read_to_end(&mut bytes)?;
   8.129+    Ok(serde_json::de::from_slice(&bytes)?)
   8.130+  }
   8.131+
   8.132+  fn from_json_str<'a>(s: &'a str) -> Result<Self>
   8.133+  where
   8.134+    Self: Deserialize<'a>,
   8.135+  {
   8.136+    Ok(serde_json::de::from_slice(s.as_bytes())?)
   8.137+  }
   8.138 }
     9.1--- a/ros/build.ros	Sun Apr 30 22:01:32 2023 -0400
     9.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3@@ -1,20 +0,0 @@
     9.4-#!/bin/sh
     9.5-#|-*- mode:lisp -*-|#
     9.6-#|
     9.7-exec ros -Q -- $0 "$@"
     9.8-|#
     9.9-(progn ;;init forms
    9.10-  (ros:ensure-asdf)
    9.11-  #+quicklisp(ql:quickload '() :silent t)
    9.12-  )
    9.13-
    9.14-(defpackage :ros.script.build.3891893519
    9.15-  (:use :cl))
    9.16-(in-package :ros.script.build.3891893519)
    9.17-
    9.18-(defun main (&rest argv)
    9.19-  (declare (ignorable argv))
    9.20-  (asdf:load-asd "cl-demo.asd")
    9.21-  (asdf:load-system "cl-demo")
    9.22-  (asdf:make :cl-demo))
    9.23-;;; vim: set ft=lisp lisp:
    10.1--- a/ros/clean.ros	Sun Apr 30 22:01:32 2023 -0400
    10.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3@@ -1,20 +0,0 @@
    10.4-#!/bin/sh
    10.5-#|-*- mode:lisp -*-|#
    10.6-#|
    10.7-exec ros -Q -- $0 "$@"			;
    10.8-|#
    10.9-
   10.10-;; clean:;rm -rf out *.fasl;pushd rust;cargo clean;popd
   10.11-
   10.12-(progn ;;init forms
   10.13-  (ros:ensure-asdf)
   10.14-  #+quicklisp(ql:quickload '() :silent t)
   10.15-  )
   10.16-
   10.17-(defpackage :ros.script.clean.3891893753
   10.18-  (:use :cl))
   10.19-(in-package :ros.script.clean.3891893753)
   10.20-
   10.21-(defun main (&rest argv)
   10.22-  (declare (ignorable argv)))
   10.23-;;; vim: set ft=lisp lisp:
    11.1--- a/ros/compile.ros	Sun Apr 30 22:01:32 2023 -0400
    11.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3@@ -1,15 +0,0 @@
    11.4-#!/bin/sh
    11.5-#|-*- mode:lisp -*-|#
    11.6-#|
    11.7-exec ros -Q -- $0 "$@"
    11.8-|#
    11.9-(progn ;;init forms
   11.10-  (in-package :cl-user)
   11.11-  (ros:ensure-asdf)
   11.12-  (asdf:load-asd #P"~/dev/cl-demo/cl-demo.asd")
   11.13-  (asdf:load-asd #P"~/quicklisp/local-projects/cl-rocksdb/cl-rocksdb.asd")
   11.14-  #+quicklisp(ql:quickload '(cl-demo) :silent t))
   11.15-
   11.16-;; TODO 2023-02-25: opts (system, config, user input)
   11.17-(defun main (&rest argv)
   11.18-  (declare (ignorable argv)))
    12.1--- a/ros/db.ros	Sun Apr 30 22:01:32 2023 -0400
    12.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3@@ -1,12 +0,0 @@
    12.4-#!/bin/sh
    12.5-#|-*- mode:lisp -*-|#
    12.6-#|
    12.7-exec ros -Q -- $0 "$@"
    12.8-|#
    12.9-(progn ;;init forms
   12.10-  (ros:ensure-asdf)
   12.11-  #+quicklisp(ql:quickload '() :silent t))
   12.12-
   12.13-(defun main (&rest argv)
   12.14-  (declare (ignorable argv))
   12.15-  (format t "hello world"))
    13.1--- a/ros/demo.ros	Sun Apr 30 22:01:32 2023 -0400
    13.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3@@ -1,12 +0,0 @@
    13.4-#!/bin/sh
    13.5-#|-*- mode:lisp -*-|#
    13.6-#|
    13.7-exec ros -Q -- $0 "$@"
    13.8-|#
    13.9-(progn ;;init forms
   13.10-  (ros:ensure-asdf)
   13.11-  #+quicklisp(ql:quickload '() :silent t))
   13.12-
   13.13-(defun main (&rest argv)
   13.14-  (declare (ignorable argv))
   13.15-  (format t "hello world"))
   13.16\ No newline at end of file
    14.1--- a/ros/docs.ros	Sun Apr 30 22:01:32 2023 -0400
    14.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3@@ -1,12 +0,0 @@
    14.4-#!/bin/sh
    14.5-#|-*- mode:lisp -*-|#
    14.6-#|
    14.7-exec ros -Q -- $0 "$@"
    14.8-|#
    14.9-(progn ;;init forms
   14.10-  (ros:ensure-asdf)
   14.11-  #+quicklisp(ql:quickload '() :silent t))
   14.12-
   14.13-(defun main (&rest argv)
   14.14-  (declare (ignorable argv))
   14.15-  (format t "hello world"))
    15.1--- a/ros/pack.ros	Sun Apr 30 22:01:32 2023 -0400
    15.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3@@ -1,17 +0,0 @@
    15.4-#!/bin/sh
    15.5-#|-*- mode:lisp -*-|#
    15.6-#|
    15.7-exec ros -Q -- $0 "$@"
    15.8-|#
    15.9-(progn ;;init forms
   15.10-  (ros:ensure-asdf)
   15.11-  #+quicklisp(ql:quickload '() :silent t)
   15.12-  )
   15.13-
   15.14-(defpackage :ros.script.pack.3891893796
   15.15-  (:use :cl))
   15.16-(in-package :ros.script.pack.3891893796)
   15.17-
   15.18-(defun main (&rest argv)
   15.19-  (declare (ignorable argv)))
   15.20-;;; vim: set ft=lisp lisp:
    16.1--- a/ros/test.ros	Sun Apr 30 22:01:32 2023 -0400
    16.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3@@ -1,12 +0,0 @@
    16.4-#!/bin/sh
    16.5-#|-*- mode:lisp -*-|#
    16.6-#|
    16.7-exec ros -Q -- $0 "$@"
    16.8-|#
    16.9-(progn ;;init forms
   16.10-  (ros:ensure-asdf)
   16.11-  #+quicklisp(ql:quickload '() :silent t))
   16.12-
   16.13-(defun main (&rest argv)
   16.14-  (declare (ignorable argv))
   16.15-  (format t "hello world"))
    17.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2+++ b/scripts/build.ros	Sun Apr 30 22:24:18 2023 -0400
    17.3@@ -0,0 +1,20 @@
    17.4+#!/bin/sh
    17.5+#|-*- mode:lisp -*-|#
    17.6+#|
    17.7+exec ros -Q -- $0 "$@"
    17.8+|#
    17.9+(progn ;;init forms
   17.10+  (ros:ensure-asdf)
   17.11+  #+quicklisp(ql:quickload '() :silent t)
   17.12+  )
   17.13+
   17.14+(defpackage :ros.script.build.3891893519
   17.15+  (:use :cl))
   17.16+(in-package :ros.script.build.3891893519)
   17.17+
   17.18+(defun main (&rest argv)
   17.19+  (declare (ignorable argv))
   17.20+  (asdf:load-asd "cl-demo.asd")
   17.21+  (asdf:load-system "cl-demo")
   17.22+  (asdf:make :cl-demo))
   17.23+;;; vim: set ft=lisp lisp:
    18.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2+++ b/scripts/clean.ros	Sun Apr 30 22:24:18 2023 -0400
    18.3@@ -0,0 +1,20 @@
    18.4+#!/bin/sh
    18.5+#|-*- mode:lisp -*-|#
    18.6+#|
    18.7+exec ros -Q -- $0 "$@"			;
    18.8+|#
    18.9+
   18.10+;; clean:;rm -rf out *.fasl;pushd rust;cargo clean;popd
   18.11+
   18.12+(progn ;;init forms
   18.13+  (ros:ensure-asdf)
   18.14+  #+quicklisp(ql:quickload '() :silent t)
   18.15+  )
   18.16+
   18.17+(defpackage :ros.script.clean.3891893753
   18.18+  (:use :cl))
   18.19+(in-package :ros.script.clean.3891893753)
   18.20+
   18.21+(defun main (&rest argv)
   18.22+  (declare (ignorable argv)))
   18.23+;;; vim: set ft=lisp lisp:
    19.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2+++ b/scripts/compile.ros	Sun Apr 30 22:24:18 2023 -0400
    19.3@@ -0,0 +1,15 @@
    19.4+#!/bin/sh
    19.5+#|-*- mode:lisp -*-|#
    19.6+#|
    19.7+exec ros -Q -- $0 "$@"
    19.8+|#
    19.9+(progn ;;init forms
   19.10+  (in-package :cl-user)
   19.11+  (ros:ensure-asdf)
   19.12+  (asdf:load-asd #P"~/dev/cl-demo/cl-demo.asd")
   19.13+  (asdf:load-asd #P"~/quicklisp/local-projects/cl-rocksdb/cl-rocksdb.asd")
   19.14+  #+quicklisp(ql:quickload '(cl-demo) :silent t))
   19.15+
   19.16+;; TODO 2023-02-25: opts (system, config, user input)
   19.17+(defun main (&rest argv)
   19.18+  (declare (ignorable argv)))
    20.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2+++ b/scripts/db.ros	Sun Apr 30 22:24:18 2023 -0400
    20.3@@ -0,0 +1,12 @@
    20.4+#!/bin/sh
    20.5+#|-*- mode:lisp -*-|#
    20.6+#|
    20.7+exec ros -Q -- $0 "$@"
    20.8+|#
    20.9+(progn ;;init forms
   20.10+  (ros:ensure-asdf)
   20.11+  #+quicklisp(ql:quickload '() :silent t))
   20.12+
   20.13+(defun main (&rest argv)
   20.14+  (declare (ignorable argv))
   20.15+  (format t "hello world"))
    21.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2+++ b/scripts/demo.ros	Sun Apr 30 22:24:18 2023 -0400
    21.3@@ -0,0 +1,12 @@
    21.4+#!/bin/sh
    21.5+#|-*- mode:lisp -*-|#
    21.6+#|
    21.7+exec ros -Q -- $0 "$@"
    21.8+|#
    21.9+(progn ;;init forms
   21.10+  (ros:ensure-asdf)
   21.11+  #+quicklisp(ql:quickload '() :silent t))
   21.12+
   21.13+(defun main (&rest argv)
   21.14+  (declare (ignorable argv))
   21.15+  (format t "hello world"))
   21.16\ No newline at end of file
    22.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2+++ b/scripts/docs.ros	Sun Apr 30 22:24:18 2023 -0400
    22.3@@ -0,0 +1,12 @@
    22.4+#!/bin/sh
    22.5+#|-*- mode:lisp -*-|#
    22.6+#|
    22.7+exec ros -Q -- $0 "$@"
    22.8+|#
    22.9+(progn ;;init forms
   22.10+  (ros:ensure-asdf)
   22.11+  #+quicklisp(ql:quickload '() :silent t))
   22.12+
   22.13+(defun main (&rest argv)
   22.14+  (declare (ignorable argv))
   22.15+  (format t "hello world"))
    23.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2+++ b/scripts/pack.ros	Sun Apr 30 22:24:18 2023 -0400
    23.3@@ -0,0 +1,17 @@
    23.4+#!/bin/sh
    23.5+#|-*- mode:lisp -*-|#
    23.6+#|
    23.7+exec ros -Q -- $0 "$@"
    23.8+|#
    23.9+(progn ;;init forms
   23.10+  (ros:ensure-asdf)
   23.11+  #+quicklisp(ql:quickload '() :silent t)
   23.12+  )
   23.13+
   23.14+(defpackage :ros.script.pack.3891893796
   23.15+  (:use :cl))
   23.16+(in-package :ros.script.pack.3891893796)
   23.17+
   23.18+(defun main (&rest argv)
   23.19+  (declare (ignorable argv)))
   23.20+;;; vim: set ft=lisp lisp:
    24.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2+++ b/scripts/test.ros	Sun Apr 30 22:24:18 2023 -0400
    24.3@@ -0,0 +1,12 @@
    24.4+#!/bin/sh
    24.5+#|-*- mode:lisp -*-|#
    24.6+#|
    24.7+exec ros -Q -- $0 "$@"
    24.8+|#
    24.9+(progn ;;init forms
   24.10+  (ros:ensure-asdf)
   24.11+  #+quicklisp(ql:quickload '() :silent t))
   24.12+
   24.13+(defun main (&rest argv)
   24.14+  (declare (ignorable argv))
   24.15+  (format t "hello world"))