cc-codeline 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/bin.js +45 -23
- package/package.json +6 -3
package/README.md
CHANGED
package/bin.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
const fs = require('fs');
|
|
3
|
-
const {
|
|
3
|
+
const { extname, resolve } = require('path');
|
|
4
4
|
|
|
5
5
|
const languages = {
|
|
6
6
|
'.js': {
|
|
@@ -43,31 +43,47 @@ const languages = {
|
|
|
43
43
|
comment: /\/\*[\s\S]+?\*\/|\/\/.*/g
|
|
44
44
|
},
|
|
45
45
|
'.py': {
|
|
46
|
-
comment: /'''[\s\S]+?'''
|
|
46
|
+
comment: /'''[\s\S]+?'''|#.*/g
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
let total = 0;
|
|
50
|
-
let empty = 0;
|
|
51
|
-
let source = 0;
|
|
52
|
-
let comment = 0;
|
|
53
|
-
let fileCount = 0;
|
|
54
49
|
|
|
55
50
|
const param = process.argv.slice(2);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const path = join(base, param[0] || '');
|
|
60
|
-
|
|
61
|
-
(() => {
|
|
62
|
-
if (param.includes('-h')) {
|
|
63
|
-
console.log(`
|
|
64
|
-
codeline /path/ -l
|
|
51
|
+
if (param.includes('-h')) {
|
|
52
|
+
console.log(`
|
|
53
|
+
codeline /path/ -l -e node_modules dist
|
|
65
54
|
------------------
|
|
66
55
|
-h Show help
|
|
67
56
|
-l Print log
|
|
57
|
+
-e Exclude directory
|
|
68
58
|
`);
|
|
69
|
-
|
|
59
|
+
process.exit(0);
|
|
60
|
+
}
|
|
61
|
+
const base = process.cwd();
|
|
62
|
+
const isLog = (() => {
|
|
63
|
+
const index = param.indexOf('-l');
|
|
64
|
+
if (index >= 0) {
|
|
65
|
+
param.splice(index, 1);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
return false;
|
|
69
|
+
})();
|
|
70
|
+
|
|
71
|
+
const excludePath = (() => {
|
|
72
|
+
const index = param.findIndex(it => it == '-e');
|
|
73
|
+
if (index >= 0) {
|
|
74
|
+
return param.splice(index).map(it => resolve(base, it));
|
|
70
75
|
}
|
|
76
|
+
})();
|
|
77
|
+
|
|
78
|
+
const path = resolve(base, param[0] || '');
|
|
79
|
+
|
|
80
|
+
let total = 0;
|
|
81
|
+
let empty = 0;
|
|
82
|
+
let source = 0;
|
|
83
|
+
let comment = 0;
|
|
84
|
+
let fileCount = 0;
|
|
85
|
+
|
|
86
|
+
(() => {
|
|
71
87
|
try {
|
|
72
88
|
const stat = fs.statSync(path);
|
|
73
89
|
if (stat.isDirectory()) {
|
|
@@ -79,8 +95,8 @@ codeline /path/ -l
|
|
|
79
95
|
print()
|
|
80
96
|
});
|
|
81
97
|
}
|
|
82
|
-
} catch (
|
|
83
|
-
console.log('Error, the path may not exist');
|
|
98
|
+
} catch (err) {
|
|
99
|
+
console.log(err.message || 'Error, the path may not exist');
|
|
84
100
|
}
|
|
85
101
|
})();
|
|
86
102
|
|
|
@@ -95,10 +111,14 @@ function print() {
|
|
|
95
111
|
}
|
|
96
112
|
|
|
97
113
|
function readDirectory(dirPath, callback) {
|
|
114
|
+
if (excludePath && excludePath.includes(dirPath)) {
|
|
115
|
+
callback();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
98
118
|
let progress = 0;
|
|
99
119
|
fs.readdir(dirPath, (err, filenames) => {
|
|
100
120
|
if (err) {
|
|
101
|
-
console.log(
|
|
121
|
+
console.log(err.message);
|
|
102
122
|
callback();
|
|
103
123
|
return;
|
|
104
124
|
}
|
|
@@ -107,7 +127,7 @@ function readDirectory(dirPath, callback) {
|
|
|
107
127
|
return;
|
|
108
128
|
}
|
|
109
129
|
for (let name of filenames) {
|
|
110
|
-
const filepath =
|
|
130
|
+
const filepath = resolve(dirPath, name);
|
|
111
131
|
const fileStat = fs.statSync(filepath);
|
|
112
132
|
if (fileStat.isDirectory()) {
|
|
113
133
|
readDirectory(filepath, () => {
|
|
@@ -136,12 +156,14 @@ function readFile(filepath, callback) {
|
|
|
136
156
|
}
|
|
137
157
|
fs.readFile(filepath, (err, data) => {
|
|
138
158
|
if (err) {
|
|
139
|
-
console.log(
|
|
159
|
+
console.log(err.message);
|
|
140
160
|
callback();
|
|
141
161
|
return;
|
|
142
162
|
}
|
|
143
163
|
|
|
144
|
-
|
|
164
|
+
if (isLog) {
|
|
165
|
+
console.log(filepath);
|
|
166
|
+
}
|
|
145
167
|
|
|
146
168
|
const content = data.toString();
|
|
147
169
|
fileCount += 1;
|
package/package.json
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cc-codeline",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"main": "bin.js",
|
|
5
5
|
"description": "Quickly count your lines of code",
|
|
6
6
|
"bin": {
|
|
7
7
|
"codeline": "./bin.js"
|
|
8
8
|
},
|
|
9
|
-
"keywords": [
|
|
9
|
+
"keywords": [
|
|
10
|
+
"codeline",
|
|
11
|
+
"cli"
|
|
12
|
+
],
|
|
10
13
|
"author": "",
|
|
11
14
|
"license": "MIT",
|
|
12
15
|
"type": "commonjs"
|
|
13
|
-
}
|
|
16
|
+
}
|