App-AltSQL
view release on metacpan or search on metacpan
lib/App/AltSQL.pm view on Meta::CPAN
I've thought of a number of other features, but so too have my coworkers and friends. Most people I've spoken with have ideas for future features. Next time you're using your DB shell and find yourself irritated at a feature or bug in the software ...
=head1 CONFIGURATION
The command line arguments inform how to connect to the database, whereas the configuration file(s) provide behavior and features of the UI.
=head2 Command Line
The following options are available.
=over 4
=item -h HOSTNAME | --host HOSTNAME
=item -u USERNAME | --user USERNAME
=item -p | --password=PASSWORD | -pPASSWORD
=item --port PORT
=item -D DATABASE | --database DATABASE
Basic connection parameters to the MySQL database.
=item --A | --no-auto-rehash
By default, upon startup and whenever the database is changed, the C<information_schema> tables will be read to perform tab completion. Disable this behavior to get a faster startup time (but no tab complete).
=back
=head2 Config File
We are using L<Config::Any> for finding and parsing the configuration file. You may use any format you'd like to write it so long as it's support in C<Config::Any>.
=over 4
=item /etc/altsql.(yml|cnf|ini|js|pl)
=item ~/.altsql.(yml|cnf|ini|js|pl)
Write your configuration file to either the system or the local configuration locations. The local file will inherit from the global configuration but with local modifications. For purposes of this example I'll be writing out the config in YAML, bu...
=back
---
prompt: 'altsql> '
plugins:
- Tail
- Dump
view_plugins:
- Color
- UnicodeBox
App::AltSQL::View::Plugin::Color:
header_text:
default: red
cell_text:
is_null: blue
is_primary_key: bold
is_number: yellow
App::AltSQL::View::Plugin::UnicodeBox:
style: heavy_header
split_lines: 1
plain_ascii: 0
This is the default configuration, and currently encompasses all the configurable settings. This should be future safe; as you can see, plugins may use this file for their own variables as there are namespaced sections.
=over 4
=item B<prompt>
prompt: "%u@%h[%d]> "
# 'username@hostname[database]> '
prompt: "%c{red}%u%c{reset} %t{%F %T}> '
# 'username' (in red) ' YYYY-MM-DD HH:MM:SS> '
Provide a custom prompt. The following variables will be interpolated:
=over 4
=item B<%u>
The username used to connect to the model
=item B<%d>
The current database or '(none)'
=item B<%h>
The hostname the model is connected to
=item B<%%>
An escaped percent sign
=item B<%c{...}>
A L<Term::ANSIColor> color name. The value will be passed directly to the C<color> method.
=item B<%e{...}>
A block to be eval'ed. You may use $self to refer to the L<App::AltSQL::Term> object
=item B<%t{...}>
The argument to this option will be passed to L<DateTime> C<strftime> for the current time
=back
=item B<plugins>
An array of plugin names for the main namespace.
=item B<view_plugins>
An array of View plugin names to be applied to each View object created
( run in 1.017 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )