LICENSE
Copyright [1999-2015] Wellcome Trust Sanger Institute and the EMBL-European Bioinformatics Institute Copyright [2016-2024] EMBL-European Bioinformatics Institute
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
CONTACT
Please email comments or questions to the public Ensembl
developers list at <http://lists.ensembl.org/mailman/listinfo/dev>.
Questions may also be sent to the Ensembl help desk at
<http://www.ensembl.org/Help/Contact>.
NAME
Bio::EnsEMBL::Utils::ConfParser - configuration parser for perl scripts
SYNOPSIS
my $conf = new Bio::EnsEMBL::Utils::ConfParser(
-SERVERROOT => "/path/to/ensembl",
-DEFAULT_CONF => "my.default.conf"
);
# parse options from configuration file and commandline
$conf->parse_options(
'mandatory_string_opt=s' => 1,
'optional_numeric_opt=n' => 0,
);
# get a paramter value
my $val = $conf->param('manadatory_string_op');
DESCRIPTION
This module parses a configuration file and the commandline options passed to a script (the latter superseed the former). Configuration files contain ini-file style name-value pairs, and the commandline options are passed to Getopt::Long for parsing.
The parameter values are consequently accessible via the param() method. You can also create a commandline string of all current parameters and their values to pass to another script.
new
Arg [SERVERROOT] :
String $serverroot - root directory of your ensembl code
Arg [DEFAULT_CONF] :
String $default_conf - default configuration file
Example : my $conf = new Bio::EnsEMBL::Utils::ConfParser(
-SERVERROOT => '/path/to/ensembl',
-DEFAULT_CONF => 'my.default.conf'
);
Description : object constructor
Return type : Bio::EnsEMBL::Utils::ConfParser object
Exceptions : thrown if no serverroot is provided
Caller : general
Status : At Risk
: under development
parse_options
Arg[1..n] : pairs of option definitions and mandatory flag (see below for
details)
Example : $conf->parse_options(
'mandatory_string_opt=s' => 1,
'optional_numeric_opt=n' => 0,
);
Description : This method reads options from an (optional) configuration file
and parses the commandline options supplied by the user.
Commandline options will superseed config file settings. The
string "$SERVERROOT" in the configuration entries will be
replaced by the appropriate value.
The arguments passed to this method are pairs of a Getopt::Long
style option definition (in fact it will be passed to
GetOptions() directly) and a flag indicating whether this
option is mandatory (1) or optional (0).
In addition to these user-defined options, a set of common
options is always parsed. See _common_options() for details.
If you run your script with --interactive the user will be
asked to confirm the parameters after parsing.
All parameters will then be accessible via $self->param('name').
Return type : true on success
Exceptions : thrown if configuration file can't be opened
thrown on missing mandatory parameters
Caller : general
Status : At Risk
: under development
confirm_params
Example : $conf->confirm_params;
Description : If the script is run with the --interactive switch, this method
prints a table of all parameters and their values and asks user
to confirm if he wants to proceed.
Return type : true on success
Exceptions : none
Caller : parse_options()
Status : At Risk
: under development
param
Arg[1] : Parameter name
Arg[2..n] : (optional) List of values to set
Example : # getter
my $dbname = $conf->param('dbname');
# setter
$conf->param('port', 3306);
$conf->param('chromosomes', 1, 6, 'X');
Description : Getter/setter for parameters. Accepts single-value params and
list params.
Return type : Scalar value for single-value parameters, array of values for
list parameters
Exceptions : thrown if no parameter name is supplied
Caller : general
Status : At Risk
: under development
is_true
Arg[1] : Parameter name
Example : unless ($conf->is_true('upload')) {
print "Won't upload data.\n";
next;
}
Description : Checks whether a param value is set to 'true', which is defined
here as TRUE (in the Perl sense) but not the string 'no'.
Return type : Boolean
Exceptions : thrown if no parameter name is supplied
Caller : general
Status : At Risk
: under development
list_params
Example : print "Current parameter names:\n";
foreach my $param (@{ $conf->list_params }) {
print " $param\n";
}
Description : Returns a list of the currently available parameter names. The
list will be in the same order as option definitions were
passed to the new() method.
Return type : Arrayref of parameter names
Exceptions : none
Caller : list_param_values(), create_commandline_options()
Status : At Risk
: under development
list_param_values
Example : print LOG $conf->list_param_values;
Description : prints a table of the parameters used in the script
Return type : String - the table to print
Exceptions : none
Caller : general
Status : At Risk
: under development
create_commandline_options
Arg[1..n] : param/value pairs which should be added to or override the
currently defined parameters
Example : $conf->create_commandline_options(
'dbname' => 'homo_sapiens_vega_33_35e',
'interactive' => 0
);
Description : Creates a commandline options string of all current paramters
that can be passed to another script.
Return type : String - commandline options string
Exceptions : none
Caller : general
Status : At Risk
: under development
comma_to_list
Arg[1..n] : list of parameter names to parse
Example : $conf->comma_to_list('chromosomes');
Description : Transparently converts comma-separated lists into arrays (to
allow different styles of commandline options, see perldoc
Getopt::Long for details). Parameters are converted in place
(accessible through $self->param('name')).
Return type : true on success
Exceptions : none
Caller : general
Status : At Risk
: under development
list_or_file
Arg[1] : Name of parameter to parse
Example : $conf->list_or_file('gene');
Description : Determines whether a parameter holds a list or it is a filename
to read the list entries from.
Return type : true on success
Exceptions : thrown if list file can't be opened
Caller : general
Status : At Risk
: under development
serverroot
Arg[1] : (optional) String - root directory of your ensembl checkout
Example : my $serverroot = $conf->serverroot;
Description : Getter/setter for the root directory of your ensembl checkout.
Return type : String
Exceptions : none
Caller : new(), general
Status : At Risk
: under development
default_conf
Arg[1] : (optional) String - default configuration file
Example : $conf->default_conf('my.default.conf');
Description : Getter/setter for the default configuration file.
Return type : String
Exceptions : none
Caller : new(), general
Status : At Risk
: under development