diff --git a/flake.nix b/flake.nix index d27bda9..385fae2 100644 --- a/flake.nix +++ b/flake.nix @@ -13,7 +13,7 @@ nvim-traxys = { url = "github:traxys/nvim-flake"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.nixfiles.follows = "/"; + inputs.nixfiles.follows = "/"; }; rust-overlay.url = "github:oxalica/rust-overlay"; naersk.url = "github:nix-community/naersk"; @@ -86,6 +86,10 @@ path = ./templates/rust; description = "My rust template using rust-overlay and direnv"; }; + perseus = { + path = ./templates/perseus; + description = "A perseus frontend with rust-overlay & direnv"; + }; }; packages.x86_64-linux = pkgList "x86_64-linux" nixpkgs.legacyPackages.x86_64-linux.callPackage; diff --git a/templates/perseus/.envrc b/templates/perseus/.envrc new file mode 100644 index 0000000..5e9005b --- /dev/null +++ b/templates/perseus/.envrc @@ -0,0 +1,4 @@ +if ! has nix_direnv_version || ! nix_direnv_version 2.1.1; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.1.1/direnvrc" "sha256-b6qJ4r34rbE23yWjMqbmu3ia2z4b2wIlZUksBke/ol0=" +fi +use flake diff --git a/templates/perseus/.gitignore b/templates/perseus/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/templates/perseus/.gitignore @@ -0,0 +1 @@ +/target diff --git a/templates/perseus/Cargo.toml b/templates/perseus/Cargo.toml new file mode 100644 index 0000000..46a07a8 --- /dev/null +++ b/templates/perseus/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "todo_change_name" +version = "0.1.0" +authors = ["traxys "] +edition = "2021" + +[dependencies] +perseus = { version = "0.4", features = ["hydrate"] } +serde = { version = "1.0.162", features = ["derive"] } +serde_json = "1.0.96" +sycamore = "^0.8.1" + +[target.'cfg(engine)'.dependencies] +tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread"] } +perseus-axum = { version = "=0.4.0", features = ["dflt-server"] } + +[target.'cfg(client)'.dependencies] diff --git a/templates/perseus/flake.nix b/templates/perseus/flake.nix new file mode 100644 index 0000000..a291779 --- /dev/null +++ b/templates/perseus/flake.nix @@ -0,0 +1,38 @@ +{ + description = "A basic flake with a shell"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.naersk.url = "github:nix-community/naersk"; + inputs.rust-overlay.url = "github:oxalica/rust-overlay"; + inputs.nixfiles.url = "github:traxys/Nixfiles"; + + outputs = { + self, + nixpkgs, + flake-utils, + naersk, + rust-overlay, + nixfiles, + }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs { + inherit system; + overlays = [(import rust-overlay)]; + }; + rust = pkgs.rust-bin.stable.latest.default.override { + targets = ["wasm32-unknown-unknown"]; + }; + naersk' = pkgs.callPackage naersk { + cargo = rust; + rustc = rust; + }; + in { + devShell = pkgs.mkShell { + nativeBuildInputs = [rust nixfiles.packages."${system}".perseus-cli]; + RUST_PATH = "${rust}"; + RUST_DOC_PATH = "${rust}/share/doc/rust/html/std/index.html"; + }; + + defaultPackage = naersk'.buildPackage ./.; + }); +} diff --git a/templates/perseus/src/error_views/mod.rs b/templates/perseus/src/error_views/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/templates/perseus/src/main.rs b/templates/perseus/src/main.rs new file mode 100644 index 0000000..73ae463 --- /dev/null +++ b/templates/perseus/src/main.rs @@ -0,0 +1,10 @@ +mod error_views; +mod templates; + +use perseus::prelude::*; +use sycamore::prelude::*; + +#[perseus::main(perseus_axum::dflt_server)] +fn main() -> PerseusApp { + PerseusApp::new() +} diff --git a/templates/perseus/src/templates/mod.rs b/templates/perseus/src/templates/mod.rs new file mode 100644 index 0000000..e69de29