forked from zhangxinrun/fubar
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile
148 lines (120 loc) · 4.33 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
.SILENT: state stop acl-all acl-get acl-set acl-del account-all account-get account-set account-del
###############################################################################
## Make parameters
###############################################################################
node=fubar
master=undefined
mqtt_port=1883
mqtts_port=undefined
http_port=undefined
cookie=sharedsecretamongnodesofafubarcluster_youneedtochangethisforsecurity
## Static values
APP=fubar
# Compile source codes only.
compile:
./rebar compile
LOGDIR=log
DATADIR=priv/data
# Start a daemon
# Params: node (default fubar), master (in node@host format),
# mqtt_port (default 1883), mqtts_port, http_port, cookie
run: compile
mkdir -p $(DATADIR)
mkdir -p $(LOGDIR)
erl -pa ebin deps/*/ebin +A 100 +K true +P 10000000 +W w +swt low +Mummc 99999 \
-sname $(node) -setcookie $(cookie) -detached -config $(APP) \
-mnesia dir '"$(DATADIR)/$(node)"' \
-s $(APP) \
-env MQTT_PORT $(mqtt_port) -env MQTTS_PORT $(mqtts_port) -env HTTP_PORT $(http_port) \
-env FUBAR_MASTER $(master)
# Stop a daemon
# Params: node (default fubar), cookie
stop:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` stop
# Show a daemon state
# Params: node (default fubar), cookie
state:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` state
# Show all ACL
# Params: node (default fubar), cookie
acl-all:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` acl all
ip=127.0.0.1
allow=true
# Show an ACL
# Params: node (default fubar), ip (default 127.0.0.1), cookie
acl-get:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` acl get $(ip)
# Update an ACL
# Params: node (default fubar), ip (default 127.0.0.1), allow (default true), cookie
acl-set:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` acl set $(ip) $(allow)
# Delete an ACL
# Params: node (default fubar), ip (default 127.0.0.1), cookie
acl-del:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` acl del $(ip)
# Show all accounts
# Params: node (default fubar), cookie
account-all:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` account all
username=undefined
password=undefined
# Show an account
# Params: node (default fubar), username, cookie
account-get:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` account get $(username)
# Update an account
# Params: node (default fubar), username, password, cookie
account-set:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` account set $(username) $(password)
# Delete an account
# Params: node (default fubar), username, cookie
account-del:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` account del $(username)
client_id=undefined
on=true
# Trace on/off
trace:
erl -pa ebin deps/*/ebin -noinput -hidden -setcookie $(cookie) -sname $(node)_control \
-s fubar_control call $(node)@`hostname -s` trace $(client_id) $(on)
# Connect to the shell of a daemon
# Params: node (default fubar), cookie
debug:
erl -pa $(CURDIR)/ebin $(CURDIR)/deps/*/ebin -remsh $(node)@`hostname -s` \
-sname $(node)_debug -setcookie $(cookie)
# Perform unit tests.
check: compile
./rebar eunit skip_deps=true
# Perform common tests.
test: compile
./rebar ct suites=$(APP) skip_deps=true
# Clear all the binaries and dependencies. The data remains intact.
clean: delete-deps
rm -rf *.dump
rm -rf test/*.beam
./rebar clean
# Clear all data.
reset:
rm -rf priv/data/$(node)
# Generate documents.
doc:
./rebar doc
# Update dependencies.
deps: get-deps
./rebar update-deps
# Download dependencies.
get-deps:
./rebar get-deps
# Delete dependencies.
delete-deps:
./rebar delete-deps