#!/bin/sh set -e MIZE_SRC="/home/me/work/mize" # hardcoded for now RSYNC_EXCLUDES="--exclude=node_modules --exclude=target --exclude=mize_config.toml --exclude=rust_dist --exclude=deno_dist --exclude=dist --exclude=result --exclude=pkg" function main { if [[ "$1" == "gen" ]]; then generate_sources fi if [[ "$1" == "dsp" ]]; then deploy_spacetime fi if [[ "$1" == "dlu" ]]; then deploy_lush fi if [[ "$1" == "dma" ]]; then deploy_main fi if [[ "$1" == "dmac" ]]; then deploy_mac fi if [[ "$1" == "dpw" ]]; then deploy_ppc_website fi if [[ "$1" == "dmo" ]]; then deploy_main_obsidian fi } function deploy_spacetime { spacetime publish -p $MIZE_SRC/packages/spacetime } function generate_sources { echo "mize: Generating sources..." mkdir -p $MIZE_SRC/packages/generated/src/spacetime # Generate Cargo.toml and lib.rs cat << 'EOF' > $MIZE_SRC/packages/generated/Cargo.toml [package] name = "generated" version = "0.1.0" edition = "2021" [lib] name = "generated" path = "src/lib.rs" [dependencies] spacetimedb-sdk = "2.1.0" EOF echo -e 'pub mod spacetime;\n' > $MIZE_SRC/packages/generated/src/lib.rs # Generate spacetime client bindings spacetime generate -p $MIZE_SRC/packages/spacetime -o $MIZE_SRC/packages/generated/src/spacetime --lang rust } function deploy_main { cargo build --manifest-path $MIZE_SRC/packages/mize/Cargo.toml --release cargo build --manifest-path $MIZE_SRC/packages/ppc/Cargo.toml --release --features desktop cp $MIZE_SRC/target/release/mize ~/here/mize/ cp $MIZE_SRC/target/release/libppc_part.so ~/here/mize/ cp $MIZE_SRC/md ~/here/mize/ cp $MIZE_SRC/target/release/ppc ~/here/mize/ systemctl --user restart mize } function deploy_mac { echo "c2vi: Deploying to mac..." # Copy files to mac rsync -r -u -v -a --delete --include=".git/" --include=".git/**" --mkpath $RSYNC_EXCLUDES $MIZE_SRC mac:here # compile ssh mac << EOF if ! tmux has-session -t ppc-deploy 2>/dev/null; then echo "Created new tmux session...." tmux new-session -d -s ppc-deploy "nix develop git+file:///home/me/here/mize#buildShell" tmux send-keys -t ppc-deploy "cargo build --manifest-path /home/me/here/mize/packages/mize/Cargo.toml" Enter tmux send-keys -t ppc-deploy "cargo build --features desktop --manifest-path /home/me/here/mize/packages/ppc/Cargo.toml" Enter tmux send-keys -t ppc-deploy "systemctl --user restart mize" Enter else echo "using existing session..." tmux send-keys -t ppc-deploy "cargo build --manifest-path /home/me/here/mize/packages/mize/Cargo.toml" Enter tmux send-keys -t ppc-deploy "cargo build --features desktop --manifest-path /home/me/here/mize/packages/ppc/Cargo.toml" Enter tmux send-keys -t ppc-deploy "systemctl --user restart mize" Enter fi EOF } function deploy_lush { echo "c2vi: Deploying to lush..." # Copy files to lush rsync -r -u -v -a --delete --include=".git/" --include=".git/**" --mkpath $RSYNC_EXCLUDES $MIZE_SRC lush:here # compile ssh lush << EOF if ! tmux has-session -t ppc-deploy 2>/dev/null; then echo "Created new tmux session...." tmux new-session -d -s ppc-deploy "nix develop git+file:///home/me/here/mize#buildShell" tmux send-keys -t ppc-deploy "cargo build --manifest-path /home/me/here/mize/packages/mize/Cargo.toml" Enter tmux send-keys -t ppc-deploy "cargo build --features desktop --manifest-path /home/me/here/mize/packages/ppc/Cargo.toml" Enter tmux send-keys -t ppc-deploy "systemctl --user restart mize" Enter else echo "using existing session..." tmux send-keys -t ppc-deploy "cargo build --manifest-path /home/me/here/mize/packages/mize/Cargo.toml" Enter tmux send-keys -t ppc-deploy "cargo build --features desktop --manifest-path /home/me/here/mize/packages/ppc/Cargo.toml" Enter tmux send-keys -t ppc-deploy "systemctl --user restart mize" Enter fi EOF } function deploy_ppc_website { echo "c2vi: Deploying ppc website to fes" # compile cargo build --release --no-default-features --features server --manifest-path $MIZE_SRC/packages/ppc/Cargo.toml ssh fes rm /home/server/here/ppc # upload scp $MIZE_SRC/target/release/ppc fes:here # restart service ssh fe "sudo systemctl restart ppc" } function deploy_main_obsidian { echo "c2vi: Deploying to local main obsidian vault..." deno run --config $MIZE_SRC/packages/ppc/platform/obsidian/deno.json build cp -r $MIZE_SRC/packages/ppc/platform/obsidian/dist/* ~/work/things/.obsidian/plugins/ppc/ } main "$@"