---
name: "RoPkg::Rsync::ConfFile"
section: "3pm"
platform: "linux"
package: "libropkg-perl"
version: "0.4-1.3"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/RoPkg::Rsync::ConfFile"
---

# RoPkg::Rsync::ConfFile(3pm)

## NAME

RoPkg::Rsync::ConfFile

## DESCRIPTION

RoPkg::Rsync::ConfFile is a class used to manipulate rsync configuration files. Is capable to maintaine the order of the modules, and even keep your comments and empty lines intact.

## SYNOPSIS

```
 #!/usr/bin/perl

 use warnings;
 use strict;
 sub main {
   my $cf = new RoPkg::Rsync::ConfFile(filename => '/etc/rsyncd.conf');
   $cf->Write('/tmp/new_rsyncd.conf');
   return 0;
 }
 main();
```

## METHODS

All methods, throw the *OutsideClass* exception, if you use them as class methods.  Besides  *OutsideClass* the methods are throwing other  exceptions as well. Refer to each method documentation for more information.

### new(%hash)

The class constructor. Accepts a hash as parameter. At this moment only one parameter can be specified inside the hash: **filename** . If this parameter is present, the file specified is parsed and loaded into the object.

### AddParam($pname, $pvalue)

Add a new global parameter named **$pname** with value **$value**.

### AddComment($pval)

Add a new global comment with value **$pval**

### AddBlank($bval)

Add a new global blank line with value **$bval**

### AddNode($node)

Adds a new RoPkg::Rsync::Node object to the current object. Before the node is added, the nodes list is checked for duplicates of the object. If a duplicate is found, the method does nothing.

**Exceptions**:

If `$node` is not a instance of RoPkg::Rsync::Node, *Param::Wrong* exception is raised.

### DelNode($node\_name)

Removes a node from the nodes list. The nodes are searched by their names. Returns -1 if the node was not found, the new number of nodes otherwise.

### HasNode($node\_name)

Returns 1 if the node with name **$node\_name** was found in the nodes list, 0 otherwise.

### Clean()

Clean the object. Removes all information (the nodes list, statistics, etc). Always returns 1.

### Parse($filename)

Parse the configuration file **$filename** and returns the number of nodes. If **$filename** is not defined *Param::Missing* exception is raised. If the path does not point to a existing file, *File::NotFound* exception is raised. If the file could not be opened, *File::Open* exception is raised.

### Write($path)

Write the configuration into the file specified by path **$path**.

### ToString()

Returns the string representation of the configuration file.

## PREREQUISITES

perl 5.008 (or later) is required. Besides perl, you must have the following:

- \*) RoPkg::Exceptions

  - \*) Scalar::Util

  - \*) English

  ## SEE ALSO

RoPkg::Rsync::Atom RoPkg::Rsync::ConfFile RoPkg::Exceptions

## AUTHOR

Subredu Manuel \<diablo@iasi.roedu.net\>

## LICENSE

Copyright (C) 2005 Subredu Manuel.  All Rights Reserved. This module is free software; you can redistribute it  and/or modify it under the same terms as Perl itself. The LICENSE file contains the full text of the license.
