nodectl 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +24 -0
  5. data/Gemfile +4 -0
  6. data/README.md +3 -0
  7. data/Rakefile +1 -0
  8. data/TODO.md +7 -0
  9. data/assets/javascript/application.coffee +22 -0
  10. data/assets/javascript/bootstrap.js +2006 -0
  11. data/assets/javascript/controllers/application_controller.coffee +73 -0
  12. data/assets/javascript/controllers/service_controller.coffee +62 -0
  13. data/assets/javascript/event_handler.coffee +51 -0
  14. data/assets/javascript/models/action.coffee +28 -0
  15. data/assets/javascript/models/instance.coffee +7 -0
  16. data/assets/javascript/models/service.coffee +75 -0
  17. data/assets/javascript/models/version.coffee +3 -0
  18. data/assets/javascript/notifier.coffee +64 -0
  19. data/assets/javascript/router.coffee +3 -0
  20. data/assets/javascript/routes/application.coffee +6 -0
  21. data/assets/javascript/routes/log.coffee +4 -0
  22. data/assets/javascript/routes/service.coffee +3 -0
  23. data/assets/javascript/store.coffee +32 -0
  24. data/assets/javascript/templates/application.hbs +82 -0
  25. data/assets/javascript/templates/index.hbs +1 -0
  26. data/assets/javascript/templates/log.hbs +1 -0
  27. data/assets/javascript/templates/service.hbs +110 -0
  28. data/assets/javascript/templates/views/action.hbs +20 -0
  29. data/assets/javascript/templates/views/actions_list.hbs +26 -0
  30. data/assets/javascript/templates/views/environments_list.hbs +9 -0
  31. data/assets/javascript/templates/views/install_button.hbs +1 -0
  32. data/assets/javascript/templates/views/mass_run.hbs +30 -0
  33. data/assets/javascript/templates/views/notifier_control.hbs +7 -0
  34. data/assets/javascript/templates/views/param.hbs +6 -0
  35. data/assets/javascript/templates/views/terminal.hbs +8 -0
  36. data/assets/javascript/ui.coffee +24 -0
  37. data/assets/javascript/vendor/ansiparse.js +186 -0
  38. data/assets/javascript/vendor/audio.min.js +24 -0
  39. data/assets/javascript/vendor/audiojs.swf +0 -0
  40. data/assets/javascript/vendor/ember-data.js +10528 -0
  41. data/assets/javascript/vendor/ember.js +40583 -0
  42. data/assets/javascript/vendor/handlebars.js +2746 -0
  43. data/assets/javascript/vendor/jquery.js +8829 -0
  44. data/assets/javascript/vendor/ladda.js +157 -0
  45. data/assets/javascript/vendor/moment.min.js +6 -0
  46. data/assets/javascript/vendor/notify-osd.js +319 -0
  47. data/assets/javascript/vendor/player-graphics.gif +0 -0
  48. data/assets/javascript/vendor/spin.js +218 -0
  49. data/assets/javascript/views/action_view.coffee +18 -0
  50. data/assets/javascript/views/actions_list_view.coffee +2 -0
  51. data/assets/javascript/views/environments_list_view.coffee +2 -0
  52. data/assets/javascript/views/install_button_view.coffee +34 -0
  53. data/assets/javascript/views/mass_run_view.coffee +107 -0
  54. data/assets/javascript/views/notifier_control_view.coffee +29 -0
  55. data/assets/javascript/views/terminal_view.coffee +56 -0
  56. data/assets/stylesheets/application.css +137 -0
  57. data/assets/stylesheets/bootstrap-theme.css +347 -0
  58. data/assets/stylesheets/bootstrap.css +5785 -0
  59. data/assets/stylesheets/fonts/glyphicons-halflings-regular.eot +0 -0
  60. data/assets/stylesheets/fonts/glyphicons-halflings-regular.svg +229 -0
  61. data/assets/stylesheets/fonts/glyphicons-halflings-regular.ttf +0 -0
  62. data/assets/stylesheets/fonts/glyphicons-halflings-regular.woff +0 -0
  63. data/assets/stylesheets/ladda-themeless.css +330 -0
  64. data/assets/stylesheets/ladda.css +392 -0
  65. data/assets/stylesheets/notify-osd.css +49 -0
  66. data/assets/stylesheets/terminal.css +12 -0
  67. data/bin/nodectl +4 -0
  68. data/lib/nodectl.rb +137 -0
  69. data/lib/nodectl/action.rb +80 -0
  70. data/lib/nodectl/binding.rb +13 -0
  71. data/lib/nodectl/cli.rb +123 -0
  72. data/lib/nodectl/context.rb +34 -0
  73. data/lib/nodectl/database.rb +55 -0
  74. data/lib/nodectl/generators/init.rb +22 -0
  75. data/lib/nodectl/generators/templates/init/.gitignore +5 -0
  76. data/lib/nodectl/generators/templates/init/config/manifest.yml +1 -0
  77. data/lib/nodectl/generators/templates/init/config/server.yml +7 -0
  78. data/lib/nodectl/instance.rb +100 -0
  79. data/lib/nodectl/log.rb +13 -0
  80. data/lib/nodectl/manager.rb +71 -0
  81. data/lib/nodectl/multi_io.rb +16 -0
  82. data/lib/nodectl/options.rb +47 -0
  83. data/lib/nodectl/process.rb +145 -0
  84. data/lib/nodectl/promised_file.rb +37 -0
  85. data/lib/nodectl/recipe.rb +197 -0
  86. data/lib/nodectl/repository.rb +80 -0
  87. data/lib/nodectl/server.rb +103 -0
  88. data/lib/nodectl/service.rb +126 -0
  89. data/lib/nodectl/stream/buffer.rb +44 -0
  90. data/lib/nodectl/stream/events_session.rb +39 -0
  91. data/lib/nodectl/stream/file.rb +69 -0
  92. data/lib/nodectl/stream/file_session.rb +35 -0
  93. data/lib/nodectl/stream/file_with_memory.rb +17 -0
  94. data/lib/nodectl/stream/websocket.rb +90 -0
  95. data/lib/nodectl/version.rb +3 -0
  96. data/lib/nodectl/watchdog.rb +17 -0
  97. data/lib/nodectl/webapp/actions.rb +21 -0
  98. data/lib/nodectl/webapp/base.rb +29 -0
  99. data/lib/nodectl/webapp/instances.rb +46 -0
  100. data/lib/nodectl/webapp/public/sounds/alert.mp3 +0 -0
  101. data/lib/nodectl/webapp/public/sounds/error.mp3 +0 -0
  102. data/lib/nodectl/webapp/public/sounds/question.mp3 +0 -0
  103. data/lib/nodectl/webapp/services.rb +39 -0
  104. data/lib/nodectl/webapp/settings.rb +7 -0
  105. data/lib/nodectl/webapp/ui.rb +19 -0
  106. data/lib/nodectl/webapp/versions.rb +12 -0
  107. data/lib/nodectl/webapp/views/ui.haml +20 -0
  108. data/nodectl.gemspec +35 -0
  109. data/spec/spec_helper.rb +12 -0
  110. data/spec/stream/buffer_spec.rb +33 -0
  111. metadata +365 -0
@@ -0,0 +1,392 @@
1
+ /** Contains the default Ladda button theme styles */
2
+ /*!
3
+ * Ladda
4
+ * http://lab.hakim.se/ladda
5
+ * MIT licensed
6
+ *
7
+ * Copyright (C) 2013 Hakim El Hattab, http://hakim.se
8
+ */
9
+ /*************************************
10
+ * CONFIG
11
+ */
12
+ /*************************************
13
+ * MIXINS
14
+ */
15
+ /*************************************
16
+ * BUTTON BASE
17
+ */
18
+ .ladda-button {
19
+ position: relative; }
20
+
21
+ /* Spinner animation */
22
+ .ladda-button .ladda-spinner {
23
+ position: absolute;
24
+ z-index: 2;
25
+ display: inline-block;
26
+ width: 32px;
27
+ height: 32px;
28
+ top: 50%;
29
+ margin-top: -16px;
30
+ opacity: 0;
31
+ pointer-events: none; }
32
+
33
+ /* Button label */
34
+ .ladda-button .ladda-label {
35
+ position: relative;
36
+ z-index: 3; }
37
+
38
+ /* Progress bar */
39
+ .ladda-button .ladda-progress {
40
+ position: absolute;
41
+ width: 0;
42
+ height: 100%;
43
+ left: 0;
44
+ top: 0;
45
+ background: rgba(0, 0, 0, 0.2);
46
+ visibility: hidden;
47
+ opacity: 0;
48
+ -webkit-transition: 0.1s linear all !important;
49
+ -moz-transition: 0.1s linear all !important;
50
+ -ms-transition: 0.1s linear all !important;
51
+ -o-transition: 0.1s linear all !important;
52
+ transition: 0.1s linear all !important; }
53
+
54
+ .ladda-button[data-loading] .ladda-progress {
55
+ opacity: 1;
56
+ visibility: visible; }
57
+
58
+ /*************************************
59
+ * EASING
60
+ */
61
+ .ladda-button,
62
+ .ladda-button .ladda-spinner,
63
+ .ladda-button .ladda-label {
64
+ -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
65
+ -moz-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
66
+ -ms-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
67
+ -o-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
68
+ transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important; }
69
+
70
+ .ladda-button[data-style=zoom-in],
71
+ .ladda-button[data-style=zoom-in] .ladda-spinner,
72
+ .ladda-button[data-style=zoom-in] .ladda-label,
73
+ .ladda-button[data-style=zoom-out],
74
+ .ladda-button[data-style=zoom-out] .ladda-spinner,
75
+ .ladda-button[data-style=zoom-out] .ladda-label {
76
+ -webkit-transition: 0.3s ease all !important;
77
+ -moz-transition: 0.3s ease all !important;
78
+ -ms-transition: 0.3s ease all !important;
79
+ -o-transition: 0.3s ease all !important;
80
+ transition: 0.3s ease all !important; }
81
+
82
+ /*************************************
83
+ * EXPAND LEFT
84
+ */
85
+ .ladda-button[data-style=expand-right] .ladda-spinner {
86
+ right: 14px; }
87
+ .ladda-button[data-style=expand-right][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-right][data-size="xs"] .ladda-spinner {
88
+ right: 4px; }
89
+ .ladda-button[data-style=expand-right][data-loading] {
90
+ padding-right: 56px; }
91
+ .ladda-button[data-style=expand-right][data-loading] .ladda-spinner {
92
+ opacity: 1; }
93
+ .ladda-button[data-style=expand-right][data-loading][data-size="s"], .ladda-button[data-style=expand-right][data-loading][data-size="xs"] {
94
+ padding-right: 40px; }
95
+
96
+ /*************************************
97
+ * EXPAND RIGHT
98
+ */
99
+ .ladda-button[data-style=expand-left] .ladda-spinner {
100
+ left: 14px; }
101
+ .ladda-button[data-style=expand-left][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-left][data-size="xs"] .ladda-spinner {
102
+ left: 4px; }
103
+ .ladda-button[data-style=expand-left][data-loading] {
104
+ padding-left: 56px; }
105
+ .ladda-button[data-style=expand-left][data-loading] .ladda-spinner {
106
+ opacity: 1; }
107
+ .ladda-button[data-style=expand-left][data-loading][data-size="s"], .ladda-button[data-style=expand-left][data-loading][data-size="xs"] {
108
+ padding-left: 40px; }
109
+
110
+ /*************************************
111
+ * EXPAND UP
112
+ */
113
+ .ladda-button[data-style=expand-up] {
114
+ overflow: hidden; }
115
+ .ladda-button[data-style=expand-up] .ladda-spinner {
116
+ top: -32px;
117
+ left: 50%;
118
+ margin-left: -16px; }
119
+ .ladda-button[data-style=expand-up][data-loading] {
120
+ padding-top: 54px; }
121
+ .ladda-button[data-style=expand-up][data-loading] .ladda-spinner {
122
+ opacity: 1;
123
+ top: 14px;
124
+ margin-top: 0; }
125
+ .ladda-button[data-style=expand-up][data-loading][data-size="s"], .ladda-button[data-style=expand-up][data-loading][data-size="xs"] {
126
+ padding-top: 32px; }
127
+ .ladda-button[data-style=expand-up][data-loading][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-up][data-loading][data-size="xs"] .ladda-spinner {
128
+ top: 4px; }
129
+
130
+ /*************************************
131
+ * EXPAND DOWN
132
+ */
133
+ .ladda-button[data-style=expand-down] {
134
+ overflow: hidden; }
135
+ .ladda-button[data-style=expand-down] .ladda-spinner {
136
+ top: 62px;
137
+ left: 50%;
138
+ margin-left: -16px; }
139
+ .ladda-button[data-style=expand-down][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-down][data-size="xs"] .ladda-spinner {
140
+ top: 40px; }
141
+ .ladda-button[data-style=expand-down][data-loading] {
142
+ padding-bottom: 54px; }
143
+ .ladda-button[data-style=expand-down][data-loading] .ladda-spinner {
144
+ opacity: 1; }
145
+ .ladda-button[data-style=expand-down][data-loading][data-size="s"], .ladda-button[data-style=expand-down][data-loading][data-size="xs"] {
146
+ padding-bottom: 32px; }
147
+
148
+ /*************************************
149
+ * SLIDE LEFT
150
+ */
151
+ .ladda-button[data-style=slide-left] {
152
+ overflow: hidden; }
153
+ .ladda-button[data-style=slide-left] .ladda-label {
154
+ position: relative; }
155
+ .ladda-button[data-style=slide-left] .ladda-spinner {
156
+ left: 100%;
157
+ margin-left: -16px; }
158
+ .ladda-button[data-style=slide-left][data-loading] .ladda-label {
159
+ opacity: 0;
160
+ left: -100%; }
161
+ .ladda-button[data-style=slide-left][data-loading] .ladda-spinner {
162
+ opacity: 1;
163
+ left: 50%; }
164
+
165
+ /*************************************
166
+ * SLIDE RIGHT
167
+ */
168
+ .ladda-button[data-style=slide-right] {
169
+ overflow: hidden; }
170
+ .ladda-button[data-style=slide-right] .ladda-label {
171
+ position: relative; }
172
+ .ladda-button[data-style=slide-right] .ladda-spinner {
173
+ right: 100%;
174
+ margin-left: -16px; }
175
+ .ladda-button[data-style=slide-right][data-loading] .ladda-label {
176
+ opacity: 0;
177
+ left: 100%; }
178
+ .ladda-button[data-style=slide-right][data-loading] .ladda-spinner {
179
+ opacity: 1;
180
+ left: 50%; }
181
+
182
+ /*************************************
183
+ * SLIDE UP
184
+ */
185
+ .ladda-button[data-style=slide-up] {
186
+ overflow: hidden; }
187
+ .ladda-button[data-style=slide-up] .ladda-label {
188
+ position: relative; }
189
+ .ladda-button[data-style=slide-up] .ladda-spinner {
190
+ left: 50%;
191
+ margin-left: -16px;
192
+ margin-top: 1em; }
193
+ .ladda-button[data-style=slide-up][data-loading] .ladda-label {
194
+ opacity: 0;
195
+ top: -1em; }
196
+ .ladda-button[data-style=slide-up][data-loading] .ladda-spinner {
197
+ opacity: 1;
198
+ margin-top: -16px; }
199
+
200
+ /*************************************
201
+ * SLIDE DOWN
202
+ */
203
+ .ladda-button[data-style=slide-down] {
204
+ overflow: hidden; }
205
+ .ladda-button[data-style=slide-down] .ladda-label {
206
+ position: relative; }
207
+ .ladda-button[data-style=slide-down] .ladda-spinner {
208
+ left: 50%;
209
+ margin-left: -16px;
210
+ margin-top: -2em; }
211
+ .ladda-button[data-style=slide-down][data-loading] .ladda-label {
212
+ opacity: 0;
213
+ top: 1em; }
214
+ .ladda-button[data-style=slide-down][data-loading] .ladda-spinner {
215
+ opacity: 1;
216
+ margin-top: -16px; }
217
+
218
+ /*************************************
219
+ * ZOOM-OUT
220
+ */
221
+ .ladda-button[data-style=zoom-out] {
222
+ overflow: hidden; }
223
+
224
+ .ladda-button[data-style=zoom-out] .ladda-spinner {
225
+ left: 50%;
226
+ margin-left: -16px;
227
+ -webkit-transform: scale(2.5);
228
+ -moz-transform: scale(2.5);
229
+ -ms-transform: scale(2.5);
230
+ -o-transform: scale(2.5);
231
+ transform: scale(2.5); }
232
+
233
+ .ladda-button[data-style=zoom-out] .ladda-label {
234
+ position: relative;
235
+ display: inline-block; }
236
+
237
+ .ladda-button[data-style=zoom-out][data-loading] .ladda-label {
238
+ opacity: 0;
239
+ -webkit-transform: scale(0.5);
240
+ -moz-transform: scale(0.5);
241
+ -ms-transform: scale(0.5);
242
+ -o-transform: scale(0.5);
243
+ transform: scale(0.5); }
244
+
245
+ .ladda-button[data-style=zoom-out][data-loading] .ladda-spinner {
246
+ opacity: 1;
247
+ -webkit-transform: none;
248
+ -moz-transform: none;
249
+ -ms-transform: none;
250
+ -o-transform: none;
251
+ transform: none; }
252
+
253
+ /*************************************
254
+ * ZOOM-IN
255
+ */
256
+ .ladda-button[data-style=zoom-in] {
257
+ overflow: hidden; }
258
+
259
+ .ladda-button[data-style=zoom-in] .ladda-spinner {
260
+ left: 50%;
261
+ margin-left: -16px;
262
+ -webkit-transform: scale(0.2);
263
+ -moz-transform: scale(0.2);
264
+ -ms-transform: scale(0.2);
265
+ -o-transform: scale(0.2);
266
+ transform: scale(0.2); }
267
+
268
+ .ladda-button[data-style=zoom-in] .ladda-label {
269
+ position: relative;
270
+ display: inline-block; }
271
+
272
+ .ladda-button[data-style=zoom-in][data-loading] .ladda-label {
273
+ opacity: 0;
274
+ -webkit-transform: scale(2.2);
275
+ -moz-transform: scale(2.2);
276
+ -ms-transform: scale(2.2);
277
+ -o-transform: scale(2.2);
278
+ transform: scale(2.2); }
279
+
280
+ .ladda-button[data-style=zoom-in][data-loading] .ladda-spinner {
281
+ opacity: 1;
282
+ -webkit-transform: none;
283
+ -moz-transform: none;
284
+ -ms-transform: none;
285
+ -o-transform: none;
286
+ transform: none; }
287
+
288
+ /*************************************
289
+ * CONTRACT
290
+ */
291
+ .ladda-button[data-style=contract] {
292
+ overflow: hidden;
293
+ width: 100px; }
294
+
295
+ .ladda-button[data-style=contract] .ladda-spinner {
296
+ left: 50%;
297
+ margin-left: -16px; }
298
+
299
+ .ladda-button[data-style=contract][data-loading] {
300
+ border-radius: 50%;
301
+ width: 52px; }
302
+
303
+ .ladda-button[data-style=contract][data-loading] .ladda-label {
304
+ opacity: 0; }
305
+
306
+ .ladda-button[data-style=contract][data-loading] .ladda-spinner {
307
+ opacity: 1; }
308
+
309
+ /*************************************
310
+ * OVERLAY
311
+ */
312
+ .ladda-button[data-style=contract-overlay] {
313
+ overflow: hidden;
314
+ width: 100px;
315
+ box-shadow: 0px 0px 0px 3000px rgba(0, 0, 0, 0); }
316
+
317
+ .ladda-button[data-style=contract-overlay] .ladda-spinner {
318
+ left: 50%;
319
+ margin-left: -16px; }
320
+
321
+ .ladda-button[data-style=contract-overlay][data-loading] {
322
+ border-radius: 50%;
323
+ width: 52px;
324
+ /*outline: 10000px solid rgba( 0, 0, 0, 0.5 );*/
325
+ box-shadow: 0px 0px 0px 3000px rgba(0, 0, 0, 0.8); }
326
+
327
+ .ladda-button[data-style=contract-overlay][data-loading] .ladda-label {
328
+ opacity: 0; }
329
+
330
+ .ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner {
331
+ opacity: 1; }
332
+
333
+ /*************************************
334
+ * CONFIG
335
+ */
336
+ /*************************************
337
+ * BUTTON THEME
338
+ */
339
+ .ladda-button {
340
+ background: #666;
341
+ border: 0;
342
+ padding: 14px 18px;
343
+ font-size: 18px;
344
+ cursor: pointer;
345
+ color: #fff;
346
+ border-radius: 2px;
347
+ border: 1px solid transparent;
348
+ -webkit-appearance: none;
349
+ -webkit-font-smoothing: antialiased;
350
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
351
+ .ladda-button:hover {
352
+ border-color: rgba(0, 0, 0, 0.07);
353
+ background-color: #888; }
354
+ .ladda-button[data-color=green] {
355
+ background: #2aca76; }
356
+ .ladda-button[data-color=green]:hover {
357
+ background-color: #38d683; }
358
+ .ladda-button[data-color=blue] {
359
+ background: #53b5e6; }
360
+ .ladda-button[data-color=blue]:hover {
361
+ background-color: #69bfe9; }
362
+ .ladda-button[data-color=red] {
363
+ background: #ea8557; }
364
+ .ladda-button[data-color=red]:hover {
365
+ background-color: #ed956e; }
366
+ .ladda-button[data-color=purple] {
367
+ background: #9973c2; }
368
+ .ladda-button[data-color=purple]:hover {
369
+ background-color: #a685ca; }
370
+ .ladda-button[data-color=mint] {
371
+ background: #16a085; }
372
+ .ladda-button[data-color=mint]:hover {
373
+ background-color: #19b698; }
374
+ .ladda-button[disabled], .ladda-button[data-loading] {
375
+ border-color: rgba(0, 0, 0, 0.07);
376
+ cursor: default;
377
+ background-color: #999; }
378
+ .ladda-button[disabled]:hover, .ladda-button[data-loading]:hover {
379
+ cursor: default;
380
+ background-color: #999; }
381
+ .ladda-button[data-size=xs] {
382
+ padding: 4px 8px; }
383
+ .ladda-button[data-size=xs] .ladda-label {
384
+ font-size: 0.7em; }
385
+ .ladda-button[data-size=s] {
386
+ padding: 6px 10px; }
387
+ .ladda-button[data-size=s] .ladda-label {
388
+ font-size: 0.9em; }
389
+ .ladda-button[data-size=l] .ladda-label {
390
+ font-size: 1.2em; }
391
+ .ladda-button[data-size=xl] .ladda-label {
392
+ font-size: 1.5em; }
@@ -0,0 +1,49 @@
1
+ img {
2
+ border:none;
3
+ }
4
+ .notify-osd {
5
+ font-family:Helvetica Neue,Helvetica,Arial,'Liberation Sans',FreeSans,sans-serif;
6
+ font-size:14px;
7
+ position:fixed;
8
+ top:20px;
9
+ right:20px;
10
+ width:350px;
11
+ background-color:#222222;
12
+ color:#ffffff;
13
+ border-radius:4px;
14
+ box-shadow:0 0 10px #222;
15
+ -webkit-border-radius:4px;
16
+ -moz-border-radius:4px;
17
+ z-index:900;
18
+ }
19
+ .notify-osd:hover {
20
+ cursor:default !important;
21
+ }
22
+ .notify-osd > div {
23
+ padding:10px;
24
+ position:relative;
25
+ }
26
+ .notify-osd table {
27
+ width:100%;
28
+ padding:0;
29
+ -webkit-border-horizontal-spacing:0;
30
+ -webkit-border-vertical-spacing:0;
31
+ }
32
+ .notify-osd .notify-osd-dismiss {
33
+ color:#ccc;
34
+ font-size:15px;
35
+ position:absolute;
36
+ top:3px;
37
+ right:10px;
38
+ text-decoration:none;
39
+ z-index:999;
40
+ }
41
+ .notify-osd td.notify-osd-icon {
42
+ height:48px;
43
+ width:48px;
44
+ vertical-align:top;
45
+ }
46
+ .notify-osd td.notify-osd-content {
47
+ padding-left:10px;
48
+ vertical-align:center;
49
+ }
@@ -0,0 +1,12 @@
1
+ .terminal {
2
+ background: #444;
3
+ color: #FFF;
4
+ width: 100%;
5
+ }
6
+
7
+ .terminal-output {
8
+ overflow-y: scroll;
9
+ font-family: monospace;
10
+ height: 600px;
11
+ background: #000;
12
+ }