From a120963ac86c8df94866910de27724db85fe408c Mon Sep 17 00:00:00 2001 From: fuwa Date: Mon, 29 Jul 2019 14:17:06 +0000 Subject: [PATCH] auto replace - with _ --- cyberwow/lib/config/cyberwow.dart | 42 ++++++++++++++++++++++++++++++ cyberwow/lib/config/prototype.dart | 2 ++ cyberwow/lib/widget/synced.dart | 22 +++++++++++++++- 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/cyberwow/lib/config/cyberwow.dart b/cyberwow/lib/config/cyberwow.dart index f3444e8..a3f2bca 100644 --- a/cyberwow/lib/config/cyberwow.dart +++ b/cyberwow/lib/config/cyberwow.dart @@ -70,6 +70,47 @@ final _theme = ThemeData ); +const Set _commands = +{ + 'alt_chain_info', + 'bc_dyn_stat0s', + 'check_blockchain_pruning', + 'flush_txpool', + 'hard_fork_info', + 'hide_hr', + 'in_peers', + 'is_key_image_spent', + 'limit_down', + 'limit_up', + 'mining_status', + 'out_peers', + 'output_histogram', + 'pop_blocks', + 'print_bc', + 'print_block', + 'print_cn', + 'print_coinbase_tx_sum', + 'print_height', + 'print_net_stats', + 'print_pl', + 'print_pl_stats', + 'print_pool', + 'print_pool_sh', + 'print_pool_stats', + 'print_status', + 'print_tx', + 'prune_blockchain', + 'relay_tx', + 'set_log', + 'show_hr', + 'start_mining', + 'start_save_graph', + 'stop_daemon', + 'stop_mining', + 'stop_save_graph', + 'sync_info', +}; + final config = CryptoConfig ( 'wownerod', @@ -78,6 +119,7 @@ final config = CryptoConfig 70, _theme, 34568, + _commands, [ '--prune-blockchain', '--max-concurrency=1', diff --git a/cyberwow/lib/config/prototype.dart b/cyberwow/lib/config/prototype.dart index d73631a..97214e7 100644 --- a/cyberwow/lib/config/prototype.dart +++ b/cyberwow/lib/config/prototype.dart @@ -28,6 +28,7 @@ class CryptoConfig { final int splashDelay; final ThemeData theme; final int port; + final Set commands; final List extraArgs; const CryptoConfig ( @@ -37,6 +38,7 @@ class CryptoConfig { this.splashDelay, this.theme, this.port, + this.commands, this.extraArgs, ); } diff --git a/cyberwow/lib/widget/synced.dart b/cyberwow/lib/widget/synced.dart index 458b2bb..701c7e1 100644 --- a/cyberwow/lib/widget/synced.dart +++ b/cyberwow/lib/widget/synced.dart @@ -170,7 +170,27 @@ Widget terminalView(BuildContext context, String title, SyncedState state) { border: InputBorder.none, ), onFieldSubmitted: (v) { - final line = state.textController.text.trim(); + String autoReplace(String x) { + final words = x.split(' '); + + if (words.length == 0) { + return x; + } + + final head = words.first; + final tail = words.sublist(1); + final guessHead = head.replaceAll('-', '_'); + + if (config.c.commands.contains(guessHead)) { + return [ guessHead, ...tail ].join(' '); + } else { + return x; + } + } + + final _text = state.textController.text.trim(); + final line = autoReplace(_text); + if (line.isNotEmpty) { log.finer('terminal input: ${line}'); state.appendInput(line);