Procházet zdrojové kódy

Extra packages example

Bob Mottram před 6 roky
rodič
revize
40f6ed2c26
2 změnil soubory, kde provedl 151 přidání a 66 odebrání
  1. 2
    1
      doc/EN/devguide.org
  2. 149
    65
      website/EN/devguide.html

+ 2
- 1
doc/EN/devguide.org Zobrazit soubor

@@ -18,10 +18,11 @@ Suppose you have some internet application which you want to add to the system.
18 18
 
19 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 23
 #+begin_src bash
24 24
 freedombone-template --app [name] -e [email] -r [repo url] \
25
+                     --packages "cowsay libssl-dev" \
25 26
                      -c [commit] --php yes -d mariadb > \
26 27
                      src/freedombone-app-myappname
27 28
 #+end_src

+ 149
- 65
website/EN/devguide.html Zobrazit soubor

@@ -3,26 +3,33 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 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 15
 <style type="text/css">
15 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 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 26
   .tag    { background-color: #eee; font-family: monospace;
20 27
             padding: 2px; font-size: 80%; font-weight: normal; }
21 28
   .timestamp { color: #bebebe; }
22 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 33
   .underline { text-decoration: underline; }
27 34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28 35
   p.verse { margin-left: 3%; }
@@ -49,27 +56,111 @@
49 56
     border: 1px solid black;
50 57
   }
51 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 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 152
   table { border-collapse:collapse; }
61 153
   caption.t-above { caption-side: top; }
62 154
   caption.t-bottom { caption-side: bottom; }
63 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 162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73 164
   .footdef  { margin-bottom: 1em; }
74 165
   .figure { padding: 1em; }
75 166
   .figure p { text-align: center; }
@@ -89,6 +180,7 @@
89 180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90 181
   .org-info-js_search-highlight
91 182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92 184
   /*]]>*/-->
93 185
 </style>
94 186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
@@ -97,7 +189,7 @@
97 189
 @licstart  The following is the entire license notice for the
98 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 194
 The JavaScript code in this tag is free software: you can
103 195
 redistribute it and/or modify it under the terms of the GNU
@@ -144,28 +236,27 @@ for the JavaScript code in this tag.
144 236
 <a name="top" id="top"></a>
145 237
 </div>
146 238
 <div id="content">
147
-<h1 class="title"></h1>
148 239
 
149 240
 <div class="figure">
150 241
 <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
151 242
 </p>
152 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 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 252
 <p>
162 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 254
 </p>
164 255
 </div>
165 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 260
 <p>
170 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 262
 </p>
@@ -175,13 +266,13 @@ There's a command which you can use to generate scripts for new apps. Some examp
175 266
 </p>
176 267
 
177 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 270
 </p>
180 271
 
181 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 276
                      src/freedombone-app-myappname
186 277
 </pre>
187 278
 </div>
@@ -191,10 +282,9 @@ For a Nodejs app with MySql/MariaDB database:
191 282
 </p>
192 283
 
193 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 288
                      src/freedombone-app-myappname
199 289
 </pre>
200 290
 </div>
@@ -204,10 +294,9 @@ For a Python app with Postgresql database:
204 294
 </p>
205 295
 
206 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 300
                      src/freedombone-app-myappname
212 301
 </pre>
213 302
 </div>
@@ -217,10 +306,9 @@ For a Python app without any database, communicating between the daemon and the
217 306
 </p>
218 307
 
219 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 312
                      src/freedombone-app-myappname
225 313
 </pre>
226 314
 </div>
@@ -230,10 +318,9 @@ For an app without any database which communicates directly on a particular port
230 318
 </p>
231 319
 
232 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 324
                      src/freedombone-app-myappname
238 325
 </pre>
239 326
 </div>
@@ -243,10 +330,9 @@ A generic PHP plus MySql/MariaDB web app which is only available on an onion add
243 330
 </p>
244 331
 
245 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 336
                      src/freedombone-app-myappname
251 337
 </pre>
252 338
 </div>
@@ -256,7 +342,6 @@ For more details see the manpage:
256 342
 </p>
257 343
 
258 344
 <div class="org-src-container">
259
-
260 345
 <pre class="src src-bash">man freedombone-template
261 346
 </pre>
262 347
 </div>
@@ -270,7 +355,6 @@ When your new script is ready for testing you can install it with:
270 355
 </p>
271 356
 
272 357
 <div class="org-src-container">
273
-
274 358
 <pre class="src src-bash">make install
275 359
 </pre>
276 360
 </div>
@@ -285,9 +369,9 @@ Submit your working app to <b><a href="https://github.com/bashrc/freedombone/iss
285 369
 </div>
286 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 375
 <p>
292 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 377
 </p>