Bug 11926: Add new sysprefs and fix encoding issues
[koha.git] / misc / cronjobs / share_usage_with_koha_community.pl
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4
5 use Pod::Usage;
6 use Getopt::Long;
7
8 use C4::Context;
9 use C4::UsageStats;
10 use POSIX qw(strftime);
11
12 my ( $help, $verbose, $force );
13 GetOptions(
14     'h|help'    => \$help,
15     'v|verbose' => \$verbose,
16     'f|force'   => \$force,
17 ) || pod2usage(1);
18
19 if ($help) {
20     pod2usage(1);
21 }
22
23 unless ( C4::Context->preference('UsageStatsShare') ) {
24     pod2usage(
25 q|
26 The UsageStats system preference is not set.
27 If your library wants to share their usage statistics with the Koha community, you have to switch on this system preference
28 |
29     );
30     exit 1;
31 }
32
33 my $need_update = ($force ? 1 : C4::UsageStats::NeedUpdate() );
34
35 if ($need_update) {
36     say "Data need to be updated" if $verbose;
37     my $report = C4::UsageStats::BuildReport();
38     C4::UsageStats::ReportToCommunity($report);
39     C4::Context->set_preference( 'UsageStatsLastUpdateTime',
40         strftime( "%s", localtime ) );
41 }
42 elsif ($verbose) {
43     say "Data don't need to be updated";
44 }
45
46 =head1 NAME
47
48 share_usage_with_koha_community.pl - Share your library's usage with the Koha community
49
50 =head1 SYNOPSIS
51
52 share_usage_with_koha_community.pl [-h|--help] [-v|--verbose]
53
54 If the UsageStatsShare system preference is set, you can launch this script to share your usage with the Koha community.
55
56 Collecting Koha usage statistics will help developpers to know how Koha is used across the world.
57
58 This script will sent the volumetry for the biblio and authority records, issues, reserves, orders and subscription.
59
60 Only the total number is retrieved. In no case private data will be shared!
61
62 In order to know which parts of Koha modules are used, this script will collect some system preference values.
63
64 If you want to tell us who you are, you can fill the UsageStatsLibraryName system preference with your library name, UsageStatsLibraryUrl, UsageStatsLibraryType and/or UsageStatsCountry.
65
66 All these data will be analysed on the http://hea.koha-community.org Koha community website.
67
68 IMPORTANT : please do NOT run the cron on the 1st, but on another day. The idea is to avoid all
69 Koha libraries sending their data at the same time ! So choose any day between 1 and 28 !
70
71 =head1 OPTIONS
72
73 =over
74
75 =item B<-h|--help>
76
77 Print a brief help message
78
79 =item B<-v|--verbose>
80
81 Verbose mode.
82
83 =item B<-f|--force>
84
85 Force the update.
86
87 =back
88
89 =head1 AUTHOR
90
91 Alex Arnaud <alex.arnaud@biblibre.com>
92
93 Jonathan Druart <jonathan.druart@biblibre.com>
94
95 =head1 COPYRIGHT
96
97 Copyright 2014 BibLibre
98
99 =head1 LICENSE
100
101 This file is part of Koha.
102
103 Koha is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
104 Foundation; either version 3 of the License, or (at your option) any later version.
105
106 You should have received a copy of the GNU General Public License along
107 with Koha; if not, write to the Free Software Foundation, Inc.,
108 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
109
110 =cut