summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@elliehuxtable.com>2024-04-11 16:59:01 +0100
committerGitHub <noreply@github.com>2024-04-11 16:59:01 +0100
commit6cd4319fcf540ef70f74cc2f10d0d4297ee7b788 (patch)
tree3d24dbf70493c377e162d9941faac65c829623f9
parent0da8d34425ef83395759db79377025c062a69911 (diff)
feat(gui): add base structure (#1935)
* initial * ui things * cargo * update, add history refresh button * history page a bit better, add initial dotfiles page * re-org layout * bye squigglies * add dotfiles ui, show aliases * add default shell detection * put stats in a little drawer, alias import changes * use new table for aliases, add alias deleting * support adding aliases * close drawer when added, no alias autocomplete * clippy, format * attempt to ensure gdk is installed ok * sudo * no linux things on mac ffs * I forgot we build for windows too... end of day * remove tauri backend from workspace
-rw-r--r--.github/workflows/rust.yml318
-rw-r--r--Cargo.lock382
-rw-r--r--Cargo.toml26
-rw-r--r--atuin-client/src/database.rs2
-rw-r--r--atuin-common/src/shell.rs107
-rw-r--r--atuin-dotfiles/Cargo.toml3
-rw-r--r--atuin-dotfiles/src/shell.rs38
-rw-r--r--atuin/src/command/client/doctor.rs15
-rw-r--r--ui/.gitignore26
-rw-r--r--ui/README.md7
-rw-r--r--ui/backend/.gitignore4
-rw-r--r--ui/backend/Cargo.lock5801
-rw-r--r--ui/backend/Cargo.toml38
-rw-r--r--ui/backend/build.rs3
-rw-r--r--ui/backend/capabilities/migrated.json24
-rw-r--r--ui/backend/icons/128x128.pngbin0 -> 15556 bytes
-rw-r--r--ui/backend/icons/128x128@2x.pngbin0 -> 34984 bytes
-rw-r--r--ui/backend/icons/32x32.pngbin0 -> 2484 bytes
-rw-r--r--ui/backend/icons/Square107x107Logo.pngbin0 -> 12460 bytes
-rw-r--r--ui/backend/icons/Square142x142Logo.pngbin0 -> 17648 bytes
-rw-r--r--ui/backend/icons/Square150x150Logo.pngbin0 -> 18881 bytes
-rw-r--r--ui/backend/icons/Square284x284Logo.pngbin0 -> 39111 bytes
-rw-r--r--ui/backend/icons/Square30x30Logo.pngbin0 -> 2211 bytes
-rw-r--r--ui/backend/icons/Square310x310Logo.pngbin0 -> 43432 bytes
-rw-r--r--ui/backend/icons/Square44x44Logo.pngbin0 -> 3888 bytes
-rw-r--r--ui/backend/icons/Square71x71Logo.pngbin0 -> 7360 bytes
-rw-r--r--ui/backend/icons/Square89x89Logo.pngbin0 -> 9942 bytes
-rw-r--r--ui/backend/icons/StoreLogo.pngbin0 -> 4589 bytes
-rw-r--r--ui/backend/icons/icon.icnsbin0 -> 407317 bytes
-rw-r--r--ui/backend/icons/icon.icobin0 -> 51419 bytes
-rw-r--r--ui/backend/icons/icon.pngbin0 -> 74650 bytes
-rw-r--r--ui/backend/src/db.rs245
-rw-r--r--ui/backend/src/dotfiles/aliases.rs91
-rw-r--r--ui/backend/src/dotfiles/mod.rs1
-rw-r--r--ui/backend/src/main.rs63
-rw-r--r--ui/backend/src/store.rs1
-rw-r--r--ui/backend/tauri.conf.json47
-rw-r--r--ui/components.json17
-rw-r--r--ui/icon.pngbin0 -> 134300 bytes
-rw-r--r--ui/index.html14
-rw-r--r--ui/package.json46
-rw-r--r--ui/pnpm-lock.yaml2800
-rw-r--r--ui/postcss.config.js6
-rw-r--r--ui/public/tauri.svg6
-rw-r--r--ui/public/vite.svg1
-rw-r--r--ui/src/App.css7
-rw-r--r--ui/src/App.tsx116
-rw-r--r--ui/src/assets/logo-light.svg1
-rw-r--r--ui/src/assets/react.svg1
-rw-r--r--ui/src/components/Drawer.tsx26
-rw-r--r--ui/src/components/HistoryList.tsx75
-rw-r--r--ui/src/components/HistorySearch.tsx56
-rw-r--r--ui/src/components/dotfiles/Aliases.tsx191
-rw-r--r--ui/src/components/history/Stats.tsx143
-rw-r--r--ui/src/components/ui/button.tsx56
-rw-r--r--ui/src/components/ui/data-table.tsx80
-rw-r--r--ui/src/components/ui/dropdown-menu.tsx198
-rw-r--r--ui/src/components/ui/table.tsx117
-rw-r--r--ui/src/lib/utils.ts6
-rw-r--r--ui/src/main.tsx10
-rw-r--r--ui/src/pages/Dotfiles.tsx32
-rw-r--r--ui/src/pages/History.tsx108
-rw-r--r--ui/src/styles.css76
-rw-r--r--ui/src/vite-env.d.ts1
-rw-r--r--ui/tailwind.config.js77
-rw-r--r--ui/tsconfig.json29
-rw-r--r--ui/tsconfig.node.json10
-rw-r--r--ui/vite.config.ts22
68 files changed, 11197 insertions, 373 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index a26e2e85..a824891e 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -2,9 +2,9 @@ name: Rust
on:
push:
- branches: [ main ]
+ branches: [main]
pull_request:
- branches: [ main ]
+ branches: [main]
env:
CARGO_TERM_COLOR: always
@@ -17,32 +17,45 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Run cargo build common
- run: cargo build -p atuin-common --locked --release
-
- - name: Run cargo build client
- run: cargo build -p atuin-client --locked --release
-
- - name: Run cargo build server
- run: cargo build -p atuin-server --locked --release
-
- - name: Run cargo build main
- run: cargo build --all --locked --release
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - name: Run cargo build common
+ run: cargo build -p atuin-common --locked --release
+
+ - name: Run cargo build client
+ run: cargo build -p atuin-client --locked --release
+
+ - name: Run cargo build server
+ run: cargo build -p atuin-server --locked --release
+
+ - name: Run cargo build main
+ run: cargo build --all --locked --release
cross-compile:
strategy:
@@ -54,32 +67,32 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install cross
- uses: taiki-e/install-action@v1
- with:
- tool: cross
+ - name: Install cross
+ uses: taiki-e/install-action@v1
+ with:
+ tool: cross
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${{ matrix.target }}-cross-compile-${{ hashFiles('**/Cargo.lock') }}
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ matrix.target }}-cross-compile-${{ hashFiles('**/Cargo.lock') }}
- - name: Run cross build common
- run: cross build -p atuin-common --locked --target ${{ matrix.target }}
+ - name: Run cross build common
+ run: cross build -p atuin-common --locked --target ${{ matrix.target }}
- - name: Run cross build client
- run: cross build -p atuin-client --locked --target ${{ matrix.target }}
+ - name: Run cross build client
+ run: cross build -p atuin-client --locked --target ${{ matrix.target }}
- - name: Run cross build server
- run: cross build -p atuin-server --locked --target ${{ matrix.target }}
+ - name: Run cross build server
+ run: cross build -p atuin-server --locked --target ${{ matrix.target }}
- - name: Run cross build main
- run: cross build --all --locked --target ${{ matrix.target }}
+ - name: Run cross build main
+ run: cross build --all --locked --target ${{ matrix.target }}
unit-test:
strategy:
@@ -88,29 +101,41 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: taiki-e/install-action@v2
- name: Install nextest
- with:
- tool: cargo-nextest
-
-
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Run cargo test
- run: cargo nextest run --lib --bins
+ - name: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - uses: taiki-e/install-action@v2
+ name: Install nextest
+ with:
+ tool: cargo-nextest
+
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Run cargo test
+ run: cargo nextest run --lib --bins
check:
strategy:
@@ -119,35 +144,48 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Run cargo check (all features)
- run: cargo check --all-features --workspace
-
- - name: Run cargo check (no features)
- run: cargo check --no-default-features --workspace
-
- - name: Run cargo check (sync)
- run: cargo check --no-default-features --features sync --workspace
-
- - name: Run cargo check (server)
- run: cargo check --no-default-features --features server --workspace
-
- - name: Run cargo check (client only)
- run: cargo check --no-default-features --features client --workspace
+ - name: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Run cargo check (all features)
+ run: cargo check --all-features --workspace
+
+ - name: Run cargo check (no features)
+ run: cargo check --no-default-features --workspace
+
+ - name: Run cargo check (sync)
+ run: cargo check --no-default-features --features sync --workspace
+
+ - name: Run cargo check (server)
+ run: cargo check --no-default-features --features server --workspace
+
+ - name: Run cargo check (client only)
+ run: cargo check --no-default-features --features client --workspace
integration-test:
runs-on: ubuntu-latest
@@ -163,66 +201,78 @@ jobs:
- 5432:5432
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: taiki-e/install-action@v2
- name: Install nextest
- with:
- tool: cargo-nextest
-
-
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Run cargo test
- run: cargo nextest run --test '*'
- env:
- ATUIN_DB_URI: postgres://atuin:pass@localhost:5432/atuin
+ - uses: taiki-e/install-action@v2
+ name: Install nextest
+ with:
+ tool: cargo-nextest
+
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Run cargo test
+ run: cargo nextest run --test '*'
+ env:
+ ATUIN_DB_URI: postgres://atuin:pass@localhost:5432/atuin
clippy:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install latest rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install latest rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
components: clippy
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Run clippy
- run: cargo clippy -- -D warnings
-
+ - name: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Run clippy
+ run: cargo clippy -- -D warnings
+
format:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install latest rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install latest rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
components: rustfmt
- - name: Format
- run: cargo fmt -- --check
+ - name: Format
+ run: cargo fmt -- --check
diff --git a/Cargo.lock b/Cargo.lock
index 33f17a34..9c6e81b0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -42,9 +42,9 @@ dependencies = [
[[package]]
name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
@@ -120,15 +120,15 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.80"
+version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
[[package]]
name = "arc-swap"
-version = "1.7.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
[[package]]
name = "argon2"
@@ -144,13 +144,13 @@ dependencies = [
[[package]]
name = "async-trait"
-version = "0.1.77"
+version = "0.1.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.52",
+ "syn 2.0.58",
]
[[package]]
@@ -302,6 +302,7 @@ dependencies = [
"eyre",
"rand",
"rmp",
+ "serde",
"tokio",
]
@@ -324,7 +325,7 @@ dependencies = [
"rand",
"reqwest",
"rustls",
- "rustls-pemfile 2.1.1",
+ "rustls-pemfile 2.1.2",
"semver",
"serde",
"serde_json",
@@ -367,15 +368,15 @@ dependencies = [
[[package]]
name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
[[package]]
name = "axum"
-version = "0.7.4"
+version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
+checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
dependencies = [
"async-trait",
"axum-core",
@@ -397,7 +398,7 @@ dependencies = [
"serde_json",
"serde_path_to_error",
"serde_urlencoded",
- "sync_wrapper",
+ "sync_wrapper 1.0.1",
"tokio",
"tower",
"tower-layer",
@@ -420,7 +421,7 @@ dependencies = [
"mime",
"pin-project-lite",
"rustversion",
- "sync_wrapper",
+ "sync_wrapper 0.1.2",
"tower-layer",
"tower-service",
"tracing",
@@ -442,7 +443,7 @@ dependencies = [
"hyper-util",
"pin-project-lite",
"rustls",
- "rustls-pemfile 2.1.1",
+ "rustls-pemfile 2.1.2",
"tokio",
"tokio-rustls",
"tower",
@@ -451,9 +452,9 @@ dependencies = [
[[package]]
name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
dependencies = [
"addr2line",
"cc",
@@ -477,6 +478,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
name = "base64ct"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -496,9 +503,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
dependencies = [
"serde",
]
@@ -540,15 +547,9 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.15.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
-
-[[package]]
-name = "bytecount"
-version = "0.6.7"
+version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "byteorder"
@@ -558,9 +559,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
[[package]]
name = "cassowary"
@@ -570,9 +571,9 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
[[package]]
name = "cc"
-version = "1.0.89"
+version = "1.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723"
+checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41"
[[package]]
name = "cfg-if"
@@ -610,9 +611,9 @@ dependencies = [
[[package]]
name = "chrono"
-version = "0.4.34"
+version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
dependencies = [
"android-tzdata",
"iana-time-zone",
@@ -643,9 +644,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.1"
+version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
dependencies = [
"clap_builder",