Bug 13287: (QA follow-up) Final polishing
[koha_ffzg] / misc / cronjobs / purge_suggestions.pl
index 6dff5db..543d629 100755 (executable)
 # along with Koha; if not, see <http://www.gnu.org/licenses>.
 
 use Modern::Perl;
-use utf8;
 
 BEGIN {
-
     # find Koha's Perl modules
     # test carefully before changing this
     use FindBin;
@@ -34,48 +32,39 @@ use C4::Suggestions;
 use C4::Log;
 use C4::Context;
 
-my ( $help, $days );
+my ( $help, $days, $confirm );
 
 GetOptions(
     'help|?' => \$help,
-    'days=s' => \$days,
+    'days:i' => \$days,
+    'confirm'=> \$confirm,
 );
 
 my $usage = << 'ENDUSAGE';
-This script delete old suggestions
+This script deletes old suggestions
 Parameters:
 -help|? This message
 -days TTT to define the age of suggestions to delete
+-confirm flag needed to confirm purge operation
+
+The days parameter falls back to the value of system preference
+PurgeSuggestionsOlderThan. Suggestions are deleted only for a positive
+number of days.
 
 Example:
 ENDUSAGE
-$usage .= $0 . " -days 30\n";
+$usage .= $0 . " -confirm -days 30\n";
 
 # If this script is called without the 'days' parameter, we use the system preferences value instead.
-if ( !defined($days) && !$help ) {
-    my $purge_sugg_days =
-      C4::Context->preference('PurgeSuggestionsOlderThan') || q{};
-    if ( $purge_sugg_days ne q{} and $purge_sugg_days >= 0 ) {
-        $days = $purge_sugg_days;
-    }
-}
+$days = C4::Context->preference('PurgeSuggestionsOlderThan') if !defined($days);
 
 # If this script is called with the 'help' parameter, we show up the help message and we leave the script without doing anything.
-if ($help) {
+if( !$confirm || $help || !defined($days) ) {
+    print "No confirm parameter passed!\n\n" if !$confirm && !$help;
     print $usage;
-    exit;
-}
-
-if ( defined($days) && $days ne q{} && $days > 0 ) {
+} elsif( $days > 0 ) {
     cronlogaction();
     DelSuggestionsOlderThan($days);
-}
-elsif (!defined($days)){
-    print $usage;
-}
-elsif ( $days == 0 ) {
-    warn "This script is not executed with 0 days. Aborted.\n";
-}
-else {
+} else {
     warn "This script requires a positive number of days. Aborted.\n";
 }