Skip to content

Commit aa4d720

Browse files
committed
Rewrite grunt keycode task
1 parent 3c84cae commit aa4d720

File tree

4 files changed

+46
-53
lines changed

4 files changed

+46
-53
lines changed

lib/adb/keycode.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
// Generated by `grunt keycode` on Tue, 26 Nov 2013 08:02:49 GMT
1+
// Generated by `npm run keycode` on Tue, 13 Oct 2020 12:32:45 GMT
22
// KeyEvent.java Copyright (C) 2006 The Android Open Source Project
3+
34
export = {
45
KEYCODE_UNKNOWN: 0,
56
KEYCODE_SOFT_LEFT: 1,

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"url": "https://github.com/DeviceFarmer/adbkit.git"
2828
},
2929
"scripts": {
30+
"keycode": "node tasks/keycode.js",
3031
"prepublish": "npm run compile && npm run test",
3132
"compile": "tsc -p .",
3233
"lint": "eslint ./ --ext .ts",

tasks/keycode.coffee

Lines changed: 0 additions & 52 deletions
This file was deleted.

tasks/keycode.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
const https = require('https');
2+
const fs = require('fs');
3+
const path = require('path');
4+
5+
const repo_path = '/aosp-mirror/platform_frameworks_base/master';
6+
const original = {
7+
hostname: 'raw.githubusercontent.com',
8+
path: repo_path + '/core/java/android/view/KeyEvent.java',
9+
method: 'GET',
10+
};
11+
const regex = /public static final int (KEYCODE_[^\s]+)\s*=\s*([0-9]+);/g;
12+
const file = path.resolve(__dirname, '../lib/adb/keycode.ts');
13+
14+
const req = https.request(original, function (res) {
15+
if (res.statusCode !== 200) {
16+
console.warn('Unable to retrieve KeyEvent.java (HTTP ' + res.statusCode + ')');
17+
return;
18+
}
19+
let raw = Buffer.from('');
20+
res.on('data', (chunk) => {
21+
return (raw = Buffer.concat([raw, chunk]));
22+
});
23+
return res.on('end', () => {
24+
let match;
25+
const code = raw.toString();
26+
const date = new Date().toUTCString();
27+
const coffee = [];
28+
coffee.push('// Generated by `npm run keycode` on ' + date);
29+
coffee.push('// KeyEvent.java Copyright (C) 2006 The Android Open Source Project');
30+
coffee.push('');
31+
coffee.push('export = {');
32+
while ((match = regex.exec(code))) {
33+
coffee.push(`\t${match[1]}: ${match[2]},`);
34+
}
35+
coffee.push('};\n');
36+
fs.writeFileSync(file, coffee.join('\n'));
37+
console.log('File ' + file + ' created');
38+
});
39+
});
40+
req.on('error', (e) => {
41+
console.error(e.message);
42+
});
43+
return req.end();

0 commit comments

Comments
 (0)