From 04e724cf1f04571e3f25bdcff229cf8bbf4bfd99 Mon Sep 17 00:00:00 2001 From: c0repwn3r Date: Wed, 12 Apr 2023 11:30:49 -0400 Subject: [PATCH] replace justfile with spacetime --- spacetime/spacetime.py | 29 ++++++++++++++++++++++++----- st | 40 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/spacetime/spacetime.py b/spacetime/spacetime.py index 285da74d859198ba91f6e33de8fa07ccaff169ab..dca363688098cdc6952539159d4c0bfe9097dd03 100644 --- a/spacetime/spacetime.py +++ b/spacetime/spacetime.py @@ -58,11 +58,15 @@ def gen_inkscape_rules_for_asset(root, asset, writer, files_375, files_full, fil writer.build([out_375], rule_375, [in_file]) writer.build([out_125], rule_125, [in_file]) + def gen_rules_for_client(root, env, writer): if env == 'dev': - writer.rule('cargo-client', 'wasm-pack build --target web client', depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console') + writer.rule('cargo-client', 'wasm-pack build --target web client', + depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console') elif env == 'prod': - writer.rule('cargo-client', 'wasm-pack build --target web client --no-default-features --features textures-fast', depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console') + writer.rule('cargo-client', + 'wasm-pack build --target web client --no-default-features --features textures-fast', + depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console') writer.build( [ f'{root}/client/pkg/.gitignore', @@ -112,6 +116,20 @@ def gen_rules_for_client(root, env, writer): writer.build(['client'], 'phony', [f'{root}/web/dist/starkingdoms_client.js']) +def gen_rules_for_server(root, env, writer): + if env == 'dev': + out_dir = 'debug' + writer.rule('cargo-server', 'cargo build --bin starkingdoms-server', + depfile=f'{root}/target/debug/starkingdoms-server.d', pool='console') + elif env == 'prod': + out_dir = 'release' + writer.rule('cargo-server', 'cargo build --bin starkingdoms-server --release', + depfile=f'{root}/target/release/starkingdoms-server.d', pool='console') + + writer.build([f'{root}/target/{out_dir}/starkingdoms-server'], 'cargo-server', ['server/Cargo.toml']) + writer.build(['server'], 'phony', [f'{root}/target/{out_dir}/starkingdoms-server']) + + def gen_inkscape(root, assets, writer, files_375, files_full, files_125): gen_inkscape_rules_for_asset_sizes(writer) @@ -167,9 +185,10 @@ def main(): assets = scan_assets(root) generate_assets_build_command(root, assets, writer) - gen_rules_for_client(root, env, writer) - - + if target == 'client': + gen_rules_for_client(root, env, writer) + elif target == 'server': + gen_rules_for_server(root, env, writer) print(f'[spacetime] Configured build') diff --git a/st b/st index bb29f6d5c2b927b34997df5256a87440e09b00da..c3fcad598b447264c2748800126e5c8b0f4af768 100755 --- a/st +++ b/st @@ -24,8 +24,10 @@ sub_help() { echo " help - Show this help screen" # done echo " run_http - Compile the client and run a development http server for testing it" # done echo " run_http_prod - Compile the client in production mode and run a development http server for testing it" # done - echo " run_server (default) - Compile and run the game server" - echo " build_server - Compile the game server" + echo " run_server (default) - Compile and run the game server" # done + echo " build_server - Compile the game server" # done + echo " run_server_prod - Compile and run the game server with optimizations enabled" # done + echo " build_server_prod - Compile the game server with optimizations enabled" # done echo " build_client_bundle - Compile an optimized WebAssembly client bundle" # done echo " build_client_bundle_prod - Compile an optimized WebAssembly client bundle using textures-fast" # done echo " install_tooling - Install the compilation utilities required for compiling StarKingdoms" # done @@ -33,7 +35,7 @@ sub_help() { echo " build_assets_full - Compile spritesheets in full size for textures-fast" # done echo " build_assets_375 - Commpile 37.5% spritesheets for textures-fast" # done echo " build_assets_125 - Compile 12.5% spritesheets for textures-fast" # done - echo " clean - Remove all generated files" + echo " clean - Remove all generated files" # done } check_install_cargo() { @@ -60,6 +62,14 @@ check_all() { check inkscape } +sub_clean() { + rm -rf web/dist + rm -rf assets/dist + rm -rf assets/final + rm -rf target + rm -rf client/pkg +} + sub_install_tooling() { check_install_cargo wasm-pack wasm-pack --no-default-features check_install_cargo sheep sheep_cli @@ -93,6 +103,30 @@ sub_run_http_prod() { cd web && python3 -m http.server } +sub_build_server() { + check_all + exec_spacetime server dev "$SCRIPT_DIR" + exec_ninja server +} +sub_run_server() { + check_all + exec_spacetime server dev "$SCRIPT_DIR" + exec_ninja server + exec "$SCRIPT_DIR/target/debug/starkingdoms-server" +} + +sub_build_server_prod() { + check_all + exec_spacetime server prod "$SCRIPT_DIR" + exec_ninja server +} +sub_run_server_prod() { + check_all + exec_spacetime server prod "$SCRIPT_DIR" + exec_ninja server + exec "$SCRIPT_DIR/target/release/starkingdoms-server" +} + sub_build_assets() { check_all exec_spacetime asset dev "$SCRIPT_DIR"