Skip to content

Commit 4b20ee8

Browse files
committed
beta_0.0.0.1
1 parent c74a330 commit 4b20ee8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+19695
-0
lines changed

.DS_Store

6 KB
Binary file not shown.

app.js

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
const { program } = require('commander');
2+
const open = require('open');
3+
const readline = require('readline');
4+
const net = require('net');
5+
const Socket = net.Socket;
6+
const serverModule = require('./modules/server');
7+
const settingsModule = require('./modules/settings');
8+
const logsModule = require('./modules/logs');
9+
10+
11+
process.on('SIGINT', async function() {
12+
serverModule.stopAll();
13+
});
14+
15+
const rl = readline.createInterface({
16+
input: process.stdin,
17+
output: process.stdout
18+
});
19+
20+
async function isPortTaken(port) {
21+
return new Promise((resolve) => {
22+
const socket = new Socket();
23+
socket.on("timeout", () => {
24+
resolve(false);
25+
socket.destroy();
26+
});
27+
socket.on("connect", () => {
28+
resolve(true);
29+
});
30+
socket.on("error", error => {
31+
if (error.code !== "ECONNREFUSED") resolve(true);
32+
else resolve(false);
33+
});
34+
socket.connect(port, "0.0.0.0");
35+
});
36+
}
37+
38+
async function findAvailablePort(startPort) {
39+
let port = startPort;
40+
let maxPort = startPort + 100;
41+
while (await isPortTaken(port)) {
42+
if (port >= maxPort) {
43+
throw new Error('No available ports found');
44+
}
45+
port++;
46+
}
47+
return port;
48+
}
49+
50+
const originalLog = console.log;
51+
52+
console.log = function (...args) {
53+
originalLog.apply(console, args);
54+
rl.prompt();
55+
};
56+
57+
program
58+
.option('-p, --port <port>', 'Set server port', parseInt)
59+
.option('-d, --dir <dir>', 'Set server dir', String)
60+
.option('-r, --run', 'Run the server', false)
61+
.parse(process.argv);
62+
(async () => {
63+
await settingsModule.init();
64+
await settingsModule.read();
65+
const port = await findAvailablePort(3000);
66+
const subPort = program.opts().port || 8080;
67+
const autoServer = program.opts().run || false;
68+
const pathServer = program.opts().dir || settingsModule.getObjects().path;
69+
await serverModule.startMain(port, pathServer, autoServer, subPort);
70+
71+
72+
if (settingsModule.getObjects().app.auto_web) {
73+
await open(`http://localhost:${port}`);
74+
}
75+
76+
let exit = false;
77+
readline.emitKeypressEvents(process.stdin);
78+
process.stdin.on('keypress', (ch, key) => {
79+
if (key && key.name === 'escape') {
80+
console.log('Close app? (y)');
81+
exit = true
82+
rl.prompt();
83+
} else if (key && key.name === 'y' && exit) {
84+
console.log('\nExiting application...');
85+
rl.close();
86+
} else {
87+
exit = false
88+
}
89+
});
90+
process.stdin.setRawMode(true);
91+
92+
rl.on('line', async(input) => {
93+
if (input.trim() === 'open') {
94+
await open(`http://localhost:${port}`);
95+
} else if (input.trim() === 'exit') {
96+
console.log('Exiting application...');
97+
} else if (input.trim() === 'stop') {
98+
await serverModule.stop();
99+
} else if (input.trim() === 'run') {
100+
await serverModule.run();
101+
} else if (input.trim() === 'help' || input.trim() === '-h') {
102+
const help =
103+
'exit - Close application\n' +
104+
'run - Start server\n' +
105+
'stop - Stop server';
106+
console.log(help);
107+
} else {
108+
console.log('Unknown command. To get available commands -h');
109+
}
110+
rl.prompt();
111+
});
112+
rl.prompt();
113+
114+
rl.on('close', async() => {
115+
console.log('Application closed.');
116+
await logsModule.write('Application closed.')
117+
process.exit(0);
118+
});
119+
})();

assets/.DS_Store

10 KB
Binary file not shown.

assets/certificate/certificate.crt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIEBDCCAuygAwIBAgIEOvfXxTANBgkqhkiG9w0BAQsFADCBmjELMAkGA1UEBhMC
3+
VUExCjAIBgNVBAMMASoxHDAaBgNVBAgME0NoZXJuaWhpdnNrYSBPYmxhc3QxEjAQ
4+
BgNVBAcMCUNoZXJuaWhpdjESMBAGA1UECgwJVGlhciBBcHBzMRIwEAYDVQQLDAlU
5+
aWFyIEFwcHMxJTAjBgkqhkiG9w0BCQEWFnRpYXIuZGV2ZWxvcEBnbWFpbC5jb20w
6+
HhcNMjQwNjE5MTY0MDM2WhcNMzQwNjE3MTY0MDM2WjCBmjELMAkGA1UEBhMCVUEx
7+
CjAIBgNVBAMMASoxHDAaBgNVBAgME0NoZXJuaWhpdnNrYSBPYmxhc3QxEjAQBgNV
8+
BAcMCUNoZXJuaWhpdjESMBAGA1UECgwJVGlhciBBcHBzMRIwEAYDVQQLDAlUaWFy
9+
IEFwcHMxJTAjBgkqhkiG9w0BCQEWFnRpYXIuZGV2ZWxvcEBnbWFpbC5jb20wggEi
10+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzmM2ByX3YmDISAajNJvR8G+UL
11+
pqHOOZj2fxfaZpvioeAMSsWypBqCSPwHWfph+sB257MNdx5fcgmTC58En9acOPqi
12+
AdgZoDwlZdHvrb8BRTiKhfGCDUfF8jLd2kmgR177vPkP98wn/66ZL9zLn7aDJcb8
13+
OlQJ73tMqGDqdEZFTM/y1EeTw61r32k1gQgtq2NBn1PsdgjSMorYYS03jUwVwXUK
14+
CwphLY25JcfdGZ+UicA7NMO1SdnIjQvjAZB0YNvS5+1/O9xJjSA3jd8XnHTNM3Wb
15+
qdFO2OhcSOh9H7eWecAGCvPxn0NWqFOGsFw+m7bNEmvgH+l/n07iLfIh4gR9AgMB
16+
AAGjUDBOMB0GA1UdDgQWBBRJp+nTx/UIODeiISUpPRrj9kpTAzAfBgNVHSMEGDAW
17+
gBRJp+nTx/UIODeiISUpPRrj9kpTAzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB
18+
CwUAA4IBAQA97p13Utxes433w3UCjo41rG866CF9Tl223LTkIVo2mbAI6EKLhN2w
19+
L1TojBTfKQ9l35R9lsbjZ2JVhortObKG4/sDZ3wVdqV/novHe2wKVf7e4tJQR6NZ
20+
ytGCoHOYttoA6p0QfZz6K+3ASzKHNBDz/0lyPncHhUt7zd8aC5zBp3nDZsl8SVPq
21+
k/2NetV+sewHyGRYGqKTVFhUkaCg7RuXdS6ueaHkWUxLo+feeDRZnN+qlh79EbgL
22+
Nli9Atj4tof/mcvce3g4x+hCoiIeWuA4Kt94LR1YpC8MnK1Gg/S/HwnwL5jCTOxS
23+
KKFUepRtTC6Utjah/KptgbluVyo2r8cx
24+
-----END CERTIFICATE-----

assets/certificate/private.key

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCzmM2ByX3YmDIS
3+
AajNJvR8G+ULpqHOOZj2fxfaZpvioeAMSsWypBqCSPwHWfph+sB257MNdx5fcgmT
4+
C58En9acOPqiAdgZoDwlZdHvrb8BRTiKhfGCDUfF8jLd2kmgR177vPkP98wn/66Z
5+
L9zLn7aDJcb8OlQJ73tMqGDqdEZFTM/y1EeTw61r32k1gQgtq2NBn1PsdgjSMorY
6+
YS03jUwVwXUKCwphLY25JcfdGZ+UicA7NMO1SdnIjQvjAZB0YNvS5+1/O9xJjSA3
7+
jd8XnHTNM3WbqdFO2OhcSOh9H7eWecAGCvPxn0NWqFOGsFw+m7bNEmvgH+l/n07i
8+
LfIh4gR9AgMBAAECggEAUHJlu3kx8c9avk4X+q00XlNwaaOeXu3V4rRTTvUfZojz
9+
/w2PONHhPfLLUc+wJCtaAukOfz2YUVCXkVJnTH78dsXfHqqMzg3EY0wUmbPOFxeW
10+
mBYfdA3W1IgE2PNqf2z40vJ27fwlatVQtDWIRX2pF13YoCrQchLfvBrALsUepPNe
11+
+l9Xih2/n7vmsqNrz+ZjloKfXprQwPaIujJviLJuV9gszMuQyVFYrbYhez5ip9s1
12+
9JdFDQLSmFtjHeCxxo0IunPmwhju/M/DyPN4Iq9oL59GhGnCz3d65zfN6DtbkghS
13+
3Z8YLMJlmLQCwVF2mbxQbHwWX4m28WtZDqJSyho5UQKBgQDgFRWX6gYf9jH3zSNK
14+
w0HpLEjRkcfPRUBHwY93bq5mx3b6EjD4SytXQN+G1nbmGvgnbqYDsItGCLbhrueJ
15+
xROUY3f23eFDtkOlad3OBWEVivEJdLnuP/VI0TI7/MnU/Zeqd8EthKtiRyBWHEmU
16+
vviucDIeRbeW5Ey1LoX3qbsRfwKBgQDNLZrPiFjVKheRcTUvfHY2nQuH9aSRa6zM
17+
B7AIoyVdsvlE5HRFUfPS7KbQlrwjFBSQQTFbNOrzXlLfgoSy3pzIHrbwH/GgTdAM
18+
vnxTtlJMrNQ++4Ghm8sCuX46pUytkHFNa4dKoVK87j1Yy5TKHymN4nhmMsWcWukG
19+
hEqoARcwAwKBgQCstZN/ExDFcavxolqhNP2ICmnVnNa0GlwA8l7xXo1tCi/Zbkvw
20+
E3/EMGwYMRRTJlY9jjrGfTvbLrxGFdi/hvYgWMoNq9YDqmdZBs++CsdZI03ETANC
21+
bmlPRm3BboThdNOAv+xUePzfMpLpy8OqscZaLH90daea1TuKKeF3kYptYQKBgQCB
22+
5mGhCt3S93c8acQWcGIXaY4nYeny94zLEALvNPsvO2R9rXW/fYc0/wcOAKDURJ5Q
23+
RjYNXI9zzUACqguBg1cXi/qeRFsh9qHFr8Pe7Atm5/ToeyszOgNpki7MymKlcFGL
24+
hox9P222l87XLOzimqAgaEV5zqM1vojRy2fIvggEKQKBgHCPErGc4QQc6+bEhzKB
25+
DOhIdXBnZ8dCUdi9RE5/Ltz8s74+HHE+8Qj+OpqUSTzyuw97jp78dW0DuRUIAGZd
26+
ga14z3qRMpKJg2ro+/5eF+CVo2z5vMFv733oKkktG18mFukNvYgiipwhJQTZbAki
27+
LSHnFj9ULWSWDkJzhs6cWXeW
28+
-----END PRIVATE KEY-----

assets/client/.DS_Store

6 KB
Binary file not shown.

assets/client/web/.DS_Store

6 KB
Binary file not shown.

assets/client/web/ic_launcher.png

26.4 KB
Loading
531 KB
Binary file not shown.
808 KB
Loading

0 commit comments

Comments
 (0)