anchor.diff:      ${cfg.preHook}
     '' + optionalString cfg.doInit ''
       # Run borg init if the repo doesn't exist yet
  -    if ! borg list > /dev/null; then
  -      borg init \
  +    if ! borg list ${cfg.extraArgs} > /dev/null; then
  +      borg init ${cfg.extraArgs} \
           --encryption ${cfg.encryption.mode} \
           $extraInitArgs
         ${cfg.postInit}
       fi
     '' + ''
  -    borg create \
  +    borg create ${cfg.extraArgs} \
         --compression ${cfg.compression} \
         --exclude-from ${mkExcludeFile cfg} \
         $extraCreateArgs \
         "::$archiveName$archiveSuffix" \
         ${escapeShellArgs cfg.paths}
     '' + optionalString cfg.appendFailedSuffix ''
  -    borg rename "::$archiveName$archiveSuffix" "$archiveName"
  +    borg rename ${cfg.extraArgs} \
  +      "::$archiveName$archiveSuffix" "$archiveName"
     '' + ''
       ${cfg.postCreate}
     '' + optionalString (cfg.prune.keep != { }) ''
  -    borg prune \
  +    borg prune ${cfg.extraArgs} \
         ${mkKeepArgs cfg} \
         --prefix ${escapeShellArg cfg.prune.prefix} \
         $extraPruneArgs
  
positive.code:             ];
            };
  
            doInit = mkOption {
              type = types.bool;
              description = ''
  
negative.code:               The latter is available as <literal>$exitStatus</literal>.
              '';
              default = "";
            };
  
            extraArgs = mkOption {
              type = types.str;
              description = ''
                Additional arguments for all <command>borg</command> calls the
                service has. Handle with care.
              '';
              default = "";
              example = "--remote-path=borg1";
            };
  
            extraInitArgs = mkOption {
  