start: @nix-shell nix/tools.nix --command "tmuxinator local" stop: @tmux kill-session -t sharedCost clean: clean-server clean-client build: build-server build-client cp-client # Client # ------ clean-client: @rm -rf dist-client build-client: @nix-shell -A shells.ghcjs --run "make build-client-inside" build-client-inside: @cabal --project-file=cabal-client.project --builddir=dist-client new-build all cp-client: @cp dist-client/build/x86_64-linux/ghcjs-*/client-*/*/client/build/client/client.jsexe/all.js public/javascript/main.js watch-client: @nix-shell -A shells.ghcjs --run "nodemon --delay 0.2 --watch client --watch common --ext hs --exec '(tput reset && make build-client-inside && make cp-client) || true'" # Server # ------ clean-server: @rm -rf dist-server build-server: @nix-shell -A shells.ghc --run "make build-server-inside" build-server-inside: @cabal --project-file=cabal-server.project --builddir=dist-server new-build all run-server: @(fuser -k 3000/tcp &>/dev/null) || : @./dist-server/build/x86_64-linux/ghc-*/server-0.0.1/*/server/build/server/server watch-server: @nix-shell -A shells.ghc --run "nodemon --delay 0.2 --watch ./server --watch ./common --ext hs --exec '(tput reset && make build-server-inside && make run-server) || :'" # Deploy # ------ deploy: @make clean @nix-build -o result-server -A ghc.server @nix-build -o result-client -A ghcjs.client @nix-shell -p closurecompiler --command 'closure-compiler result-client/bin/client.jsexe/all.js --js_output_file public/javascript/main.js' @rm -rf bundle @mkdir bundle @cp application.conf bundle @cp -r public bundle @cp result-server/bin/server bundle @rsync -avzhr bundle/ guyonvarch.me:servers/shared-cost @rm -rf bundle