blob: 5097b56d124947facd7c5ba4d4204aea1dc931e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
start:
@nix-shell 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
|