/[smeserver]/rpms/e-smith-devtools/sme10/e-smith-devtools-2.6.0-bz11993-backup.patch
ViewVC logotype

Contents of /rpms/e-smith-devtools/sme10/e-smith-devtools-2.6.0-bz11993-backup.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Tue Jun 14 04:12:44 2022 UTC (2 years, 4 months ago) by jpp
Branch: MAIN
CVS Tags: e-smith-devtools-2_6_0-12_el7_sme, e-smith-devtools-2_6_0-11_el7_sme
* Tue Jun 14 2022 Jean-Philippe Pialasse <tests@pialasse.com> 2.6.0-11.sme
- ease backup include and exclude of contribs [SME: 11993]

1 diff -Nur --no-dereference e-smith-devtools-2.6.0.old/Backup.pm e-smith-devtools-2.6.0/Backup.pm
2 --- e-smith-devtools-2.6.0.old/Backup.pm 1969-12-31 19:00:00.000000000 -0500
3 +++ e-smith-devtools-2.6.0/Backup.pm 2022-06-14 00:05:43.785000000 -0400
4 @@ -0,0 +1,136 @@
5 +#----------------------------------------------------------------------
6 +# copyright (C) 2013-2022 Koozali Foundation
7 +#
8 +# This program is free software; you can redistribute it and/or modify
9 +# it under the terms of the GNU General Public License as published by
10 +# the Free Software Foundation; either version 2 of the License, or
11 +# (at your option) any later version.
12 +#
13 +# This program is distributed in the hope that it will be useful,
14 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
15 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 +# GNU General Public License for more details.
17 +#
18 +# You should have received a copy of the GNU General Public License
19 +# along with this program; if not, write to the Free Software
20 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 +#
22 +#----------------------------------------------------------------------
23 +package esmith::Build::Backup;
24 +
25 +use strict;
26 +use warnings;
27 +use Exporter;
28 +use File::Basename;
29 +use File::Path;
30 +
31 +our @ISA = qw(Exporter);
32 +our @EXPORT = qw();
33 +our @EXPORT_OK = qw(
34 + backup_excludes
35 + backup_includes
36 + );
37 +our %EXPORT_TAGS = (
38 + all => [ qw!backup_excludes backup_includes! ]
39 + );
40 +
41 +our $VERSION = sprintf '%d.%03d', q$Revision: 1.0 $ =~ /: (\d+).(\d+)/;
42 +
43 +=head1 NAME
44 +
45 +esmith::Build::Backup - A library for creating backup include and exclude during rpm construction.
46 +
47 +=head1 SYNOPSIS
48 +
49 + use esmith::Build::Backup qw(:all);
50 +
51 + backup_includes("smeserver-ContribName", qw(/list/of/path /you/need/to /include/to /backup));
52 +
53 +=head1 DESCRIPTION
54 +
55 +=cut
56 +
57 +=head2 backup_includes
58 +
59 +This function populates both /etc/backup-data.d/ for core console backup and template for
60 +/etc/dar/DailyBackup.dcf which is dar workstation backup file, if the directories do
61 +not exist, it will create them.
62 +
63 + ie. backup_includes("smeserver-ContribName", qw(/list/of/path /you/need/to /include/to /backup))
64 +
65 +=cut
66 +sub backup_includes
67 +{
68 + my ($name, @paths) = @_;
69 + my $dir = "root/etc/e-smith/templates/etc/dar/DailyBackup.dcf";
70 + my $core = "root/etc/backup-data.d";
71 + my $filename = "$dir/41go-into-$name";
72 + my $corefilename = "$core/${name}.include";
73 +
74 + unless (-d $dir)
75 + {
76 + mkpath $dir or die "Could not create dir $dir: $!";
77 + }
78 + unless (-d $core)
79 + {
80 + mkpath $core or die "Could not create dir $core: $!";
81 + }
82 +
83 + open(FH, '>', $filename) or die $!;
84 + open(CFH, '>', $corefilename) or die $!;
85 + foreach my $str (@paths)
86 + {
87 + $str =~ s|/$||;
88 + print CFH "$str\n";
89 + $str =~ s|^/||;
90 + print FH "--go-into $str\n";
91 + }
92 + close(FH);
93 + close(CFH);
94 + # add template expand to smeserver-ContribName-update
95 + use esmith::Build::CreateLinks qw(templates2events);
96 + templates2events("/etc/dar/DailyBackup.dcf","${name}-update");
97 +}
98 +
99 +=head2 backup_excludes
100 +
101 +This function populates both /etc/backup-data.d/ for core console backup and template for
102 +/etc/dar/DailyBackup.dcf which is dar workstation backup file, if the directories do
103 +not exist, it will create them.
104 +
105 + ie. backup_excludes("smeserver-ContribName", qw(/list/of/path /you/need/to /exclude/from /backup))
106 +
107 +=cut
108 +sub backup_excludes
109 +{
110 + my ($name, @paths) = @_;
111 + my $dir = "root/etc/e-smith/templates/etc/dar/DailyBackup.dcf";
112 + my $core = "root/etc/backup-data.d";
113 + my $filename = "$dir/46prune-$name";
114 + my $corefilename = "$core/${name}.exclude";
115 +
116 + unless (-d $dir)
117 + {
118 + mkpath $dir or die "Could not create dir $dir: $!";
119 + }
120 + unless (-d $core)
121 + {
122 + mkpath $core or die "Could not create dir $core: $!";
123 + }
124 +
125 + open(FH, '>', $filename) or die $!;
126 + open(CFH, '>', $corefilename) or die $!;
127 + foreach my $str (@paths)
128 + {
129 + $str =~ s|/$||;
130 + print CFH "$str\n";
131 + $str =~ s|^/||;
132 + print FH "--prune $str\n";
133 + }
134 + close(FH);
135 + close(CFH);
136 + # add template expand to smeserver-ContribName-update
137 + use esmith::Build::CreateLinks qw(templates2events);
138 + templates2events("/etc/dar/DailyBackup.dcf","${name}-update");
139 +}
140 +

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed