diff --git a/flake.nix b/flake.nix index 1bd6c11..70eb190 100644 --- a/flake.nix +++ b/flake.nix @@ -44,12 +44,26 @@ #root = (pkgs.callPackage gitignore { }).gitignoreSource ./.; root = ./.; }); + kitchenWasmDebug = kitchenWasmGen { + inherit pkgs rust-wasm version; + features = "--features debug_logs"; + }; + kitchenDebug = (kitchenGen { + inherit pkgs version naersk-lib rust-wasm; + kitchenWasm = kitchenWasmDebug; + # Because it's a workspace we need the other crates available as source + # TODO(jwall): gitignoreSource is broken right now due to being impure. + #root = (pkgs.callPackage gitignore { }).gitignoreSource ./.; + root = ./.; + }); module = moduleGen {inherit kitchen;}; in { packages = { inherit kitchenWasm kitchen + kitchenWasmDebug + kitchenDebug ; }; defaultPackage = kitchen; diff --git a/nix/kitchenWasm/default.nix b/nix/kitchenWasm/default.nix index bef1696..9277ab2 100644 --- a/nix/kitchenWasm/default.nix +++ b/nix/kitchenWasm/default.nix @@ -1,5 +1,6 @@ {pkgs? (import ) {}, version ? "0.2.1", + features ? "", rust-wasm, }: with pkgs; @@ -35,7 +36,8 @@ stdenv.mkDerivation { mkdir -p $out cd web cp -r static $out - RUST_LOG=info wasm-pack build --mode no-install --release --target web --out-dir $out; + RUST_LOG=info wasm-pack build --mode no-install --release --target web --out-dir $out ${features}; cp -r index.html $out + cp -r favicon.ico $out ''; } \ No newline at end of file diff --git a/run.sh b/run.sh index b7e9e08..718744c 100755 --- a/run.sh +++ b/run.sh @@ -13,5 +13,5 @@ # limitations under the License. EXAMPLES=${EXAMPLES:-../examples} echo Starting api server serving ${EXAMPLES} -nix run .\#kitchen -- --verbose debug serve --dir ${EXAMPLES} --tls --cert ~/tls-certs/localhost+2.pem --cert_key ~/tls-certs/localhost+2-key.pem +nix run .\#kitchenDebug -- --verbose debug serve --dir ${EXAMPLES} --tls --cert ~/tls-certs/localhost+2.pem --cert_key ~/tls-certs/localhost+2-key.pem # This is ghetto but I'm doing it anyway diff --git a/web/Cargo.toml b/web/Cargo.toml index 5d6cf92..fbc19b2 100644 --- a/web/Cargo.toml +++ b/web/Cargo.toml @@ -7,6 +7,7 @@ edition = "2021" ssr = [] web = [] default = ["web"] +debug_logs = [] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] diff --git a/web/src/lib.rs b/web/src/lib.rs index 4f6fcf1..ae80975 100644 --- a/web/src/lib.rs +++ b/web/src/lib.rs @@ -26,19 +26,23 @@ use web::UI; fn configure_tracing() { console_error_panic_hook::set_once(); - use tracing_subscriber::fmt::format::Pretty; - use tracing_subscriber::prelude::*; + use tracing::Level; + use tracing_subscriber::{filter::LevelFilter, fmt::format::Pretty, prelude::*}; use tracing_web::{performance_layer, MakeConsoleWriter}; let fmt_layer = tracing_subscriber::fmt::layer() .with_ansi(false) .without_time() - //.with_timer(UtcTime::rfc_3339()) // std::time is not available in browsers - .with_writer(MakeConsoleWriter); // write events to the console + .with_writer(MakeConsoleWriter) // write events to the console + .with_filter(LevelFilter::from(if cfg!(feature = "debug_logs") { + Level::DEBUG + } else { + Level::INFO + })); let perf_layer = performance_layer().with_details_from_fields(Pretty::default()); tracing_subscriber::registry() - .with(fmt_layer) .with(perf_layer) + .with(fmt_layer) .init(); }