From f162d641a71b95f7febab0c04aba7d64182df38b Mon Sep 17 00:00:00 2001 From: Ellie Huxtable 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.down.sql | 2 ++ .../migrations/20250326160051_create_scripts.up.sql | 17 +++++++++++++++++ .../migrations/20250402170430_unique_names.down.sql | 2 ++ .../migrations/20250402170430_unique_names.up.sql | 2 ++ 4 files changed, 23 insertions(+) create mode 100644 crates/atuin-scripts/migrations/20250326160051_create_scripts.down.sql create mode 100644 crates/atuin-scripts/migrations/20250326160051_create_scripts.up.sql create mode 100644 crates/atuin-scripts/migrations/20250402170430_unique_names.down.sql create mode 100644 crates/atuin-scripts/migrations/20250402170430_unique_names.up.sql (limited to 'crates/atuin-scripts/migrations') diff --git a/crates/atuin-scripts/migrations/20250326160051_create_scripts.down.sql b/crates/atuin-scripts/migrations/20250326160051_create_scripts.down.sql new file mode 100644 index 00000000..b2c5a363 --- /dev/null +++ b/crates/atuin-scripts/migrations/20250326160051_create_scripts.down.sql @@ -0,0 +1,2 @@ +DROP TABLE scripts; +DROP TABLE script_tags; \ No newline at end of file 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 diff --git a/crates/atuin-scripts/migrations/20250402170430_unique_names.down.sql b/crates/atuin-scripts/migrations/20250402170430_unique_names.down.sql new file mode 100644 index 00000000..269b8cd9 --- /dev/null +++ b/crates/atuin-scripts/migrations/20250402170430_unique_names.down.sql @@ -0,0 +1,2 @@ +-- Add down migration script here +alter table scripts drop index name_uniq_idx; \ No newline at end of file diff --git a/crates/atuin-scripts/migrations/20250402170430_unique_names.up.sql b/crates/atuin-scripts/migrations/20250402170430_unique_names.up.sql new file mode 100644 index 00000000..d2cdd02f --- /dev/null +++ b/crates/atuin-scripts/migrations/20250402170430_unique_names.up.sql @@ -0,0 +1,2 @@ +-- Add up migration script here +create unique index name_uniq_idx ON scripts(name); \ No newline at end of file -- cgit v1.3.1