auser-poolparty 0.2.45 → 0.2.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. data/Manifest.txt +2 -145
  2. data/Rakefile +6 -1
  3. data/bin/cloud +2 -1
  4. data/bin/pool +2 -1
  5. data/bin/server-build-messenger +2 -1
  6. data/bin/server-start-node +5 -8
  7. data/config/hoe.rb +4 -2
  8. data/lib/erlang/messenger/Rakefile +6 -0
  9. data/lib/erlang/messenger/include/defines.hrl +7 -1
  10. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  11. data/lib/erlang/messenger/pm_master_rel-0.1.script +7 -3
  12. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  13. data/lib/erlang/messenger/pm_node_rel-0.1.script +7 -3
  14. data/lib/erlang/messenger/src/pm_master.erl +104 -20
  15. data/lib/erlang/messenger/src/pm_node.erl +51 -30
  16. data/lib/erlang/messenger/src/pm_node_supervisor.erl +7 -7
  17. data/lib/erlang/messenger/src/utils.erl +3 -1
  18. data/lib/erlang/messenger/useful_snippets +2 -2
  19. data/lib/poolparty/base_packages/haproxy.rb +1 -3
  20. data/lib/poolparty/base_packages/poolparty.rb +4 -3
  21. data/lib/poolparty/helpers/optioner.rb +27 -25
  22. data/lib/poolparty/helpers/provisioners/master.rb +1 -0
  23. data/lib/poolparty/helpers/provisioners/slave.rb +9 -1
  24. data/lib/poolparty/monitors/base_monitor.rb +1 -1
  25. data/lib/poolparty/monitors/monitors/memory_monitor.rb +29 -2
  26. data/lib/poolparty/monitors/monitors/web_monitor.rb +18 -0
  27. data/lib/poolparty/net/messenger.rb +5 -2
  28. data/lib/poolparty/net/remoter_base.rb +15 -1
  29. data/lib/poolparty/plugins/git.rb +2 -2
  30. data/lib/poolparty/pool/loggable.rb +1 -3
  31. data/lib/poolparty/pool/resources/sshkey.rb +1 -1
  32. data/lib/poolparty/version.rb +1 -1
  33. data/lib/poolparty.rb +7 -0
  34. data/lib/poolpartycl.rb +4 -0
  35. data/poolparty.gemspec +6 -149
  36. data/spec/poolparty/helpers/binary_spec.rb +2 -2
  37. data/spec/poolparty/helpers/optioner_spec.rb +1 -4
  38. data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +47 -0
  39. data/spec/poolparty/net/remoter_base_spec.rb +1 -1
  40. data/spec/poolparty/pool/base_spec.rb +3 -4
  41. data/tasks/deployment.rake +6 -2
  42. metadata +6 -149
  43. data/lib/erlang/cloudpanel/EMakefile +0 -1
  44. data/lib/erlang/cloudpanel/Makefile +0 -8
  45. data/lib/erlang/cloudpanel/cloudpanel.rb +0 -15
  46. data/lib/erlang/cloudpanel/doc/cloudpanel.html +0 -39
  47. data/lib/erlang/cloudpanel/doc/cloudpanel_app.html +0 -40
  48. data/lib/erlang/cloudpanel/doc/cloudpanel_deps.html +0 -89
  49. data/lib/erlang/cloudpanel/doc/cloudpanel_sup.html +0 -46
  50. data/lib/erlang/cloudpanel/doc/cloudpanel_web.html +0 -45
  51. data/lib/erlang/cloudpanel/doc/string.html +0 -222
  52. data/lib/erlang/cloudpanel/ebin/cloudpanel.app +0 -14
  53. data/lib/erlang/cloudpanel/priv/www/images/bg_content.gif +0 -0
  54. data/lib/erlang/cloudpanel/priv/www/index.html +0 -35
  55. data/lib/erlang/cloudpanel/priv/www/javascripts/jquery.js +0 -32
  56. data/lib/erlang/cloudpanel/priv/www/javascripts/site.js +0 -2
  57. data/lib/erlang/cloudpanel/priv/www/pages/index.html +0 -1
  58. data/lib/erlang/cloudpanel/priv/www/pages/tail.html +0 -1
  59. data/lib/erlang/cloudpanel/priv/www/partials/error.html +0 -3
  60. data/lib/erlang/cloudpanel/priv/www/partials/footer.html +0 -6
  61. data/lib/erlang/cloudpanel/priv/www/partials/header.html +0 -13
  62. data/lib/erlang/cloudpanel/priv/www/partials/menu.html +0 -13
  63. data/lib/erlang/cloudpanel/priv/www/stylesheets/application.css +0 -48
  64. data/lib/erlang/cloudpanel/priv/www/stylesheets/classes.css +0 -2
  65. data/lib/erlang/cloudpanel/priv/www/stylesheets/colors.css +0 -8
  66. data/lib/erlang/cloudpanel/priv/www/stylesheets/nav.css +0 -18
  67. data/lib/erlang/cloudpanel/src/Makefile +0 -9
  68. data/lib/erlang/cloudpanel/src/cloudpanel.app +0 -14
  69. data/lib/erlang/cloudpanel/src/cloudpanel.erl +0 -30
  70. data/lib/erlang/cloudpanel/src/cloudpanel.hrl +0 -2
  71. data/lib/erlang/cloudpanel/src/cloudpanel_app.erl +0 -22
  72. data/lib/erlang/cloudpanel/src/cloudpanel_deps.erl +0 -84
  73. data/lib/erlang/cloudpanel/src/cloudpanel_sup.erl +0 -54
  74. data/lib/erlang/cloudpanel/src/cloudpanel_web.erl +0 -39
  75. data/lib/erlang/cloudpanel/src/string.erl +0 -387
  76. data/lib/erlang/cloudpanel/src/tail_log.erl +0 -66
  77. data/lib/erlang/cloudpanel/src/tailor.erl +0 -31
  78. data/lib/erlang/cloudpanel/src/utils.erl +0 -9
  79. data/lib/erlang/cloudpanel/src/views.erl +0 -44
  80. data/lib/erlang/cloudpanel/start-dev.sh +0 -3
  81. data/lib/erlang/cloudpanel/start.sh +0 -3
  82. data/lib/erlang/cloudpanel/support/include.mk +0 -46
  83. data/lib/erlang/cloudpanel/yaws.conf +0 -20
  84. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  85. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  86. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  87. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  88. data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
  89. data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
  90. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  91. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  92. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  93. data/lib/erlang/messenger/pm_master.beam +0 -0
  94. data/lib/erlang/messenger/pm_node.beam +0 -0
@@ -1,387 +0,0 @@
1
- %% ``The contents of this file are subject to the Erlang Public License,
2
- %% Version 1.1, (the "License"); you may not use this file except in
3
- %% compliance with the License. You should have received a copy of the
4
- %% Erlang Public License along with this software. If not, it can be
5
- %% retrieved via the world wide web at http://www.erlang.org/.
6
- %%
7
- %% Software distributed under the License is distributed on an "AS IS"
8
- %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
9
- %% the License for the specific language governing rights and limitations
10
- %% under the License.
11
- %%
12
- %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.
13
- %% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
14
- %% AB. All Rights Reserved.''
15
- %%
16
- %% $Id$
17
- %%
18
- -module(string).
19
-
20
- -export([len/1,equal/2,concat/2,chr/2,rchr/2,str/2,rstr/2,
21
- span/2,cspan/2,substr/2,substr/3,tokens/2,chars/2,chars/3]).
22
- -export([copies/2,words/1,words/2,strip/1,strip/2,strip/3,
23
- sub_word/2,sub_word/3,left/2,left/3,right/2,right/3,
24
- sub_string/2,sub_string/3,centre/2,centre/3, join/2]).
25
- -export([to_upper/1, to_lower/1]).
26
-
27
- -import(lists,[reverse/1,member/2]).
28
-
29
- %%---------------------------------------------------------------------------
30
-
31
- -type(direction() :: 'left' | 'right' | 'both').
32
-
33
- %%---------------------------------------------------------------------------
34
-
35
- %% Robert's bit
36
-
37
- %% len(String)
38
- %% Return the length of a string.
39
-
40
- -spec(len/1 :: (string()) -> non_neg_integer()).
41
-
42
- len(S) -> length(S).
43
-
44
- %% equal(String1, String2)
45
- %% Test if 2 strings are equal.
46
-
47
- -spec(equal/2 :: (string(), string()) -> bool()).
48
-
49
- equal(S, S) -> true;
50
- equal(_, _) -> false.
51
-
52
- %% concat(String1, String2)
53
- %% Concatenate 2 strings.
54
-
55
- -spec(concat/2 :: (string(), string()) -> string()).
56
-
57
- concat(S1, S2) -> S1 ++ S2.
58
-
59
- %% chr(String, Char)
60
- %% rchr(String, Char)
61
- %% Return the first/last index of the character in a string.
62
-
63
- -spec(chr/2 :: (string(), char()) -> non_neg_integer()).
64
-
65
- chr(S, C) when is_integer(C) -> chr(S, C, 1).
66
-
67
- chr([C|_Cs], C, I) -> I;
68
- chr([_|Cs], C, I) -> chr(Cs, C, I+1);
69
- chr([], _C, _I) -> 0.
70
-
71
- -spec(rchr/2 :: (string(), char()) -> non_neg_integer()).
72
-
73
- rchr(S, C) when is_integer(C) -> rchr(S, C, 1, 0).
74
-
75
- rchr([C|Cs], C, I, _L) -> %Found one, now find next!
76
- rchr(Cs, C, I+1, I);
77
- rchr([_|Cs], C, I, L) ->
78
- rchr(Cs, C, I+1, L);
79
- rchr([], _C, _I, L) -> L.
80
-
81
- %% str(String, SubString)
82
- %% rstr(String, SubString)
83
- %% index(String, SubString)
84
- %% Return the first/last index of the sub-string in a string.
85
- %% index/2 is kept for backwards compatibility.
86
-
87
- -spec(str/2 :: (string(), string()) -> non_neg_integer()).
88
-
89
- str(S, Sub) when is_list(Sub) -> str(S, Sub, 1).
90
-
91
- str([C|S], [C|Sub], I) ->
92
- case prefix(Sub, S) of
93
- true -> I;
94
- false -> str(S, [C|Sub], I+1)
95
- end;
96
- str([_|S], Sub, I) -> str(S, Sub, I+1);
97
- str([], _Sub, _I) -> 0.
98
-
99
- -spec(rstr/2 :: (string(), string()) -> non_neg_integer()).
100
-
101
- rstr(S, Sub) when is_list(Sub) -> rstr(S, Sub, 1, 0).
102
-
103
- rstr([C|S], [C|Sub], I, L) ->
104
- case prefix(Sub, S) of
105
- true -> rstr(S, [C|Sub], I+1, I);
106
- false -> rstr(S, [C|Sub], I+1, L)
107
- end;
108
- rstr([_|S], Sub, I, L) -> rstr(S, Sub, I+1, L);
109
- rstr([], _Sub, _I, L) -> L.
110
-
111
- prefix([C|Pre], [C|String]) -> prefix(Pre, String);
112
- prefix([], String) when is_list(String) -> true;
113
- prefix(Pre, String) when is_list(Pre), is_list(String) -> false.
114
-
115
- %% span(String, Chars) -> Length.
116
- %% cspan(String, Chars) -> Length.
117
-
118
- -spec(span/2 :: (string(), string()) -> non_neg_integer()).
119
-
120
- span(S, Cs) when is_list(Cs) -> span(S, Cs, 0).
121
-
122
- span([C|S], Cs, I) ->
123
- case member(C, Cs) of
124
- true -> span(S, Cs, I+1);
125
- false -> I
126
- end;
127
- span([], _Cs, I) -> I.
128
-
129
- -spec(cspan/2 :: (string(), string()) -> non_neg_integer()).
130
-
131
- cspan(S, Cs) when is_list(Cs) -> cspan(S, Cs, 0).
132
-
133
- cspan([C|S], Cs, I) ->
134
- case member(C, Cs) of
135
- true -> I;
136
- false -> cspan(S, Cs, I+1)
137
- end;
138
- cspan([], _Cs, I) -> I.
139
-
140
- %% substr(String, Start)
141
- %% substr(String, Start, Length)
142
- %% Extract a sub-string from String.
143
-
144
- -spec(substr/2 :: (string(), pos_integer()) -> string()).
145
-
146
- substr(String, 1) when is_list(String) ->
147
- String;
148
- substr(String, S) when is_integer(S), S > 1 ->
149
- substr2(String, S).
150
-
151
- -spec(substr/3 :: (string(), pos_integer(), non_neg_integer()) -> string()).
152
-
153
- substr(String, S, L) when is_integer(S), S >= 1, is_integer(L), L >= 0 ->
154
- substr1(substr2(String, S), L).
155
-
156
- substr1([C|String], L) when L > 0 -> [C|substr1(String, L-1)];
157
- substr1(String, _L) when is_list(String) -> []. %Be nice!
158
-
159
- substr2(String, 1) when is_list(String) -> String;
160
- substr2([_|String], S) -> substr2(String, S-1).
161
-
162
- %% tokens(String, Seperators).
163
- %% Return a list of tokens seperated by characters in Seperators.
164
-
165
- -spec(tokens/2 :: (string(), string()) -> [[char(),...]]).
166
-
167
- tokens(S, Seps) ->
168
- tokens1(S, Seps, []).
169
-
170
- tokens1([C|S], Seps, Toks) ->
171
- case member(C, Seps) of
172
- true -> tokens1(S, Seps, Toks);
173
- false -> tokens2(S, Seps, Toks, [C])
174
- end;
175
- tokens1([], _Seps, Toks) ->
176
- reverse(Toks).
177
-
178
- tokens2([C|S], Seps, Toks, Cs) ->
179
- case member(C, Seps) of
180
- true -> tokens1(S, Seps, [reverse(Cs)|Toks]);
181
- false -> tokens2(S, Seps, Toks, [C|Cs])
182
- end;
183
- tokens2([], _Seps, Toks, Cs) ->
184
- reverse([reverse(Cs)|Toks]).
185
-
186
- -spec(chars/2 :: (char(), non_neg_integer()) -> string()).
187
-
188
- chars(C, N) -> chars(C, N, []).
189
-
190
- -spec(chars/3 :: (char(), non_neg_integer(), string()) -> string()).
191
-
192
- chars(C, N, Tail) when N > 0 ->
193
- chars(C, N-1, [C|Tail]);
194
- chars(C, 0, Tail) when is_integer(C) ->
195
- Tail.
196
-
197
- %% Torbjörn's bit.
198
-
199
- %%% COPIES %%%
200
-
201
- copies(CharList, Num) when is_list(CharList), Num >= 0 ->
202
- copies(CharList, Num, []).
203
-
204
- copies(_CharList, 0, R) ->
205
- R;
206
- copies(CharList, Num, R) ->
207
- copies(CharList, Num-1, CharList++R).
208
-
209
- %%% WORDS %%%
210
-
211
- -spec(words/1 :: (string()) -> pos_integer()).
212
-
213
- words(String) -> words(String, $\s).
214
-
215
- -spec(words/2 :: (string(), char()) -> pos_integer()).
216
-
217
- words(String, Char) when is_integer(Char) ->
218
- w_count(strip(String, both, Char), Char, 0).
219
-
220
- w_count([], _, Num) -> Num+1;
221
- w_count([H|T], H, Num) -> w_count(strip(T, left, H), H, Num+1);
222
- w_count([_H|T], Char, Num) -> w_count(T, Char, Num).
223
-
224
- %%% SUB_WORDS %%%
225
-
226
- -spec(sub_word/2 :: (string(), integer()) -> string()).
227
-
228
- sub_word(String, Index) -> sub_word(String, Index, $\s).
229
-
230
- -spec(sub_word/3 :: (string(), integer(), char()) -> string()).
231
-
232
- sub_word(String, Index, Char) when is_integer(Index), is_integer(Char) ->
233
- case words(String, Char) of
234
- Num when Num < Index ->
235
- [];
236
- _Num ->
237
- s_word(strip(String, left, Char), Index, Char, 1, [])
238
- end.
239
-
240
- s_word([], _, _, _,Res) -> reverse(Res);
241
- s_word([Char|_],Index,Char,Index,Res) -> reverse(Res);
242
- s_word([H|T],Index,Char,Index,Res) -> s_word(T,Index,Char,Index,[H|Res]);
243
- s_word([Char|T],Stop,Char,Index,Res) when Index < Stop ->
244
- s_word(strip(T,left,Char),Stop,Char,Index+1,Res);
245
- s_word([_|T],Stop,Char,Index,Res) when Index < Stop ->
246
- s_word(T,Stop,Char,Index,Res).
247
-
248
- %%% STRIP %%%
249
-
250
- -spec(strip/1 :: (string()) -> string()).
251
-
252
- strip(String) -> strip(String, both).
253
-
254
- -spec(strip/2 :: (string(), direction()) -> string()).
255
-
256
- strip(String, left) -> strip_left(String, $\s);
257
- strip(String, right) -> strip_right(String, $\s);
258
- strip(String, both) ->
259
- strip_right(strip_left(String, $\s), $\s).
260
-
261
- -spec(strip/3 :: (string(), direction(), char()) -> string()).
262
-
263
- strip(String, right, Char) -> strip_right(String, Char);
264
- strip(String, left, Char) -> strip_left(String, Char);
265
- strip(String, both, Char) ->
266
- strip_right(strip_left(String, Char), Char).
267
-
268
- strip_left([Sc|S], Sc) ->
269
- strip_left(S, Sc);
270
- strip_left([_|_]=S, Sc) when is_integer(Sc) -> S;
271
- strip_left([], Sc) when is_integer(Sc) -> [].
272
-
273
- strip_right([Sc|S], Sc) ->
274
- case strip_right(S, Sc) of
275
- [] -> [];
276
- T -> [Sc|T]
277
- end;
278
- strip_right([C|S], Sc) ->
279
- [C|strip_right(S, Sc)];
280
- strip_right([], Sc) when is_integer(Sc) ->
281
- [].
282
-
283
- %%% LEFT %%%
284
-
285
- -spec(left/2 :: (string(), non_neg_integer()) -> string()).
286
-
287
- left(String, Len) when is_integer(Len) -> left(String, Len, $\s).
288
-
289
- -spec(left/3 :: (string(), non_neg_integer(), char()) -> string()).
290
-
291
- left(String, Len, Char) when is_integer(Char) ->
292
- Slen = length(String),
293
- if
294
- Slen > Len -> substr(String, 1, Len);
295
- Slen < Len -> l_pad(String, Len-Slen, Char);
296
- Slen =:= Len -> String
297
- end.
298
-
299
- l_pad(String, Num, Char) -> String ++ chars(Char, Num).
300
-
301
- %%% RIGHT %%%
302
-
303
- -spec(right/2 :: (string(), non_neg_integer()) -> string()).
304
-
305
- right(String, Len) when is_integer(Len) -> right(String, Len, $\s).
306
-
307
- -spec(right/3 :: (string(), non_neg_integer(), char()) -> string()).
308
-
309
- right(String, Len, Char) when is_integer(Char) ->
310
- Slen = length(String),
311
- if
312
- Slen > Len -> substr(String, Slen-Len+1);
313
- Slen < Len -> r_pad(String, Len-Slen, Char);
314
- Slen =:= Len -> String
315
- end.
316
-
317
- r_pad(String, Num, Char) -> chars(Char, Num, String).
318
-
319
- %%% CENTRE %%%
320
-
321
- -spec(centre/2 :: (string(), non_neg_integer()) -> string()).
322
-
323
- centre(String, Len) when is_integer(Len) -> centre(String, Len, $\s).
324
-
325
- -spec(centre/3 :: (string(), non_neg_integer(), char()) -> string()).
326
-
327
- centre(String, 0, Char) when is_list(String), is_integer(Char) ->
328
- []; % Strange cases to centre string
329
- centre(String, Len, Char) when is_integer(Char) ->
330
- Slen = length(String),
331
- if
332
- Slen > Len -> substr(String, (Slen-Len) div 2 + 1, Len);
333
- Slen < Len ->
334
- N = (Len-Slen) div 2,
335
- r_pad(l_pad(String, Len-(Slen+N), Char), N, Char);
336
- Slen =:= Len -> String
337
- end.
338
-
339
- %%% SUB_STRING %%%
340
-
341
- sub_string(String, Start) -> substr(String, Start).
342
-
343
- sub_string(String, Start, Stop) -> substr(String, Start, Stop - Start + 1).
344
-
345
- %% ISO/IEC 8859-1 (latin1) letters are converted, others are ignored
346
- %%
347
-
348
- to_lower_char(C) when is_integer(C), C >= $A, C =< $Z ->
349
- C + 32;
350
- to_lower_char(C) when is_integer(C), C >= 16#C1, C =< 16#D6 ->
351
- C + 32;
352
- to_lower_char(C) when is_integer(C), C >= 16#D8, C =< 16#DE ->
353
- C + 32;
354
- to_lower_char(C) ->
355
- C.
356
-
357
- to_upper_char(C) when is_integer(C), C >= $a, C =< $z ->
358
- C - 32;
359
- to_upper_char(C) when is_integer(C), C >= 16#E1, C =< 16#F6 ->
360
- C - 32;
361
- to_upper_char(C) when is_integer(C), C >= 16#F8, C =< 16#FE ->
362
- C - 32;
363
- to_upper_char(C) ->
364
- C.
365
-
366
- -spec(to_lower/1 :: (string()) -> string()
367
- ; (char()) -> char()).
368
-
369
- to_lower(S) when is_list(S) ->
370
- [to_lower_char(C) || C <- S];
371
- to_lower(C) when is_integer(C) ->
372
- to_lower_char(C).
373
-
374
- -spec(to_upper/1 :: (string()) -> string()
375
- ; (char()) -> char()).
376
-
377
- to_upper(S) when is_list(S) ->
378
- [to_upper_char(C) || C <- S];
379
- to_upper(C) when is_integer(C) ->
380
- to_upper_char(C).
381
-
382
- -spec(join/2 :: ([string()], string()) -> string()).
383
-
384
- join([], Sep) when is_list(Sep) ->
385
- [];
386
- join([H|T], Sep) ->
387
- H ++ lists:append([Sep ++ X || X <- T]).
@@ -1,66 +0,0 @@
1
- -module (tail_log).
2
- -compile(export_all).
3
- -include ("cloudpanel.hrl").
4
-
5
- start(File) ->
6
- start(File, fun display/1, "/var/log").
7
-
8
- start(File, Callback) ->
9
- Dir = "/var/log",
10
- start(File, Callback, Dir).
11
-
12
- start(File, Callback, Dir) ->
13
- spawn_link(?MODULE, init, [File, Callback, Dir]).
14
-
15
- stop(Pid) ->
16
- Pid ! stop.
17
-
18
- init(File, Callback, Dir) ->
19
- Cmd = "/usr/bin/tail -f "++ Dir ++ "/" ++ File,
20
- Port = open_port({spawn, Cmd}, [ {cd, Dir}, stderr_to_stdout, {line, 256}, exit_status, binary]),
21
- tail_loop(Port, Callback).
22
-
23
- snap(Pid) ->
24
- Pid ! {snap, self() },
25
- receive
26
- {Port, Callback} ->
27
- display(element(2, {Port, Callback}));
28
- Any ->
29
- io:format("Received: ~p~n", [Any]),
30
- Any
31
- after ?TIMEOUT ->
32
- "Timeout error"
33
- end.
34
-
35
- tail_loop(Port, Callback) ->
36
- receive
37
- {Port, {data, {eol, Bin}}} ->
38
- Callback(Bin),
39
- tail_loop(Port, Callback);
40
- {Port, {data, Bin}} ->
41
- Callback(Bin),
42
- tail_loop(Port, Callback);
43
- {snap, Who} ->
44
- Who ! {Port, Callback},
45
- tail_loop(Port, Callback);
46
- stop ->
47
- port_close(Port),
48
- {ok, stop};
49
- {From, post, Mess} ->
50
- io:format("Received post message: ~p ~p~n", [From, Mess]),
51
- From ! {From, post, Mess};
52
- {From, subscribe} ->
53
- io:format("Received subscribe message from ~p~n", [From]),
54
- From ! {From, subscribe};
55
- {_, {exit_status, Num}} ->
56
- io:format("Received error messate: ~p~n", [Num]),
57
- port_close(Port),
58
- {ok, stop};
59
- Any ->
60
- io:format("Received unknown Message: ~p~n", [Any]),
61
- tail_loop(Port, Callback)
62
- end.
63
-
64
- display(Bin) ->
65
- Content = iolist_to_binary(Bin),
66
- utils:subst("[INFO] ~s~n", [Content]).
@@ -1,31 +0,0 @@
1
- -module (tailor).
2
- -compile(export_all).
3
- -import (mochijson2).
4
- -include ("cloudpanel.hrl").
5
-
6
- go(Qs) ->
7
- Body = case Qs of
8
- "log" ->
9
- latest_log(Qs);
10
- _ ->
11
- index(Qs)
12
- end,
13
- io:format("Body from go: ~p~n", [Body]),
14
- Body.
15
-
16
- index(Qs) ->
17
- File = proplists:get_value("log", Qs),
18
- % Tell the system that we are watching the logs
19
- self() ! {self(), subscribe},
20
- % Wait for messages
21
- Dir = "/var/log",
22
- % Callback = fun(X) -> displayLogLine(X, Log) end,
23
- Cmd = "/usr/bin/tail -n 10 "++ Dir ++ "/" ++ File,
24
- Body = os:cmd(Cmd),
25
- string:join(string:tokens(Body, "\n"), "\n").
26
-
27
- latest_log(Qs) ->
28
- ok.
29
-
30
- start_logger(File) ->
31
- ok.
@@ -1,9 +0,0 @@
1
- -module (utils).
2
- -compile(export_all).
3
-
4
-
5
- subst(Template, Values) when is_list(Values) ->
6
- list_to_binary(lists:flatten(io_lib:fwrite(Template, Values))).
7
-
8
- get_option(Option, Options) ->
9
- {proplists:get_value(Option, Options), proplists:delete(Option, Options)}.
@@ -1,44 +0,0 @@
1
- -module (views).
2
- -compile(export_all).
3
-
4
- wrap_page(Name) ->
5
- AssetMatch = "(.*)([css|js])+",
6
- case regexp:first_match(Name, AssetMatch) of
7
- {match,_,_} ->
8
- erlang:binary_to_list(read_asset(Name));
9
- nomatch ->
10
- wrap(read_page(Name));
11
- {_, _} ->
12
- io:format("Error: ~p~n", [Name]),
13
- "error"
14
- end.
15
-
16
- json(Content) ->
17
- mochijson2:encode(Content).
18
-
19
- wrap(Content) ->
20
- Header = read_partial("header"),
21
- Menu = read_partial("menu"),
22
- Footer = read_partial("footer"),
23
- Out = erlang:list_to_binary([Header, Menu, protect(Content), Footer]),
24
- erlang:binary_to_list(Out).
25
-
26
- read_page(Name) ->
27
- {_, Cont} = file:read_file("priv/www/pages/"++Name++".html"),
28
- protect(Cont).
29
- read_partial(Name) ->
30
- {_, Cont} = file:read_file("priv/www/partials/"++Name++".html"),
31
- protect(Cont).
32
- read_asset(Name) ->
33
- {_, Cont} = file:read_file("priv/www/"++Name),
34
- protect(Cont).
35
-
36
- protect(Content) ->
37
- case Content of
38
- enoent ->
39
- read_partial("error");
40
- [] ->
41
- read_partial("error");
42
- _ ->
43
- Content
44
- end.
@@ -1,3 +0,0 @@
1
- #!/bin/sh
2
- cd `dirname $0`
3
- exec erl -pa $PWD/ebin $PWD/deps/*/ebin -boot start_sasl -s reloader -s cloudpanel
@@ -1,3 +0,0 @@
1
- #!/bin/sh
2
- cd `dirname $0`
3
- exec erl -pa $PWD/ebin $PWD/deps/*/ebin -boot start_sasl -s cloudpanel
@@ -1,46 +0,0 @@
1
- ## -*- makefile -*-
2
-
3
- ######################################################################
4
- ## Erlang
5
-
6
- ERL := erl
7
- ERLC := $(ERL)c
8
-
9
- INCLUDE_DIRS := ../include $(wildcard ../deps/*/include)
10
- EBIN_DIRS := $(wildcard ../deps/*/ebin)
11
- ERLC_FLAGS := -W $(INCLUDE_DIRS:../%=-I ../%) $(EBIN_DIRS:%=-pa %)
12
-
13
- ifndef no_debug_info
14
- ERLC_FLAGS += +debug_info
15
- endif
16
-
17
- ifdef debug
18
- ERLC_FLAGS += -Ddebug
19
- endif
20
-
21
- EBIN_DIR := ../ebin
22
- DOC_DIR := ../doc
23
- EMULATOR := beam
24
-
25
- ERL_SOURCES := $(wildcard *.erl)
26
- ERL_HEADERS := $(wildcard *.hrl) $(wildcard ../include/*.hrl)
27
- ERL_OBJECTS := $(ERL_SOURCES:%.erl=$(EBIN_DIR)/%.$(EMULATOR))
28
- ERL_DOCUMENTS := $(ERL_SOURCES:%.erl=$(DOC_DIR)/%.html)
29
- ERL_OBJECTS_LOCAL := $(ERL_SOURCES:%.erl=./%.$(EMULATOR))
30
- APP_FILES := $(wildcard *.app)
31
- EBIN_FILES = $(ERL_OBJECTS) $(ERL_DOCUMENTS) $(APP_FILES:%.app=../ebin/%.app)
32
- EBIN_FILES_NO_DOCS = $(ERL_OBJECTS) $(APP_FILES:%.app=../ebin/%.app)
33
- MODULES = $(ERL_SOURCES:%.erl=%)
34
-
35
- ../ebin/%.app: %.app
36
- cp $< $@
37
-
38
- $(EBIN_DIR)/%.$(EMULATOR): %.erl
39
- $(ERLC) $(ERLC_FLAGS) -o $(EBIN_DIR) $<
40
-
41
- ./%.$(EMULATOR): %.erl
42
- $(ERLC) $(ERLC_FLAGS) -o . $<
43
-
44
- $(DOC_DIR)/%.html: %.erl
45
- $(ERL) -noshell -run edoc file $< -run init stop
46
- mv *.html $(DOC_DIR)
@@ -1,20 +0,0 @@
1
- # Configuration file for Yaws HTTP daemon
2
-
3
- # This config defines virtual server localhost. It is
4
- # enabled by default. If you want to disable it, remove
5
- # symlink from /etc/yaws/conf.d/.
6
-
7
- # Instead you may edit this file and after that reload
8
- # yaws configureation using invoke-rc.d yaws reload
9
-
10
- # (If you want to use privileged port, run yaws as root,
11
- # setting YAWS_USER in /etc/default/yaws, or use port
12
- # redirection, e.g. via iptables.)
13
-
14
- <server localhost>
15
- port = 8000
16
- listen = 0.0.0.0
17
- docroot = /Users/auser/Sites/work/citrusbyte/internal/gems/pool-party/poolparty/lib/erlang/cloudpanel/www
18
- appmods = <"tail", tailer>
19
- # dir_listings = true
20
- </server>
Binary file
Binary file