-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
134 lines (132 loc) · 4.63 KB
/
index.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
const express = require('express');
const bodyParser = require('body-parser');
const { exec } = require('child_process');
const appList = require('./list.json');
const app = express();
const modulePath = '~/.module';
app
.use(bodyParser.json())
.use('/api/web', async function(req, res) {
await exec( `mkdir -P ${modulePath}`, { timeout: 120 * 1000 }, function(error) {
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'error while download source',
result: error
});
}
exec('gksudo "apt install lamp-server^ -y"', function(error){
if (error) {
return res.status(500).json({
success: false,
code: 404,
message: 'file not found',
result: error
});
}
exec(`gksudo "apt install phpmyadmin -y"`, function(error, stderr, stdout){
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'error while executing command',
result: error
});
}
res.status(200).json({
success: true,
code: 200,
message: 'success installing web module',
result: {
stdout: stdout.replace(/\n/g, ''),
stderr: stderr.replace(/\n/g, ''),
error: error ? error.replace(/\n/g, '') : error,
}
});
})
})
});
})
.use('/api/multimedia', function(req, res){
exec(`mkdir -P ${modulePath}`, function(error) {
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'Internal server error',
result: error
});
}
exec('gksudo "apt install inkscape gimp blender -y"', function(error, stdout, stderr) {
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'Internal server error',
result: error
});
}
res.status(200).json({
success: true,
code: 200,
message: 'success installing multimedia module',
result: {
stdout: stdout.replace(/\n/g, ''),
stderr: stderr.replace(/\n/g, ''),
error: error ? error.replace(/\n/g, '') : error,
}
});
})
});
})
.use('/api/mobile', function(req, res){
exec(`mkdir -P ${modulePath}`, function(error) {
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'Error while installing dependencies',
result: error
});
}
})
exec('gksudo "apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386"', function(error) {
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'Error while installing dependencies',
result: error
});
}
exec('gksudo "apt-add-repository ppa:maarten-fonville/android-studio && apt update', function(error){
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'Error while adding ppa to list',
result: error
});
}
exec('gksudo "apt install android-studio"', function(error, stdout, stderr){
if (error) {
return res.status(500).json({
success: false,
code: 500,
message: 'Error while installing android studio',
result: error
});
}
return res.status(200).json({
stdout: stdout.replace(/\n/g, ''),
stderr: stderr.replace(/\n/g, ''),
error: error ? error.replace(/\n/g, '') : error,
});
})
})
});
})
.listen(3000, function(){
console.log('your app listing to port 3000');
})