this repo has no description
at workflows 1.7 kB view raw
1const std = @import("std"); 2const zine = @import("zine"); 3 4pub fn build(b: *std.Build) !void { 5 const compile_stylesheet = b.step("stylesheet", "Compile stylesheet from scss files"); 6 compile_stylesheet.result_cached = false; 7 std.debug.assert(try compile_stylesheet.addDirectoryWatchInput(b.path("style"))); 8 9 const compile_stylesheet_cmd_out = b.run(&.{ 10 "sass", 11 "--no-source-map", 12 "--no-color", 13 "--load-path=./style", 14 "./style/index.scss", 15 }); 16 const compile_stylesheet_cmd = b.addWriteFile("altagos.css", compile_stylesheet_cmd_out); 17 const install_stylesheet = b.addInstallDirectory(.{ 18 .source_dir = compile_stylesheet_cmd.getDirectory(), 19 .install_dir = .prefix, 20 .install_subdir = "style", 21 }); 22 install_stylesheet.step.dependOn(&compile_stylesheet_cmd.step); 23 24 const stylesheet = zine.BuildAsset{ 25 .name = "altagos.css", 26 .lp = b.path("zig-out/style/altagos.css"), 27 .install_path = "altagos.css", 28 .install_always = true, 29 }; 30 compile_stylesheet.dependOn(&install_stylesheet.step); 31 32 const website = zine.website(b, .{ 33 .output_path = "website", 34 .build_assets = &.{stylesheet}, 35 .force = true, 36 }); 37 website.step.dependOn(compile_stylesheet); 38 b.getInstallStep().dependOn(&website.step); 39 40 const serve = b.step("serve", "Start the Zine dev server"); 41 const run_zine = zine.serve(b, .{ 42 .build_assets = &.{stylesheet}, 43 }); 44 run_zine.step.dependOn(&install_stylesheet.step); 45 46 if (b.args) |args| { 47 run_zine.addArgs(args); 48 } 49 50 serve.dependOn(&run_zine.step); 51}