feat(init): scaffold cargo workspace and CI

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
dailz
2026-04-10 21:17:22 +08:00
co-authored by Sisyphus
commit 0ee82cbccd
13 changed files with 5905 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
ci:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Check formatting
run: cargo fmt --check --all
- name: Check
run: cargo check --workspace
- name: Test
run: cargo test --workspace
- name: Clippy
run: cargo clippy --workspace -- -D warnings
+5
View File
@@ -0,0 +1,5 @@
/target/
*.swp
*.swo
.idea/
.vscode/
Generated
+5784
View File
File diff suppressed because it is too large Load Diff
+24
View File
@@ -0,0 +1,24 @@
[workspace]
resolver = "2"
members = ["crates/core", "crates/gui", "crates/tui"]
default-members = ["crates/core"]
[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
parking_lot = "0.12"
crossbeam-channel = "0.5"
notify = "8"
regex = "1"
memchr = "2"
toml = "0.8"
directories = "6"
insta = "1"
anyhow = "1"
egui = "0.34"
eframe = "0.34"
ratatui = "0.30"
crossterm = "0.29"
clap = { version = "4", features = ["derive"] }
log-viewer-core = { path = "crates/core" }
+19
View File
@@ -0,0 +1,19 @@
[package]
name = "log-viewer-core"
version = "0.1.0"
edition = "2024"
[dependencies]
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
notify.workspace = true
toml.workspace = true
parking_lot.workspace = true
crossbeam-channel.workspace = true
regex.workspace = true
memchr.workspace = true
directories.workspace = true
[dev-dependencies]
insta.workspace = true
+1
View File
@@ -0,0 +1 @@
// Task 3 will implement error types
+10
View File
@@ -0,0 +1,10 @@
pub mod error;
pub mod types;
// pub mod io; — Task 4
// pub mod search; — Task 4
// pub mod parser; — Task 4
// pub mod watcher; — Task 4
// pub mod filter; — Task 4
// pub mod bookmark; — Task 4
// pub mod config; — Task 4
// pub mod session; — Task 4
+1
View File
@@ -0,0 +1 @@
// Task 2 will implement types
+9
View File
@@ -0,0 +1,9 @@
[package]
name = "log-viewer-gui"
version = "0.1.0"
edition = "2024"
[dependencies]
egui.workspace = true
eframe.workspace = true
log-viewer-core.workspace = true
+1
View File
@@ -0,0 +1 @@
fn main() {}
+11
View File
@@ -0,0 +1,11 @@
[package]
name = "log-viewer-tui"
version = "0.1.0"
edition = "2024"
[dependencies]
ratatui.workspace = true
crossterm.workspace = true
clap.workspace = true
anyhow.workspace = true
log-viewer-core.workspace = true
+1
View File
@@ -0,0 +1 @@
fn main() {}
+2
View File
@@ -0,0 +1,2 @@
[toolchain]
channel = "1.92"