-
Notifications
You must be signed in to change notification settings - Fork 2
/
make-md.js
103 lines (90 loc) · 3.19 KB
/
make-md.js
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
/*
* Software Name : abcdesktop.io
* Version: 0.2
* SPDX-FileCopyrightText: Copyright (c) 2020-2021 Orange
* SPDX-License-Identifier: GPL-2.0-only
*
* This software is distributed under the GNU General Public License v2.0 only
* see the "license.txt" file for more details.
*
* Author: abcdesktop.io team
* Software description: cloud native desktop service
*/
/* eslint-disable no-console */
const fs = require('fs');
const path = require('path');
const dockerRegistryPath = 'abcdesktopio';
// function to encode file data to base64 encoded string
function base64Encode(file) {
// read binary data
const bitmap = fs.readFileSync(file);
// convert binary data to base64 encoded string
return bitmap.toString('base64');
}
// test function
function makedummy(e) {
const tempname = "dummy.md";
const filename = tempname.toLowerCase();
console.log( filename );
const wstream = fs.createWriteStream(filename);
wstream.write("dummy");
wstream.close();
}
function makedocumentation(e) {
const tempname = `${e.name}.md`;
const filename = tempname.toLowerCase();
const wstream = fs.createWriteStream(filename);
wstream.write(`# ${e.name}\n`);
wstream.write(`![${e.icon}](/applications/icons/${e.icon}){: style="height:64px;width:64px"}\n` );
if (e.template) {
wstream.write(`## inherite from\n[${e.template}](${e.template}.md)\n`);
}
if (e.debpackage) {
wstream.write(`## use ubuntu package\n${e.debpackage}\n`);
}
if (e.description) {
wstream.write(`## Description\n${e.description}\n`);
}
if (e.args) wstream.write(`## Arguments\n${JSON.stringify(e.args)}\n`);
const displayname = e.displayname ? e.displayname : e.name;
wstream.write(`## Display name\n${JSON.stringify(displayname)}\n`);
wstream.write(`## path\n${JSON.stringify(e.path)}\n`);
if (e.uniquerunkey) { wstream.write(`## uniquerunkey\n${JSON.stringify(e.uniquerunkey)}\n`); }
if (e.showinview) { wstream.write(`## showinview\n${JSON.stringify(e.showinview)}\n`); }
if (e.execmode) { wstream.write(`## Exec mode\n${JSON.stringify(e.execmode)}\n`); }
if (e.bindhomevolume) {
wstream.write(
`## Mount Home volume\n${JSON.stringify(e.bindhomevolume)}\n`,
);
}
if (e.mimetype) { wstream.write(`## Mime Type\n${JSON.stringify(e.mimetype)}\n`); }
if (e.fileextensions) {
wstream.write(`## File extensions\n${JSON.stringify(e.fileextensions)}\n`);
}
if (e.legacyfileextensions) {
wstream.write(
`## Legacy file extensions\n${JSON.stringify(e.legacyfileextensions)}\n`,
);
}
if (e.shm_size) { wstream.write(`## Share size\n${JSON.stringify(e.shm_size)}\n`); }
if (e.mem_limit) wstream.write(`## Memory size\n${JSON.stringify(e.mem_limit)}\n`);
if (e.preruncommands) {
wstream.write(`## Pre run command\n\n`);
wstream.write("```\n\n");
wstream.write(`${e.preruncommands}\n`);
wstream.write("```\n");
}
wstream.end(() => {console.log(`${filename} done`);});
}
function sortByKey(array, key) {
return array.sort((a, b) => {
const x = a[key];
const y = b[key];
if (x < y) return -1;
if (x > y) return 1;
return 0;
});
}
const content = fs.readFileSync('applist.json');
const jsoncontent = JSON.parse(content);
jsoncontent.forEach(makedocumentation);