{ pkgs ? import { }, proj ? pkgs.proj }: pkgs.buildGoModule rec { meta = { description = "Nidus Sync"; homepage = "https://github.com/Gleipnir-Technology/nidus-sync"; }; pname = "nidus-sync"; src = ./.; subPackages = []; version = "0.0.11"; # Needs to be updated after every modification of go.mod/go.sum vendorHash = "sha256-zXjryPAJYpc80cqYtrcp//i6OQi5V5QwhaKQYYfrlL8="; buildInputs = [ pkgs.proj ]; nativeBuildInputs = [ pkgs.pkg-config pkgs.dart-sass pkgs.esbuild ]; preBuild = '' # Compile SCSS SASS_SRC_DIR="./scss" CSS_OUTPUT_DIR="./static/gen/css/" mkdir -p "$CSS_OUTPUT_DIR" echo "Compiling $SASS_SRC_DIR/style.scss to $CSS_OUTPUT_DIR/bootstrap.css..." sass --style=compressed --trace "$SASS_SRC_DIR/style.scss":"$CSS_OUTPUT_DIR/bootstrap.css" # Bundle TypeScript JS_OUTPUT_DIR="./static/gen/js/" mkdir -p "$JS_OUTPUT_DIR" echo "Bundling TypeScript..." esbuild ts/main.ts --bundle --minify --outfile="$JS_OUTPUT_DIR/bundle.js" # Generate hash and rename bundle BUNDLE_HASH=$(sha256sum "$JS_OUTPUT_DIR/bundle.js" | cut -c1-12) mv "$JS_OUTPUT_DIR/bundle.js" "$JS_OUTPUT_DIR/bundle.$BUNDLE_HASH.js" # Generate gen.go with bundle path cat > gen.go <