From f162d641a71b95f7febab0c04aba7d64182df38b Mon Sep 17 00:00:00 2001
From: Ellie Huxtable <ellie@atuin.sh>
Date: Mon, 7 Apr 2025 14:17:19 +0100
Subject: feat: support storing, syncing and executing scripts (#2644)

* feat: add atuin-scripts crate

* initial

* define record types

* wip

* wip

* mvp

* add show command, make stdin work

* rewrite execution to use shebang and script file ALWAYS

* rename show -> get, allow fetching script only

* fmt

* clippy

* a bunch of fixes to the edits

* update lock

* variables

* fmt

* clippy

* pr feedback

* fmt
---
 .../migrations/20250326160051_create_scripts.up.sql     | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 crates/atuin-scripts/migrations/20250326160051_create_scripts.up.sql

(limited to 'crates/atuin-scripts/migrations/20250326160051_create_scripts.up.sql')

diff --git a/crates/atuin-scripts/migrations/20250326160051_create_scripts.up.sql b/crates/atuin-scripts/migrations/20250326160051_create_scripts.up.sql
new file mode 100644
index 00000000..1b2f3688
--- /dev/null
+++ b/crates/atuin-scripts/migrations/20250326160051_create_scripts.up.sql
@@ -0,0 +1,17 @@
+-- Add up migration script here
+CREATE TABLE scripts (
+    id TEXT PRIMARY KEY,
+    name TEXT NOT NULL,
+    description TEXT NOT NULL,
+    shebang TEXT NOT NULL,
+    script TEXT NOT NULL,
+    inserted_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
+);
+
+CREATE TABLE script_tags (
+    id INTEGER PRIMARY KEY,
+    script_id TEXT NOT NULL,
+    tag TEXT NOT NULL
+);
+
+CREATE UNIQUE INDEX idx_script_tags ON script_tags (script_id, tag);
\ No newline at end of file
-- 
cgit v1.3.1

