Revision history for Perl extension Metabrik. 1.41.0 Thu 7 May 16:12:13 CEST 2020 - update: Metabrik source code repository moved to Github - update: copyright notice 1.40.1 Wed 1 May 13:57:40 CEST 2019 - bugfix: return undef on error, even when logging level is set to 0 1.40.0 Wed 13 Mar 11:00:33 CET 2019 - update: copyright notice - new: support for Kali Linux operating system 1.31.0 Tue 30 Oct 18:07:00 CET 2018 - bugfix: creates ~/metabrik on first run if it doesn't exist 1.30.0 Fri 12 Jan 10:14:40 CET 2018 - feature: no more needed to instanciate core::context, core::global or core::log Briks when instanciating a Brik. You can now use a Brik as a standard Perl module. - new: default core::loglite Brik. Avoid the need to instanciate all core::* Briks. - deprecated: debug Attribute in logging Briks. Just use level > 3 and display debug information if needed. 1.27.0 Thu 2 Nov 10:21:36 CET 2017 - bugfix: correctly handle baseclass Briks when not_used - bugfix: metabrik: brik_preinit_no_checks and brik_init_no_checks Commands 1.26.1 Mon 6 Feb 07:35:11 CET 2017 - bugfix: pod for brik_preinit_no_checks and brik_init_no_checks Commands 1.26.0 Sat 4 Feb 17:27:20 CET 2017 - new: metabrik: brik_preinit_no_checks and brik_init_no_checks Commands 1.25.1 Fri 4 Nov 07:14:33 CET 2016 - update: core::context: print reused Brik as info in reuse Command - update: core::shell: capture_mode turned off by default: it makes users uncertain of what is happening when executing external commands. 1.25.0 Tue 11 Oct 19:03:53 CEST 2016 - bugfix: brik::tool update feature broke. We had to update version for that. 1.24.1 Sat 8 Oct 16:02:36 CEST 2016 - bugfix: documentation for new cmd and full_pwd Commands in core::shell 1.24.0 Thu 6 Oct 19:10:40 CEST 2016 - feature: metabrik: make local repository takes precedence over system repositories 1.23.1 N/A - bugfix: metabrik: add default repository to %INC so users can use it - bugfix: core::context: check validity of %INC entries before reloading in reuse Command - bugfix: core::shell: check an alias exists before trying to display it 1.23.0 Tue 4 Oct 06:53:06 CEST 2016 - feature: core::shell: capture_mode new Attribute, default to true. Captures every external Commands output by default. - feature: core::shell: full_pwd new Command. Returns the full path to current working directory. - bugfix: core::context: sets $USE variable on use when a Brik requires dependencies - bugfix: core::shell: handles correctly the exit Command so it returns a code number - bugfix: core::global: sets repository Attribute default value - bugfix: core::global: creates directories for default Attributes homedir, datadir and repository 1.22.0 Fri Apr 15 18:09:26 CEST 2016 - feature: core::log: allow_log_override Attribute to allow overriding default log Brik Turned off by default to avoid messing with logging. - feature: core::log: caller_info_prefix, caller_verbose_prefix, ..., caller_debug_prefix Attributes to prefix log messages by Brik name (or not). - bugfix: core::context: do initialize core::context from within new_brik_run Command - new: core::log: message Command 1.21.2 N/A - bugfix: Metabrik: preinit and check_use_properties to be run only one time per Brik 1.21.1 Wed Mar 2 07:46:01 CET 2016 - bugfix: core::shell: $HOME set to /tmp if not defined - bugfix: core::log: must preinit before init for default Attributes values to be properly set - bugfix: metabrik: checks properties and default Attribute values in brik_preinit: $self->datadir can now be used from within brik_use_properties() 1.21.0 Fri Feb 5 07:50:14 CET 2016 - feature: core::shell: ps1 Attribute to customize prompt (limited) - bugfix: core::shell: run_run Command to call execute Command from shell::history and not exec Command - update: core::log: brik_preinit() moved from Repository log::* so replacing a log Brik by another one becomes transparent for users. - update: Metabrik: more checks and verbose on Brik creation failure (when new() calls fail) 1.20.5 Fri Jan 29 18:57:06 CET 2016 - bugfix: Metabrik: brik_help_run_empty_array_arg Command to check if Argument is an ARRAY 1.20.4 Tue Jan 26 21:01:10 CET 2016 - update: metabrik: do not prefix help strings with Brik name nor Command name when user fails to use a Command the right wat - bugfix: core::shell: display Brik name and Command name when user calls the help Command 1.20.3 Tue Jan 19 14:17:32 CET 2016 - bugfix: makes logging to STDOUT unbuffered by default when using core::log 1.20.2 Wed Jan 13 18:41:49 CET 2016 - bugfix: now truly disable all code to rewrite aliases to complete command: broken with Term::ReadLine::Gnu >= 1.27 And put alias_completion Attribute to 0 by default. 1.20.1 Tue Jan 12 20:18:55 CET 2016 - bugfix: disabled code to rewrite aliases to complete command: broken with Term::ReadLine::Gnu >= 1.27 1.20.0 Sat Jan 2 18:49:52 CET 2016 - FEATURE: core::context: allow one-liners with a Brik Command. Example: perl -MMetabrik::Core::Context -e 'Metabrik::Core::Context->new_brik_run("client::dns", "mx_lookup", "gmail.com")' - FEATURE: core::context: allow to pass Code, ARRAY or HASH as Argument to set Command - FEATURE: core::global: repository Attribute to store default Briks repository - FEATURE: easy update: thanks to brik::tool from Repository - FEATURE: pod: most of the documentation is written - FEATURE: Metabrik: need_packages and need_services Properties to easy installation of needed packages and services to start. - UPDATE: Metabrik: only core::* Briks now, all others moved to Repository - UPDATE: Metabrik: brik_preinit, brik_init and brik_fini are now official Commands - new: Metabrik: brik_help_run_undef_arg, brik_help_run_invalid_arg, brik_help_run_empty_array_arg, brik_help_run_file_not_found, brik_help_set_undef_arg, brik_help_run_must_be_root and brik_help_run_directory_not_found Commands - new: perl::module: use_test Attribute to activate test on module installation - new: Metabrik: brik_checks and brik_help_run_must_be_root Commands - new: Metabrik: new_no_checks, new_from_brik_no_checks and new_from_brik_init_no_checks methods - update: perl::module: install correctly supports ARRAY of modules to install - bugfix: shell::rc, shell::script: add a trailing whitespace on multilines - bugfix: core::shell: when a / was in a command line, it was not interpreted as Perl code - bugfix: core::shell: correctly complete ~ in path when using cd Command - bugfix: core::shell: put args between double-quotes when needed (like for cd Command) 1.11 Sun Nov 22 17:46:43 CET 2015 - FEATURE: core::shell: auto prefix by run if entered command is a used Brik example: perl::module install Class::Gomor is equivalent to: run perl::module install Class::Gomor - FEATURE: Metabrik: brik_author and brik_license Commands and Properties - FEATURE: Metabrik: auto tagging of Briks based on Repository, Category and Name - FEATURE: Metabrik: optional_modules and optional_binaries Properties. Also added brik_has_binary and brik_has_module Commands. - new: core::context: get_used Command to return a reference to a used Brik - new: brik::search: command Command to search a Brik by existing Commands - bugfix: shell::script: allow blank lines and comments - bugfix: core::shell: correctly stop a run Command on SIGINT - bugfix: Metabrik: return error and not info on bad usage for some brik_has_* Commands - bugfix: Metabrik: correctly call brik_fini on core::context exiting 1.10 Tue Oct 27 20:13:36 CET 2015 - FEATURE: core::context: allows to pass complex structs arguments to run and set Commands Example: run network::arp scan $info->{subnet} - FEATURE: core::context: allows also to execute Perl code within an Argument of a run Command Example: run client::dns ptr_lookup "[ map { @$_ } values %$RUN ]" - FEATURE: core::shell: allows to complete aliases (can be disabled via aliases_completion Attribute - FEATURE: shell::command: use_sudo Attribute to launch sudo on executing external command - FEATURE: shell::command: file globbing enabled with capture Command - UPDATE: moved attributes_default() from brik_use_properties to brik_properties when there is no need to use $self. It allows instanciated Attributes inheritage to work. - UPDATE: shell::command: do not print STDERR when using capture Command when there is no STDERR string captured. - new: shell::command: execute Command to use capture_mode Attribute to launch either capture or system Command - bugfix: core::context: save_state to use Metabrik brik_attributes Command to correctly retrieve all Brik Attributes even those inherited - bugfix: core::shell: display error on chdir() failure - bugfix: core::shell: escapes " character when executing a multiline Perl/Metabrik Code example: my $test = 'root' for (0..1) { 'run shell::command system "ls /$test"' } - bugfix: Metabrik: error checking within new_from_brik_init Command - bugfix: Metabrik: logging correctly on class calls to _log_*() 1.09 N/A - FEATURE: core::shell/core::context: supports passing Perl code directly as Commands Arguments. Example: run database::sqlite create MyTable "[ qw(field1 field2) ]" - RENAME: core::shell: help_show_brik_attributes => help_show_base_attributes - RENAME: core::shell: help_show_brik_commands => help_show_base_commands - RENAME: core::shell: comp_show_brik_attributes => comp_show_base_attributes - RENAME: core::shell: comp_show_brik_commands => comp_show_base_commands - UPDATE: core::shell: rework of help/completion scheme - UPDATE: core::shell: help Command rewritten to show help for Metabrik only (not Term:Shell) - bugfix: core::shell: use unique match to run Commands - bugfix: shell::command: correctly check return value from system Command for errors - new: core::shell: get_help/comp_attributes and get_help/comp_commands Commands - new: Metabrik: brik_base_attributes, brik_inherited_attributes, brik_own_attributes Commands - new: Metabrik: brik_base_commands, brik_inherited_commands, brik_own_commands Commands 1.08 Thu Mar 19 06:48:34 CET 2015 - FEATURE: core::shell: run executable commands found in PATH through system Command - UPDATE: shell::command: now use IPC::Run3 to capture shell commands output - update: shell::command: system Command now returns $? on success - update: Metabrik: display every missing items from brik_require_*_check() before erroring - update: new dependance on IPC::Run3 1.07 Sun Mar 8 17:52:37 CET 2015 - bugfix: shell::history: correctly writes $* variables when calling history Commands - new: shell::rc: create an alias to make it easy to switch to root from Shell - new: brik::search and perl::module Briks integrated in main distribution - remove: no more metabrik-cpanm, enforce use of standard cpanm 1.06 Fri Feb 27 07:17:59 CET 2015 - bugfix: shell::command: go trough PATH to find a cmd to run (like less PAGER) - bugfix: core::shell: on SIGINT handling, now allows to break multiline and run Commands - bugfix: core::shell: allow user to get out of multiline mode by hitting Ctrl+C - bugfix: core::shell: better management of Metabrik Commands in multiline mode => you can put Metabrik Commands within single quotes anywhere - update: shell::script: load Command can take an optional file parameter - update: metabrik, shell::rc/script, core::shell: easier handling of rc file loading - new: metabrik: --script-rc argument to load a specific rc file for scripts 1.05 Tue Feb 10 08:01:53 CET 2015 - FEATURE: core::shell: multiline mode do not require lines to end with `\' anymore - FEATURE: core::shell: Metabrik commands are directly translated to Perl code => Note: no alias support for now, only set, get, run and use are handled - bugfix: shell::command: check for error code from `` call - bugfix: Metabrik: do not override default Attributes with brik_use_properties if already set by brik_properties - bugfix: Metabrik: correctly prints help Command details when overriden by subclass - new: Metabrik: brik_preinit() creates a datadir directory per Brik if datadir property exists. - update: Metabrik: default directory is set to $HOME/metabrik i/o /tmp 1.04 Sun Jan 4 13:07:56 CET 2015 - bugfix: core::context: don't overwrite $RUN when run Command fails - bugfix: core::shell: help Command must not overwrite $RUN variable - bugfix: core::log: error Command must return undef, this is the error status - new: Metabrik: new_from_brik_init() base method - copyright: update to 2015 1.03 Sat Dec 20 17:48:44 CET 2014 - bugfix: shell::script: return proper values from run cmds - bugfix: shell::script: disable SIGINT when running a script - update: core::shell: always complete Briks on use, even when Brik is already used - new: core::global: exit_on_sigint Attribute, for use in scripts - new: core::shell: help_show_inherited and comp_show_inherited Attributes to respectively show inherited Attributes on help Commands and show inherited Attributes when using completion - new: bin/metabrik: will load .metabrik_script_rc (if exists) when executing a script 1.02 Sun Nov 30 12:28:07 CET 2014 - bugfix: bin/metabrik: document --script option - bugfix: core::context: brik_init on first run only when it is not a base class Command - new: metabrik: new_from_brik() method 1.01 Sat Nov 22 17:05:46 CET 2014 - UPDATE: brik_init: sets init_done Attribute only on success, must be called by subclass at the end - bugfix: metabrik: fix inheritance of Briks properties over class hierarchy, like setting default Attributes - bugfix: core::context: correctly stops run Commands in case brik_init has failed - bugfix: core::context: fix save_state and restore_state Commands return value on success - bugfix: core::shell: correctly handle current working directory - new: core::shell: pwd Command 1.00 Sun Nov 16 17:07:12 CET 2014 - first public release