aboutsummaryrefslogtreecommitdiff
path: root/lib/App
AgeCommit message (Collapse)AuthorFiles
2017-03-15Minor changesperlSergey Poznyakoff1
* lib/App/Beam/Config.pm (check_mandatory): Remove (fixup): Rewrite to implement mandatory variable checking.
2017-03-13Implement the 'lint' subcommand.Sergey Poznyakoff2
2017-03-13Keep file names in the history.Sergey Poznyakoff5
Each backup method takes an additional argument - a history item object - and is supposed to store there the names of the files it created. This information will then be used when expiring backups and, eventually, when restoring from them. * lib/App/Beam/Backend/Tar.pm (backup): Take Item object as the 2nd parameter. Add names of the created file to it. * lib/App/Beam/Backup.pm (run): Pass the Item object to the backend method. * lib/App/Beam/History/Item.pm: New file. * lib/App/Beam/History/Record.pm (begin_entry): Rename to begin_item (entries): Rename to items. (entry_names): Rename to item_names. (finish_entry): Rename to finish_item. * lib/App/Beam/List.pm (run): List file names in verbose mode.
2017-03-10Implement the backup --redo optionSergey Poznyakoff4
* lib/App/Beam.pm (isscalar): Rename to isvariable to finish 90cfc43a. * lib/App/Beam/Backup.pm: New option: --redo. * lib/App/Beam/History.pm (drop): New method. * lib/App/Beam/History/Record.pm (reset): New method.
2017-03-10Ensure consistent exit code; standardize verbosity levelsSergey Poznyakoff5
2017-03-10Initial implementation of the restore subcommandSergey Poznyakoff9
* lib/App/Beam/History.pm: New file. * lib/App/Beam/History/Entry.pm: New file. * lib/App/Beam/History/Record.pm: New file. * lib/App/Beam.pm (lock,unlock) (compute_triplet,status_result) (set_result): Remove. Use App::Beam::History instead. (begin): Create a History object. (end): Save the History object. (check_items): New method. * lib/App/Beam/Backend.pm (status): Remove. (record, restore): New method. * lib/App/Beam/Restore.pm: New file. * beam: Implement restore subcommand. * lib/App/Beam/Backend/Tar.pm: Likewise. * MANIFEST: Update. * lib/App/Beam/Backup.pm: Update. * lib/App/Beam/List.pm: Update.
2017-03-09Implement informational options for each subcommandSergey Poznyakoff2
* Makefile.PL: Update. * beam (VERSION): New variavble. Analyze informational options prior to invoking the selected module's run method. * lib/App/Beam/Backup.pm: Add POD markup. * lib/App/Beam/List.pm: Likewise.
2017-03-08Minor fixesSergey Poznyakoff1
2017-03-07Store backup results for each backup item individuallySergey Poznyakoff6
* lib/App/Beam.pm (RESULT_*): New constants. (set_result): Take 3 arguments. * lib/App/Beam/Backend/Tar.pm (backup): Capture stderr. * lib/App/Beam/Backup.pm: Check number of command line arguments. * lib/App/Beam/Command.pm (set_logger): New method. * lib/App/Beam/List.pm: New command line option --verbose.
2017-03-07Catch exceptions in open3Sergey Poznyakoff2
2017-03-07Initial implementation of the list subcommandSergey Poznyakoff5
* MANIFEST: Update * lib/App/Beam/List.pm: New file. * beam (list): New subcommand * lib/App/Beam.pm: End with 1; * lib/App/Beam/Command.pm: Likewise. * lib/App/Beam/Config.pm: Likewise. * lib/App/Beam/Config/Locus.pm: Likewise.
2017-03-07Implement tar backupSergey Poznyakoff6
* lib/App/Beam/Config.pm (get): Return dereferenced array and hash refs. (__lint): Fix array collection. * lib/App/Beam.pm (%parameters): Mark unhandled keywords as arrays (logger): Read from fd, if passed as the first argument. (logcommand): New method. * lib/App/Beam/Backend.pm: New file. * lib/App/Beam/Backend/Tar.pm: New file. * lib/App/Beam/Backup.pm (run): Assume result OK, unless already set otherwise. * lib/App/Beam/Command.pm: New file. * MANIFEST: Update.
2017-03-04Improve config syntax verification.Sergey Poznyakoff1
Fix processing of the '*' entry in the syntax hashes. The entry '*' => '*' in the syntax hash declares that any settings and any subsections are also allowed.
2017-03-04Improve the lint methodSergey Poznyakoff1
* lib/App/Beam/Config.pm (parse_section): Return a tuple. Take locus as parameter. Set locations for all intermediary sections. (check_mandatory): Use the 'select' callback if it is defined. (readconfig): Take exactly two arguments. (lint): Rewrite.
2017-03-04Always keep locus with each statement; phase out the locations keyword.Sergey Poznyakoff3
2017-03-03Locus: correctly handle uninitialized locationsSergey Poznyakoff1
2017-03-03Implement lint() methodSergey Poznyakoff1
* lib/App/Beam/Config.pm: Keep count of errors in the error_count member. (getref): Take into account the {ci} setting. (flatten): Minor fix. (lint): New method. * t/TestConfig.pm (lint): Overload method. * t/conf06.t: New test case.
2017-03-02Small improvement of the config parser.Sergey Poznyakoff1
* lib/App/Beam/Config.pm: Keep ordinal numbers (relative positions in the source file) of statements. (flatten): Rewrite method. * t/TestConfig.pm: Update.
2017-03-02Document App::Beam::ConfigSergey Poznyakoff1
Rename the isscalar method to isvariable.
2017-03-02Rework configuration class to support optional "locations" mode.Sergey Poznyakoff4
When location => 1 is passed to the constructor, the created class will store source locations along with the configuration variables. * lib/App/Beam/Config.pm (error): Use the passed Locus object. (new): New kw parameter "locations" controls whether source locations are stored along with each configuration variable. (check_mandatory): Handle wildcard parameter declarations. (readconfig): Pass locations to all functions as Locus objects. Store them if required. (get): Rewrite to retrieve locations on request. (isset,issection,isscalar): Rewrite. (set): Handle the locations mode. (names_of): New method. * lib/App/Beam/Config/Locus.pm: New file. * MANIFEST: Add new files. * lib/App/Beam.pm (parameters): Declare "backend" and "item" sections. (new): Enable locations mode. (logger, logger_line): Redo to make use of the passed Locus object. (load_backends): New method. * t/TestConfig.pm: Rewrite. * t/conf01l.t: New test case. * t/conf02l.t: New test case. * t/conf03l.t: New test case. * t/conf04l.t: New test case. * t/conf05l.t: New test case. * t/locus.t: New test case.
2017-02-28Improve run-time configuration framework; provide boilerplate for the backup ↵Sergey Poznyakoff3
subcommand
2017-02-16Implement list configuration variablesSergey Poznyakoff1
2017-02-16Improve config parser. Add more tests.Sergey Poznyakoff1
* MANIFEST: Update. * lib/App/Beam/Config.pm: Rewrite 'error' as method. Check for missing mandatory statements. * t/TestConfig.pm: New file. * t/conf01.t: New file. * t/conf02.t: New file. * t/conf03.t: New file. * t/config.t: Remove. * t/f.conf: Remove.
2017-02-16Starting rewrite in PerlSergey Poznyakoff1

Return to:

Send suggestions and report system problems to the System administrator.