On 5/4/2017 10:35 AM, Paul Fox wrote:
> i guess this question is really about perl syntax, but it might
> be something commonly done by backuppc users, so here goes:
>
> i have the following in my global config:
>
>      $Conf{BackupFilesExclude} = {
>        '/' => [
>       '/proc',
>       '/sys',
>       ],
>        '*' => [
>       '.cache',
>       '.gvfs',
>       'slocate.db',
>       'ID',
>       '*._nobackup_',
>       '*.o'
>          ]
>      };
>
>
> sometimes i wish to augment this list for a particular host:
>
>      $Conf{BackupFilesExclude} = {
>        '/' => [
>       '/home', # /home is backed up separately on this host
>       '/proc',
>       '/sys',
>       ],
>        '*' => [
>       '.cache',
>       '.gvfs',
>       'slocate.db',
>       'ID',
>       '*._nobackup_',
>       '*.o'
>          ]
>      };
>
> clearly it would be cleaner not to have to duplicate the entire
> data structure in the host's config file.
>
> is there a nice perl way to do something like this?  syntax
> intentionally left vague:
>
>      $Conf{BackupFilesExclude} += { ...  '/home' ....}
>
> i'd like to be able to append to either the '*' catchall array
> or a share-specific array.

Off the top of my head, you could do it like this:

push @{$Conf{BackupFilesExclude}{'*'}}, '/dir1', '/dir2', '/dir3';
push @{$Conf{BackupFilesExclude}{'/'}}, '/dir4', '/dir5', '/dir6';

You can also use an array instead of listing the new entries:

push @{$Conf{BackupFilesExclude}{'*'}}, @newstuff;

Untested, so the syntax may not be perfect...

-- 
Bowie

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/

Reply via email to