-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtimekeeping.js
More file actions
executable file
·45 lines (36 loc) · 1.37 KB
/
timekeeping.js
File metadata and controls
executable file
·45 lines (36 loc) · 1.37 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
#!/usr/bin/env node
// Skjul punycode-advarsel
process.removeAllListeners('warning');
process.on('warning', (warning) => {
if (warning.name === 'DeprecationWarning' &&
warning.message.includes('The `punycode` module is deprecated')) {
return;
}
console.warn(warning.name, warning.message);
});
const { Command } = require("commander");
const admin = require('firebase-admin');
const path = require('path');
const os = require('os');
// Initialize Firebase Admin
const serviceAccount = require(path.join(os.homedir(), '.timekeeping', 'service-account.json'));
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://timekeep-2b61b-default-rtdb.europe-west1.firebasedatabase.app"
});
const database = admin.database();
// Set up Commander
const program = new Command();
program.version("1.0.0").description("A simple CLI for timekeeping");
// Import commands
const setupLogCommand = require('./src/commands/log');
const setupReportCommand = require('./src/commands/report');
const setupSummaryCommand = require('./src/commands/summary');
const setupImportCommand = require('./src/commands/import');
// Set up commands
setupLogCommand(program, database);
setupReportCommand(program, database);
setupSummaryCommand(program, database);
setupImportCommand(program, database);
// Parse command line arguments
program.parse(process.argv);