-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
90 lines (75 loc) · 2.3 KB
/
makefile
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
include .env
export
.PHONY: check-env
check-env:
@if [ ! -f .env ]; then \
echo ".env file not found"; \
exit 1; \
fi
.PHONY: check-anvil
check-anvil:
@while ! [ -z "$$(shell docker logs apps-anvil-1 2>&1 | grep -o "Listening on")" ]; do \
echo "Waiting for Anvil to start..."; \
sleep 5; \
done
@echo "Anvil is ready"
.PHONY: check-naming-service
check-naming-service:
@while ! [ -z "$$(shell docker logs apps-naming-service-1 2>&1 | grep -o "Server running")" ]; do \
echo "Waiting for Naming Service to start..."; \
sleep 5; \
done
@echo "Naming Service is ready"
.PHONY: check-naming-service-db
check-naming-service-db:
@while ! [ -z "$$(shell docker logs apps-naming-service-db-1 2>&1 | grep -o "database system is ready to accept connections")" ]; do \
echo "Waiting for Naming Service DB to start..."; \
sleep 5; \
done
@echo "Naming Service DB is ready"
.PHONY: notifier
notifier:
@osascript -e 'display notification "🎉 Project is ready 🎉" with title "Live Web Abstraction Notifier" sound name "Glass"'
.PHONY: forge-update
forge-update:
@foundryup
.PHONY: forge-install
forge-install:
@cd contracts && forge install
.PHONY: deploy-contracts-manually
deploy-contracts-manually: check-env
@cd contracts && forge build
@docker kill apps-anvil-1 apps-mock-anvil-explorer-1
@cd apps && docker-compose up -d anvil mock-anvil-explorer --wait
@make check-anvil
@cd contracts && forge script script/Deploy.s.sol --rpc-url ${RPC} --broadcast --private-key ${DEPLOYER_SK}
@cd apps && docker-compose up -d bundler --force-recreate --wait
@make notifier
.PHONY: start-docker
start-docker: check-env
@cd apps && docker-compose up -d --wait
@make notifier
.PHONY: start
start: check-env
@make forge-update
@make forge-install
@make start-docker
.PHONY: stop
stop:
@cd apps && docker-compose kill -s SIGINT && docker-compose down
.PHONY: reset-db
reset-db:
@docker exec -it apps-naming-service-1 /bin/bash -c "npx prisma db push --force-reset"
.PHONY: fresh
fresh: check-env
@cd apps && docker-compose up -d --wait --force-recreate
@make check-anvil
@make check-naming-service-db
@make reset-db
@make notifier
.PHONY: redeploy-contracts
redeploy-contracts: check-env
@cd contracts && forge build
@docker kill apps-anvil-1 apps-mock-anvil-explorer-1
@make start-docker
@make notifier