diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2022-04-17 00:05:50 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2022-04-17 00:05:50 -0300 |
commit | 410971a0c815a3e994b239161ed4680beac20abf (patch) | |
tree | 347e852f7f0454a302642807d1e1289483d52195 /src/repl.js | |
parent | 385faccb5a5be64acd5ca65ace26d6a7db37b64f (diff) |
local REPL input logging / history file
Diffstat (limited to 'src/repl.js')
-rw-r--r-- | src/repl.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/repl.js b/src/repl.js index 2e61081e..aea66e35 100644 --- a/src/repl.js +++ b/src/repl.js @@ -1,6 +1,8 @@ +import * as os from 'os'; import * as path from 'path'; import * as repl from 'repl'; import { fileURLToPath } from 'url'; +import { promisify } from 'util'; import { filterDuplicateDirectories, @@ -24,10 +26,15 @@ async function main() { 'show-traces': { type: 'flag' }, + + 'no-history': { + type: 'flag' + }, }); const dataPath = miscOptions['data-path'] || process.env.HSMUSIC_DATA; const showAggregateTraces = miscOptions['show-traces'] ?? false; + const disableHistory = miscOptions['no-history'] ?? false; if (!dataPath) { logError`Expected --data-path option or HSMUSIC_DATA to be set`; @@ -89,6 +96,21 @@ async function main() { wikiData, {wikiData, WD: wikiData} ); + + if (disableHistory) { + console.log(`\rInput history disabled (--no-history provided)`); + replServer.displayPrompt(true); + } else { + const historyFile = path.join(os.homedir(), '.hsmusic_repl_history'); + replServer.setupHistory(historyFile, err => { + if (err) { + console.error(`\rFailed to begin locally logging input history to ${historyFile} (provide --no-history to disable)`); + } else { + console.log(`\rLogging input history to ${historyFile} (provide --no-history to disable)`); + } + replServer.displayPrompt(true); + }); + } } main().catch(error => { |