Bob Mottram пре 7 година
родитељ
комит
40f6ed2c26
2 измењених фајлова са 151 додато и 66 уклоњено
  1. 2
    1
      doc/EN/devguide.org
  2. 149
    65
      website/EN/devguide.html

+ 2
- 1
doc/EN/devguide.org Прегледај датотеку

18
 
18
 
19
 There's a command which you can use to generate scripts for new apps. Some examples are as follows:
19
 There's a command which you can use to generate scripts for new apps. Some examples are as follows:
20
 
20
 
21
-To create a script for a generic PHP plus MySql/MariaDB web app:
21
+To create a script for a generic PHP plus MySql/MariaDB web app with a couple of extra packages:
22
 
22
 
23
 #+begin_src bash
23
 #+begin_src bash
24
 freedombone-template --app [name] -e [email] -r [repo url] \
24
 freedombone-template --app [name] -e [email] -r [repo url] \
25
+                     --packages "cowsay libssl-dev" \
25
                      -c [commit] --php yes -d mariadb > \
26
                      -c [commit] --php yes -d mariadb > \
26
                      src/freedombone-app-myappname
27
                      src/freedombone-app-myappname
27
 #+end_src
28
 #+end_src

+ 149
- 65
website/EN/devguide.html Прегледај датотеку

3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
 <head>
5
 <head>
6
-<title></title>
7
-<!-- 2018-04-12 Thu 18:23 -->
8
-<meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9
-<meta  name="generator" content="Org-mode" />
10
-<meta  name="author" content="Bob Mottram" />
11
-<meta  name="description" content="Freedombone developers guide"
6
+<!-- 2018-05-14 Mon 19:43 -->
7
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
+<meta name="viewport" content="width=device-width, initial-scale=1" />
9
+<title>&lrm;</title>
10
+<meta name="generator" content="Org mode" />
11
+<meta name="author" content="Bob Mottram" />
12
+<meta name="description" content="Freedombone developers guide"
12
  />
13
  />
13
-<meta  name="keywords" content="freedombone, developers" />
14
+<meta name="keywords" content="freedombone, developers" />
14
 <style type="text/css">
15
 <style type="text/css">
15
  <!--/*--><![CDATA[/*><!--*/
16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
17
+  .title  { text-align: center;
18
+             margin-bottom: .2em; }
19
+  .subtitle { text-align: center;
20
+              font-size: medium;
21
+              font-weight: bold;
22
+              margin-top:0; }
17
   .todo   { font-family: monospace; color: red; }
23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19
   .tag    { background-color: #eee; font-family: monospace;
26
   .tag    { background-color: #eee; font-family: monospace;
20
             padding: 2px; font-size: 80%; font-weight: normal; }
27
             padding: 2px; font-size: 80%; font-weight: normal; }
21
   .timestamp { color: #bebebe; }
28
   .timestamp { color: #bebebe; }
22
   .timestamp-kwd { color: #5f9ea0; }
29
   .timestamp-kwd { color: #5f9ea0; }
23
-  .right  { margin-left: auto; margin-right: 0px;  text-align: right; }
24
-  .left   { margin-left: 0px;  margin-right: auto; text-align: left; }
25
-  .center { margin-left: auto; margin-right: auto; text-align: center; }
30
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
26
   .underline { text-decoration: underline; }
33
   .underline { text-decoration: underline; }
27
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28
   p.verse { margin-left: 3%; }
35
   p.verse { margin-left: 3%; }
49
     border: 1px solid black;
56
     border: 1px solid black;
50
   }
57
   }
51
   pre.src:hover:before { display: inline;}
58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
59
+  /* Languages per Org manual */
60
+  pre.src-asymptote:before { content: 'Asymptote'; }
61
+  pre.src-awk:before { content: 'Awk'; }
62
+  pre.src-C:before { content: 'C'; }
63
+  /* pre.src-C++ doesn't work in CSS */
64
+  pre.src-clojure:before { content: 'Clojure'; }
65
+  pre.src-css:before { content: 'CSS'; }
66
+  pre.src-D:before { content: 'D'; }
67
+  pre.src-ditaa:before { content: 'ditaa'; }
68
+  pre.src-dot:before { content: 'Graphviz'; }
69
+  pre.src-calc:before { content: 'Emacs Calc'; }
54
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
55
-  pre.src-R:before     { content: 'R'; }
56
-  pre.src-perl:before  { content: 'Perl'; }
57
-  pre.src-java:before  { content: 'Java'; }
58
-  pre.src-sql:before   { content: 'SQL'; }
71
+  pre.src-fortran:before { content: 'Fortran'; }
72
+  pre.src-gnuplot:before { content: 'gnuplot'; }
73
+  pre.src-haskell:before { content: 'Haskell'; }
74
+  pre.src-hledger:before { content: 'hledger'; }
75
+  pre.src-java:before { content: 'Java'; }
76
+  pre.src-js:before { content: 'Javascript'; }
77
+  pre.src-latex:before { content: 'LaTeX'; }
78
+  pre.src-ledger:before { content: 'Ledger'; }
79
+  pre.src-lisp:before { content: 'Lisp'; }
80
+  pre.src-lilypond:before { content: 'Lilypond'; }
81
+  pre.src-lua:before { content: 'Lua'; }
82
+  pre.src-matlab:before { content: 'MATLAB'; }
83
+  pre.src-mscgen:before { content: 'Mscgen'; }
84
+  pre.src-ocaml:before { content: 'Objective Caml'; }
85
+  pre.src-octave:before { content: 'Octave'; }
86
+  pre.src-org:before { content: 'Org mode'; }
87
+  pre.src-oz:before { content: 'OZ'; }
88
+  pre.src-plantuml:before { content: 'Plantuml'; }
89
+  pre.src-processing:before { content: 'Processing.js'; }
90
+  pre.src-python:before { content: 'Python'; }
91
+  pre.src-R:before { content: 'R'; }
92
+  pre.src-ruby:before { content: 'Ruby'; }
93
+  pre.src-sass:before { content: 'Sass'; }
94
+  pre.src-scheme:before { content: 'Scheme'; }
95
+  pre.src-screen:before { content: 'Gnu Screen'; }
96
+  pre.src-sed:before { content: 'Sed'; }
97
+  pre.src-sh:before { content: 'shell'; }
98
+  pre.src-sql:before { content: 'SQL'; }
99
+  pre.src-sqlite:before { content: 'SQLite'; }
100
+  /* additional languages in org.el's org-babel-load-languages alist */
101
+  pre.src-forth:before { content: 'Forth'; }
102
+  pre.src-io:before { content: 'IO'; }
103
+  pre.src-J:before { content: 'J'; }
104
+  pre.src-makefile:before { content: 'Makefile'; }
105
+  pre.src-maxima:before { content: 'Maxima'; }
106
+  pre.src-perl:before { content: 'Perl'; }
107
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
108
+  pre.src-scala:before { content: 'Scala'; }
109
+  pre.src-shell:before { content: 'Shell Script'; }
110
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
111
+  /* additional language identifiers per "defun org-babel-execute"
112
+       in ob-*.el */
113
+  pre.src-cpp:before  { content: 'C++'; }
114
+  pre.src-abc:before  { content: 'ABC'; }
115
+  pre.src-coq:before  { content: 'Coq'; }
116
+  pre.src-groovy:before  { content: 'Groovy'; }
117
+  /* additional language identifiers from org-babel-shell-names in
118
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
119
+     the execution function name together. */
120
+  pre.src-bash:before  { content: 'bash'; }
121
+  pre.src-csh:before  { content: 'csh'; }
122
+  pre.src-ash:before  { content: 'ash'; }
123
+  pre.src-dash:before  { content: 'dash'; }
124
+  pre.src-ksh:before  { content: 'ksh'; }
125
+  pre.src-mksh:before  { content: 'mksh'; }
126
+  pre.src-posh:before  { content: 'posh'; }
127
+  /* Additional Emacs modes also supported by the LaTeX listings package */
128
+  pre.src-ada:before { content: 'Ada'; }
129
+  pre.src-asm:before { content: 'Assembler'; }
130
+  pre.src-caml:before { content: 'Caml'; }
131
+  pre.src-delphi:before { content: 'Delphi'; }
132
+  pre.src-html:before { content: 'HTML'; }
133
+  pre.src-idl:before { content: 'IDL'; }
134
+  pre.src-mercury:before { content: 'Mercury'; }
135
+  pre.src-metapost:before { content: 'MetaPost'; }
136
+  pre.src-modula-2:before { content: 'Modula-2'; }
137
+  pre.src-pascal:before { content: 'Pascal'; }
138
+  pre.src-ps:before { content: 'PostScript'; }
139
+  pre.src-prolog:before { content: 'Prolog'; }
140
+  pre.src-simula:before { content: 'Simula'; }
141
+  pre.src-tcl:before { content: 'tcl'; }
142
+  pre.src-tex:before { content: 'TeX'; }
143
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
144
+  pre.src-verilog:before { content: 'Verilog'; }
145
+  pre.src-vhdl:before { content: 'VHDL'; }
146
+  pre.src-xml:before { content: 'XML'; }
147
+  pre.src-nxml:before { content: 'XML'; }
148
+  /* add a generic configuration mode; LaTeX export needs an additional
149
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
150
+  pre.src-conf:before { content: 'Configuration File'; }
59
 
151
 
60
   table { border-collapse:collapse; }
152
   table { border-collapse:collapse; }
61
   caption.t-above { caption-side: top; }
153
   caption.t-above { caption-side: top; }
62
   caption.t-bottom { caption-side: bottom; }
154
   caption.t-bottom { caption-side: bottom; }
63
   td, th { vertical-align:top;  }
155
   td, th { vertical-align:top;  }
64
-  th.right  { text-align: center;  }
65
-  th.left   { text-align: center;   }
66
-  th.center { text-align: center; }
67
-  td.right  { text-align: right;  }
68
-  td.left   { text-align: left;   }
69
-  td.center { text-align: center; }
156
+  th.org-right  { text-align: center;  }
157
+  th.org-left   { text-align: center;   }
158
+  th.org-center { text-align: center; }
159
+  td.org-right  { text-align: right;  }
160
+  td.org-left   { text-align: left;   }
161
+  td.org-center { text-align: center; }
70
   dt { font-weight: bold; }
162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73
   .footdef  { margin-bottom: 1em; }
164
   .footdef  { margin-bottom: 1em; }
74
   .figure { padding: 1em; }
165
   .figure { padding: 1em; }
75
   .figure p { text-align: center; }
166
   .figure p { text-align: center; }
89
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90
   .org-info-js_search-highlight
181
   .org-info-js_search-highlight
91
     { background-color: #ffff00; color: #000000; font-weight: bold; }
182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92
   /*]]>*/-->
184
   /*]]>*/-->
93
 </style>
185
 </style>
94
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
97
 @licstart  The following is the entire license notice for the
189
 @licstart  The following is the entire license notice for the
98
 JavaScript code in this tag.
190
 JavaScript code in this tag.
99
 
191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
101
 
193
 
102
 The JavaScript code in this tag is free software: you can
194
 The JavaScript code in this tag is free software: you can
103
 redistribute it and/or modify it under the terms of the GNU
195
 redistribute it and/or modify it under the terms of the GNU
144
 <a name="top" id="top"></a>
236
 <a name="top" id="top"></a>
145
 </div>
237
 </div>
146
 <div id="content">
238
 <div id="content">
147
-<h1 class="title"></h1>
148
 
239
 
149
 <div class="figure">
240
 <div class="figure">
150
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
151
 </p>
242
 </p>
152
 </div>
243
 </div>
153
 
244
 
154
-<div id="outline-container-sec-1" class="outline-2">
155
-<h2 id="sec-1">Developers Guide</h2>
245
+<div id="outline-container-orgd0bf853" class="outline-2">
246
+<h2 id="orgd0bf853">Developers Guide</h2>
156
 </div>
247
 </div>
157
 
248
 
158
-<div id="outline-container-sec-2" class="outline-2">
159
-<h2 id="sec-2">Introduction</h2>
160
-<div class="outline-text-2" id="text-2">
249
+<div id="outline-container-orgaedd476" class="outline-2">
250
+<h2 id="orgaedd476">Introduction</h2>
251
+<div class="outline-text-2" id="text-orgaedd476">
161
 <p>
252
 <p>
162
 Freedombone consists of a set of bash scripts. There are a lot of them, but they're not very complicated. If you're familiar with the GNU/Linux commandline and can hack a bash script then you can probably add a new app or fix a bug in the system. There are no trendy development frameworks to learn or to get in your way. You might also want to consult the <a href="./codeofconduct.html">Code of Conduct</a>, and there is a Matrix room at <b>#fbone:matrix.freedombone.net</b>
253
 Freedombone consists of a set of bash scripts. There are a lot of them, but they're not very complicated. If you're familiar with the GNU/Linux commandline and can hack a bash script then you can probably add a new app or fix a bug in the system. There are no trendy development frameworks to learn or to get in your way. You might also want to consult the <a href="./codeofconduct.html">Code of Conduct</a>, and there is a Matrix room at <b>#fbone:matrix.freedombone.net</b>
163
 </p>
254
 </p>
164
 </div>
255
 </div>
165
 </div>
256
 </div>
166
-<div id="outline-container-sec-3" class="outline-2">
167
-<h2 id="sec-3">Adding extra apps</h2>
168
-<div class="outline-text-2" id="text-3">
257
+<div id="outline-container-org3e1ecd6" class="outline-2">
258
+<h2 id="org3e1ecd6">Adding extra apps</h2>
259
+<div class="outline-text-2" id="text-org3e1ecd6">
169
 <p>
260
 <p>
170
 Suppose you have some internet application which you want to add to the system. To do this you need to create an app script which tells the system how to install/remove and also backup/restore. The script should be designed to work with the current stable version of Debian.
261
 Suppose you have some internet application which you want to add to the system. To do this you need to create an app script which tells the system how to install/remove and also backup/restore. The script should be designed to work with the current stable version of Debian.
171
 </p>
262
 </p>
175
 </p>
266
 </p>
176
 
267
 
177
 <p>
268
 <p>
178
-To create a script for a generic PHP plus MySql/MariaDB web app:
269
+To create a script for a generic PHP plus MySql/MariaDB web app with a couple of extra packages:
179
 </p>
270
 </p>
180
 
271
 
181
 <div class="org-src-container">
272
 <div class="org-src-container">
182
-
183
-<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
184
-                     -c [commit] --php yes -d mariadb &gt; \
273
+<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
274
+                     --packages <span class="org-string">"cowsay libssl-dev"</span> <span class="org-sh-escaped-newline">\</span>
275
+                     -c [commit] --php yes -d mariadb &gt; <span class="org-sh-escaped-newline">\</span>
185
                      src/freedombone-app-myappname
276
                      src/freedombone-app-myappname
186
 </pre>
277
 </pre>
187
 </div>
278
 </div>
191
 </p>
282
 </p>
192
 
283
 
193
 <div class="org-src-container">
284
 <div class="org-src-container">
194
-
195
-<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
196
-                     -c [commit] --node yes -d mariadb \
197
-                     --dir /etc/myappname --daemon yes &gt; \
285
+<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
286
+                     -c [commit] --node yes -d mariadb <span class="org-sh-escaped-newline">\</span>
287
+                     --dir /etc/myappname --daemon yes &gt; <span class="org-sh-escaped-newline">\</span>
198
                      src/freedombone-app-myappname
288
                      src/freedombone-app-myappname
199
 </pre>
289
 </pre>
200
 </div>
290
 </div>
204
 </p>
294
 </p>
205
 
295
 
206
 <div class="org-src-container">
296
 <div class="org-src-container">
207
-
208
-<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
209
-                     -c [commit] -d postgresql \
210
-                     --dir /etc/myappname --daemon yes &gt; \
297
+<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
298
+                     -c [commit] -d postgresql <span class="org-sh-escaped-newline">\</span>
299
+                     --dir /etc/myappname --daemon yes &gt; <span class="org-sh-escaped-newline">\</span>
211
                      src/freedombone-app-myappname
300
                      src/freedombone-app-myappname
212
 </pre>
301
 </pre>
213
 </div>
302
 </div>
217
 </p>
306
 </p>
218
 
307
 
219
 <div class="org-src-container">
308
 <div class="org-src-container">
220
-
221
-<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
222
-                     -c [commit] --dir /etc/myappname \
223
-                     --daemon yes --portinternal 1234 &gt; \
309
+<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
310
+                     -c [commit] --dir /etc/myappname <span class="org-sh-escaped-newline">\</span>
311
+                     --daemon yes --portinternal 1234 &gt; <span class="org-sh-escaped-newline">\</span>
224
                      src/freedombone-app-myappname
312
                      src/freedombone-app-myappname
225
 </pre>
313
 </pre>
226
 </div>
314
 </div>
230
 </p>
318
 </p>
231
 
319
 
232
 <div class="org-src-container">
320
 <div class="org-src-container">
233
-
234
-<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
235
-                     -c [commit] --dir /etc/myappname \
236
-                     --daemon yes --port 5000 &gt; \
321
+<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
322
+                     -c [commit] --dir /etc/myappname <span class="org-sh-escaped-newline">\</span>
323
+                     --daemon yes --port 5000 &gt; <span class="org-sh-escaped-newline">\</span>
237
                      src/freedombone-app-myappname
324
                      src/freedombone-app-myappname
238
 </pre>
325
 </pre>
239
 </div>
326
 </div>
243
 </p>
330
 </p>
244
 
331
 
245
 <div class="org-src-container">
332
 <div class="org-src-container">
246
-
247
-<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] \
248
-                     -c [commit] --php yes -d mariadb \
249
-                     --onion yes &gt; \
333
+<pre class="src src-bash">freedombone-template --app [name] -e [email] -r [repo url] <span class="org-sh-escaped-newline">\</span>
334
+                     -c [commit] --php yes -d mariadb <span class="org-sh-escaped-newline">\</span>
335
+                     --onion yes &gt; <span class="org-sh-escaped-newline">\</span>
250
                      src/freedombone-app-myappname
336
                      src/freedombone-app-myappname
251
 </pre>
337
 </pre>
252
 </div>
338
 </div>
256
 </p>
342
 </p>
257
 
343
 
258
 <div class="org-src-container">
344
 <div class="org-src-container">
259
-
260
 <pre class="src src-bash">man freedombone-template
345
 <pre class="src src-bash">man freedombone-template
261
 </pre>
346
 </pre>
262
 </div>
347
 </div>
270
 </p>
355
 </p>
271
 
356
 
272
 <div class="org-src-container">
357
 <div class="org-src-container">
273
-
274
 <pre class="src src-bash">make install
358
 <pre class="src src-bash">make install
275
 </pre>
359
 </pre>
276
 </div>
360
 </div>
285
 </div>
369
 </div>
286
 </div>
370
 </div>
287
 
371
 
288
-<div id="outline-container-sec-4" class="outline-2">
289
-<h2 id="sec-4">Customising mesh images</h2>
290
-<div class="outline-text-2" id="text-4">
372
+<div id="outline-container-org2b37622" class="outline-2">
373
+<h2 id="org2b37622">Customising mesh images</h2>
374
+<div class="outline-text-2" id="text-org2b37622">
291
 <p>
375
 <p>
292
 If you want to make your own specially branded version of the mesh images, such as for a particular event, then to change the default desktop backgrounds edit the images within <b>img/backgrounds</b> and to change the available avatars and desktop icons edit the images within <b>img/avatars</b>. Re-create disk images using the instructions shown previously.
376
 If you want to make your own specially branded version of the mesh images, such as for a particular event, then to change the default desktop backgrounds edit the images within <b>img/backgrounds</b> and to change the available avatars and desktop icons edit the images within <b>img/avatars</b>. Re-create disk images using the instructions shown previously.
293
 </p>
377
 </p>