-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcommands.js
More file actions
104 lines (91 loc) · 2.38 KB
/
commands.js
File metadata and controls
104 lines (91 loc) · 2.38 KB
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
var fs = require('fs');
var request = require('request');
function pwd(file, done) {
done(process.cwd());
}
function ls(file, done) {
fs.readdir('.', function(err, files) {
if (err) throw err;
var output = "";
files.forEach(function(file) {
output += file.toString() + "\n";
})
done(output);
});
}
function echo(file, done) {
var echoString = "";
for (var i = 0; i < file.length; i++) {
echoString += file[i] + " ";
}
done(echoString.trim());
}
function cat(file, done) {
fs.readFile(file, 'utf-8', function(err, data) {
if (err) throw err;
done(data);
});
}
function head(file, done) {
var output = "";
fs.readFile(file, 'utf-8', function(err, data) {
if (err) throw err;
data = data.split('\n');
for (var i = 0; i < 5; i++) {
output += data[i] + "\n";
}
done(output);
});
}
function tail(file, done) {
var output = "";
fs.readFile(file, 'utf-8', function(err, data) {
if (err) throw err;
data = data.split('\n');
for (var i = data.length - 5; i < data.length; i++) {
output += data[i] + "\n";
}
done(output);
});
}
function sort(file, done) {
var output = "";
fs.readFile(file, 'utf-8', function(err, data) {
if (err) throw err;
data = data.split('\n').sort();
for (var i = 0; i < data.length; i++) {
output += data[i] + "\n";
}
done(output);
});
}
function wc(file, done) {
fs.readFile(file, 'utf-8', function(err, data) {
if (err) throw err;
data = data.split('\n');
done(data.length.toString());
});
}
function uniq(file, done) {
fs.readFile(file, 'utf-8', function(err, data) {
if (err) throw err;
data = data.split('\n').sort();
var newData = [];
for (var i = 0; i < data.length; i++) {
if (newData.indexOf(data[i]) === -1) {
newData.push(data[i]);
}
}
var output = ""
for (var i = 0; i < newData.length; i++) {
output += newData[i] + "\n";
}
done(output);
});
}
function curl(file, done) {
request(file, function(error, response, body) {
done(body);
});
}
module.exports = { pwd, ls, echo, cat, head, tail, sort, wc, uniq, curl }