URI: 
       timproved zone configuration: allow multiple views - gitzone - git-based zone management tool for static and dynamic domains
  HTML git clone https://git.parazyd.org/gitzone
   DIR Log
   DIR Files
   DIR Refs
       ---
   DIR commit 568aef2c60e8b76545c8d5600f6a08fe25d88189
   DIR parent 3614b92c53ccb4955eaa665a9c264b50bb8ce1ae
  HTML Author: tg(x) <*@tg-x.net>
       Date:   Sun, 13 Feb 2011 12:41:55 +0100
       
       improved zone configuration: allow multiple views
       
       Diffstat:
         M bin/gitzone                         |       3 ++-
         M etc/gitzone.conf                    |      20 ++++++++++++++------
       
       2 files changed, 16 insertions(+), 7 deletions(-)
       ---
   DIR diff --git a/bin/gitzone b/bin/gitzone
       t@@ -196,7 +196,8 @@ sub install_zones {
            my $zone = basename $f;
            my $view = $zones->{$user}->{$f};
            $view = $default_view if $view eq 1;
       -    `$rndc reload '$zone' $class $view`;
       +    $view = [$view] if ref $view ne 'ARRAY';
       +    `$rndc reload '$zone' $class $_` for @$view;
          }
        
          unlink $list_file;
   DIR diff --git a/etc/gitzone.conf b/etc/gitzone.conf
       t@@ -28,20 +28,28 @@ $class = 'IN';
        # default view of the zones (optional)
        $default_view = '';
        
       -# Defines which files in a user's repo can be loaded as zone files,
       -# this is merged with $zones_conf above, values specified here overwrite
       -# you can also define which view a zone belongs to (1 means $default_view).
       +# $zones defines which files in a user's repo can be loaded as zone files.
       +#
       +# You can define which view a zone belongs to, this can be
       +#  - a string
       +#  - an array with multiple views is allowed
       +#  - or 1 to use the $default_view
       +#
        # The basename of the files listed must be identical to the zone name.
        # If a file name starts with a / it's treated as a BIND config file
        # and every zone listed there is allowed for the user.
       +#
        # The -default key is tried first for every user, then it's merged with the user-specific config.
       +
        $zones = {
        #  -default => {
       -#    "/etc/bind/users/$user.conf" => 1, # allow every zone from this file, use the default view
       +#    "/etc/bind/users/$user.conf" => 1,             # allow every zone from this file, use the default view
        #  },
        #  user1 => {
        #    '/etc/bind/users/user1-local.conf' => 'local', # allow every zone from this file, use the local view
       -#    'example.com' => 1,                # allow example.com, use the default view
       -#    'local/example.net' => 'local',    # allow example.net, use the local view
       +#    'example.com' => 1,                            # allow example.com, use the default view
       +#    'local/example.net' => 'local',                # allow example.net, use the local view
       +#    'extern/example.net' => 'extern',              # allow example.net, use the extern view
       +#    'common/example.net' => [qw(extern local)],    # allow example.net, use both the local & extern view
        #  },
        }