summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2006-12-14 09:27:26 +0000
committerivan <ivan>2006-12-14 09:27:26 +0000
commit7422aa77086326ba1e6032150ce5704d1003ea6f (patch)
tree9a69bc3c41f13a944198ae882933aa51cc9f6a5c
parentdcdf657e77ec7b46dc69e19a849a9c133123db7c (diff)
make the config directory configurable
-rw-r--r--FS/FS/Conf.pm29
-rw-r--r--FS/FS/UID.pm4
-rw-r--r--FS/FS/access_user.pm32
-rw-r--r--FS/FS/part_export/vpopmail.pm2
-rw-r--r--FS/bin/freeside-addoutsource29
-rw-r--r--FS/bin/freeside-addoutsourceuser7
-rw-r--r--FS/bin/freeside-adduser2
-rw-r--r--FS/bin/freeside-deloutsource11
-rw-r--r--FS/bin/freeside-deloutsourceuser2
-rw-r--r--FS/bin/freeside-deluser2
-rw-r--r--FS/bin/freeside-queued2
-rw-r--r--FS/bin/freeside-selfservice-server5
-rwxr-xr-xFS/bin/freeside-setup3
-rw-r--r--FS/bin/freeside-sqlradius-radacctd2
-rwxr-xr-xFS/bin/freeside-upgrade50
-rw-r--r--Makefile33
-rwxr-xr-xbin/dbdef-create2
-rwxr-xr-xbin/mapsecrets2access_user6
-rw-r--r--htetc/handler.pl2
19 files changed, 159 insertions, 66 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 566d8e8d9..270b61c9f 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -1,11 +1,15 @@
package FS::Conf;
-use vars qw($default_dir @config_items @card_types $DEBUG );
+use vars qw($default_dir $base_dir @config_items @card_types $DEBUG );
use IO::File;
use File::Basename;
use FS::ConfItem;
use FS::ConfDefaults;
+$base_dir = '%%%FREESIDE_CONF%%%';
+$default_dir = '%%%FREESIDE_CONF%%%';
+
+
$DEBUG = 0;
=head1 NAME
@@ -52,13 +56,15 @@ $FS::Conf::default_dir has not been set.
sub new {
my($proto,$dir) = @_;
my($class) = ref($proto) || $proto;
- my($self) = { 'dir' => $dir || $default_dir } ;
+ my($self) = { 'dir' => $dir || $default_dir,
+ 'base_dir' => $base_dir,
+ };
bless ($self, $class);
}
=item dir
-Returns the directory.
+Returns the conf directory.
=cut
@@ -73,6 +79,23 @@ sub dir {
$1;
}
+=item base_dir
+
+Returns the base directory. By default this is /usr/local/etc/freeside.
+
+=cut
+
+sub base_dir {
+ my($self) = @_;
+ my $base_dir = $self->{base_dir};
+ -e $base_dir or die "FATAL: $base_dir doesn't exist!";
+ -d $base_dir or die "FATAL: $base_dir isn't a directory!";
+ -r $base_dir or die "FATAL: Can't read $base_dir!";
+ -x $base_dir or die "FATAL: $base_dir not searchable (executable)!";
+ $base_dir =~ /^(.*)$/;
+ $1;
+}
+
=item config KEY
Returns the configuration value or values (depending on context) for key.
diff --git a/FS/FS/UID.pm b/FS/FS/UID.pm
index eb703d352..8dd928ec7 100644
--- a/FS/FS/UID.pm
+++ b/FS/FS/UID.pm
@@ -21,7 +21,7 @@ use FS::CurrentUser;
$freeside_uid = scalar(getpwnam('freeside'));
-$conf_dir = "/usr/local/etc/freeside/";
+$conf_dir = "%%%FREESIDE_CONF%%%/";
$AutoCommit = 1; #ours, not DBI
@@ -99,7 +99,7 @@ sub forksuidsetup {
}
use FS::Schema qw(reload_dbdef);
- reload_dbdef("/usr/local/etc/freeside/dbdef.$datasrc")
+ reload_dbdef("$conf_dir/dbdef.$datasrc")
unless $FS::Schema::setup_hack;
FS::CurrentUser->load_user($user);
diff --git a/FS/FS/access_user.pm b/FS/FS/access_user.pm
index 75293544c..f45f17d60 100644
--- a/FS/FS/access_user.pm
+++ b/FS/FS/access_user.pm
@@ -2,6 +2,8 @@ package FS::access_user;
use strict;
use vars qw( @ISA $htpasswd_file );
+use FS::UID;
+use FS::Conf;
use FS::Record qw( qsearch qsearchs dbh );
use FS::m2m_Common;
use FS::access_usergroup;
@@ -9,8 +11,11 @@ use FS::agent;
@ISA = qw( FS::m2m_Common FS::Record );
-#kludge htpasswd for now
-$htpasswd_file = '/usr/local/etc/freeside/htpasswd';
+#kludge htpasswd for now (i hope this bootstraps okay)
+FS::UID->install_callback( sub {
+ my $conf = new FS::Conf;
+ $htpasswd_file = $conf->base_dir. '/htpasswd';
+} );
=head1 NAME
@@ -90,10 +95,13 @@ sub insert {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
- my $error =
- $self->SUPER::insert(@_)
- || $self->htpasswd_kludge()
- ;
+ my $error = $self->htpasswd_kludge();
+ if ( $error ) {
+ $dbh->rollback or die $dbh->errstr if $oldAutoCommit;
+ return $error;
+ }
+
+ $error = $self->SUPER::insert(@_);
if ( $error ) {
$dbh->rollback or die $dbh->errstr if $oldAutoCommit;
@@ -126,7 +134,6 @@ sub htpasswd_kludge {
}
}
-
=item delete
Delete this record from the database.
@@ -183,10 +190,13 @@ sub replace {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
- my $error =
- $new->SUPER::replace($old, @_)
- || $new->htpasswd_kludge()
- ;
+ my $error = $new->htpasswd_kludge();
+ if ( $error ) {
+ $dbh->rollback or die $dbh->errstr if $oldAutoCommit;
+ return $error;
+ }
+
+ $error = $new->SUPER::replace($old, @_);
if ( $error ) {
$dbh->rollback or die $dbh->errstr if $oldAutoCommit;
diff --git a/FS/FS/part_export/vpopmail.pm b/FS/FS/part_export/vpopmail.pm
index 0fc8266ea..bf558e3ff 100644
--- a/FS/FS/part_export/vpopmail.pm
+++ b/FS/FS/part_export/vpopmail.pm
@@ -87,7 +87,7 @@ sub _export_delete {
sub vpopmail_queue {
my( $self, $svcnum, $method ) = (shift, shift, shift);
- my $exportdir = "/usr/local/etc/freeside/export." . datasrc;
+ my $exportdir = "%%%FREESIDE_CONF%%%/export." . datasrc;
mkdir $exportdir, 0700 or die $! unless -d $exportdir;
$exportdir .= "/vpopmail";
mkdir $exportdir, 0700 or die $! unless -d $exportdir;
diff --git a/FS/bin/freeside-addoutsource b/FS/bin/freeside-addoutsource
index 386e76315..8291c6434 100644
--- a/FS/bin/freeside-addoutsource
+++ b/FS/bin/freeside-addoutsource
@@ -2,24 +2,29 @@
domain=$1
+FREESIDE_CONF=%%%FREESIDE_CONF%%%
+
+#without this, [a-z]* matches CVS/, the copy doesn't return a sucessful error
+# status, and the rest of the commands aren't run
+export LANG=C
+
createdb $domain && \
\
-mkdir /usr/local/etc/freeside/conf.DBI:Pg:dbname=$domain && \
+mkdir $FREESIDE_CONF/conf.DBI:Pg:dbname=$domain && \
\
-chown freeside /usr/local/etc/freeside/conf.DBI:Pg:dbname=$domain && \
+chown freeside $FREESIDE_CONF/conf.DBI:Pg:dbname=$domain && \
\
-cp /home/ivan/freeside/conf/[a-z]* /usr/local/etc/freeside/conf.DBI:Pg:dbname=$domain
-
-
-touch /usr/local/etc/freeside/conf.DBI:Pg:dbname=$domain/secrets && \
+cp /home/ivan/freeside/conf/[a-z]* $FREESIDE_CONF/conf.DBI:Pg:dbname=$domain && \
+\
+touch $FREESIDE_CONF/conf.DBI:Pg:dbname=$domain/secrets && \
\
-chown freeside /usr/local/etc/freeside/conf.DBI:Pg:dbname=$domain/secrets && \
+chown freeside $FREESIDE_CONF/conf.DBI:Pg:dbname=$domain/secrets && \
\
-chmod 600 /usr/local/etc/freeside/conf.DBI:Pg:dbname=$domain/secrets && \
+chmod 600 $FREESIDE_CONF/conf.DBI:Pg:dbname=$domain/secrets && \
\
-echo -e "DBI:Pg:dbname=$domain\nfreeside\n" >/usr/local/etc/freeside/conf.DBI:Pg:dbname=$domain/secrets && \
+echo -e "DBI:Pg:dbname=$domain\nfreeside\n" >$FREESIDE_CONF/conf.DBI:Pg:dbname=$domain/secrets && \
\
-mkdir /usr/local/etc/freeside/counters.DBI:Pg:dbname=$domain && \
-mkdir /usr/local/etc/freeside/cache.DBI:Pg:dbname=$domain && \
-mkdir /usr/local/etc/freeside/export.DBI:Pg:dbname=$domain
+mkdir $FREESIDE_CONF/counters.DBI:Pg:dbname=$domain && \
+mkdir $FREESIDE_CONF/cache.DBI:Pg:dbname=$domain && \
+mkdir $FREESIDE_CONF/export.DBI:Pg:dbname=$domain
diff --git a/FS/bin/freeside-addoutsourceuser b/FS/bin/freeside-addoutsourceuser
index 889d28adb..cbe792acc 100644
--- a/FS/bin/freeside-addoutsourceuser
+++ b/FS/bin/freeside-addoutsourceuser
@@ -4,16 +4,15 @@ username=$1
domain=$2
password=$3
realdomain=$4
-
+FREESIDE_CONF=%%%FREESIDE_CONF%%%
freeside-adduser -s conf.DBI:Pg:dbname=$domain/secrets \
-n \
$username #2>/dev/null
-[ -e /usr/local/etc/freeside/dbdef.DBI:Pg:dbname=$domain ] \
+[ -e $FREESIDE_CONF/dbdef.DBI:Pg:dbname=$domain ] \
|| ( freeside-setup -d $realdomain -u $username )
-# 2>/dev/null
freeside-adduser -g 1 $username
-htpasswd -b /usr/local/etc/freeside/htpasswd $username $password
+htpasswd -b $FREESIDE_CONF/htpasswd $username $password
diff --git a/FS/bin/freeside-adduser b/FS/bin/freeside-adduser
index a315f1082..237e29ef8 100644
--- a/FS/bin/freeside-adduser
+++ b/FS/bin/freeside-adduser
@@ -5,7 +5,7 @@ use vars qw($opt_s $opt_g $opt_n);
use Fcntl qw(:flock);
use Getopt::Std;
-my $FREESIDE_CONF = "/usr/local/etc/freeside";
+my $FREESIDE_CONF = "%%%FREESIDE_CONF%%%";
getopts("s:g:n");
my $user = shift or die &usage;
diff --git a/FS/bin/freeside-deloutsource b/FS/bin/freeside-deloutsource
index 561853539..72aca048f 100644
--- a/FS/bin/freeside-deloutsource
+++ b/FS/bin/freeside-deloutsource
@@ -1,11 +1,12 @@
#!/bin/sh
domain=$1
+FREESIDE_CONF=%%%FREESIDE_CONF%%%
dropdb $domain && \
-rm -rf /usr/local/etc/freeside/conf.DBI:Pg:host=localhost\;dbname=$domain && \
-rm -rf /usr/local/etc/freeside/counters.DBI:Pg:host=localhost\;dbname=$domain && \
-rm -rf /usr/local/etc/freeside/cache.DBI:Pg:host=localhost\;dbname=$domain && \
-rm -rf /usr/local/etc/freeside/export.DBI:Pg:host=localhost\;dbname=$domain && \
-rm /usr/local/etc/freeside/dbdef.DBI:Pg:host=localhost\;dbname=$domain
+rm -rf $FREESIDE_CONF/conf.DBI:Pg:host=localhost\;dbname=$domain && \
+rm -rf $FREESIDE_CONF/counters.DBI:Pg:host=localhost\;dbname=$domain && \
+rm -rf $FREESIDE_CONF/cache.DBI:Pg:host=localhost\;dbname=$domain && \
+rm -rf $FREESIDE_CONF/export.DBI:Pg:host=localhost\;dbname=$domain && \
+rm $FREESIDE_CONF/dbdef.DBI:Pg:host=localhost\;dbname=$domain
diff --git a/FS/bin/freeside-deloutsourceuser b/FS/bin/freeside-deloutsourceuser
index 96871e50c..dc4ff9cdc 100644
--- a/FS/bin/freeside-deloutsourceuser
+++ b/FS/bin/freeside-deloutsourceuser
@@ -2,5 +2,5 @@
username=$1
-freeside-deluser -h /usr/local/etc/freeside/htpasswd $username 2>/dev/null
+freeside-deluser -h %%%FREESIDE_CONF%%%/htpasswd $username 2>/dev/null
diff --git a/FS/bin/freeside-deluser b/FS/bin/freeside-deluser
index 57d6ce165..a2a361a83 100644
--- a/FS/bin/freeside-deluser
+++ b/FS/bin/freeside-deluser
@@ -5,7 +5,7 @@ use vars qw($opt_h);
use Fcntl qw(:flock);
use Getopt::Std;
-my $FREESIDE_CONF = "/usr/local/etc/freeside";
+my $FREESIDE_CONF = "%%%FREESIDE_CONF%%%";
getopts("h:");
my $user = shift or die &usage;
diff --git a/FS/bin/freeside-queued b/FS/bin/freeside-queued
index 9c2867963..d16513bdd 100644
--- a/FS/bin/freeside-queued
+++ b/FS/bin/freeside-queued
@@ -41,7 +41,7 @@ while ( $@ ) {
}
}
-logfile( "/usr/local/etc/freeside/queuelog.". $FS::UID::datasrc );
+logfile( "%%%FREESIDE_CONF%%%/queuelog.". $FS::UID::datasrc );
warn "completing daemonization (detaching))\n" if $DEBUG;
daemonize2();
diff --git a/FS/bin/freeside-selfservice-server b/FS/bin/freeside-selfservice-server
index 0ba97f6fb..fc04ee91e 100644
--- a/FS/bin/freeside-selfservice-server
+++ b/FS/bin/freeside-selfservice-server
@@ -18,6 +18,8 @@ use FS::Conf;
use FS::cust_bill;
use FS::cust_pkg;
+$FREESIDE_CONF = "%%%FREESIDE_CONF%%%";
+
$Debug = 1; # 2 will turn on more logging
# 3 will log packet contents, including passwords
@@ -50,11 +52,10 @@ $ENV{HOME} = (getpwuid($>))[7]; #for ssh
adminsuidsetup $user;
#logfile("/usr/local/etc/freeside/selfservice.". $FS::UID::datasrc); #MACHINE
-logfile("/usr/local/etc/freeside/selfservice.$machine.log");
+logfile("$FREESIDE_SERVER/selfservice.$machine.log");
daemonize2();
-
my $conf = new FS::Conf;
my $clientd = "/usr/local/sbin/freeside-selfservice-clientd"; #better name?
diff --git a/FS/bin/freeside-setup b/FS/bin/freeside-setup
index a51dfd7a0..ddc210f50 100755
--- a/FS/bin/freeside-setup
+++ b/FS/bin/freeside-setup
@@ -24,7 +24,7 @@ getopts("u:vd:");
getsecrets($opt_u); #$user);
#needs to match FS::Record
-my($dbdef_file) = "/usr/local/etc/freeside/dbdef.". datasrc;
+my($dbdef_file) = "%%%FREESIDE_CONF%%%/dbdef.". datasrc;
###
@@ -127,3 +127,4 @@ sub usage {
1;
+
diff --git a/FS/bin/freeside-sqlradius-radacctd b/FS/bin/freeside-sqlradius-radacctd
index e98eaa015..bf415961c 100644
--- a/FS/bin/freeside-sqlradius-radacctd
+++ b/FS/bin/freeside-sqlradius-radacctd
@@ -23,7 +23,7 @@ drop_root();
adminsuidsetup $user;
-logfile( "/usr/local/etc/freeside/sqlradius-radacctd-log.". $FS::UID::datasrc );
+logfile( "%%%FREESIDE_CONF%%%/sqlradius-radacctd-log.". $FS::UID::datasrc );
daemonize2();
diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade
index a1212ae98..3a4e4f8e3 100755
--- a/FS/bin/freeside-upgrade
+++ b/FS/bin/freeside-upgrade
@@ -1,23 +1,29 @@
#!/usr/bin/perl -w
use strict;
+use vars qw($opt_d $opt_q $opt_v);
use vars qw($DEBUG $DRY_RUN);
-use Term::ReadKey;
+use Getopt::Std;
use DBIx::DBSchema 0.31;
use FS::UID qw(adminsuidsetup checkeuid datasrc ); #getsecrets);
use FS::CurrentUser;
use FS::Schema qw( dbdef dbdef_dist reload_dbdef );
-$DEBUG = 1;
-
die "Not running uid freeside!" unless checkeuid();
+getopts("dq");
+
+$DEBUG = !$opt_q;
+#$DEBUG = $opt_v;
+
+$DRY_RUN = $opt_d;
+
my $user = shift or die &usage;
$FS::CurrentUser::upgrade_hack = 1;
my $dbh = adminsuidsetup($user);
#needs to match FS::Schema...
-my $dbdef_file = "/usr/local/etc/freeside/dbdef.". datasrc;
+my $dbdef_file = "%%%FREESIDE_CONF%%%/dbdef.". datasrc;
dbdef_create($dbh, $dbdef_file);
@@ -26,7 +32,13 @@ reload_dbdef($dbdef_file);
$DBIx::DBSchema::DEBUG = $DEBUG;
$DBIx::DBSchema::Table::DEBUG = $DEBUG;
-dbdef->update_schema( dbdef_dist, $dbh );
+
+if ( $DRY_RUN ) {
+ print join(";\n", dbdef->sql_update_schema( dbdef_dist, $dbh ) ). ";\n";
+ exit;
+} else {
+ dbdef->update_schema( dbdef_dist, $dbh );
+}
$dbh->commit or die $dbh->errstr;
@@ -43,7 +55,31 @@ sub dbdef_create { # reverse engineer the schema from the DB and save to file
}
sub usage {
- die "Usage:\n freeside-upgrade user\n";
+ die "Usage:\n freeside-upgrade [ -d ] [ -q | -v ] user\n";
}
-1;
+=head1 NAME
+
+freeside-upgrade - Upgrades database schema for new freeside verisons.
+
+=head1 SYNOPSIS
+
+ freeside-adduser [ -d ] [ -q | -v ]
+
+=head1 DESCRIPTION
+
+Reads your existing database schema and updates it to match the current schema,
+adding any columns or tables necessary.
+
+ [ -d ]: Dry run; output SQL statements (to STDOUT) only, but do not execute
+ them.
+
+ [ -q ]: Run quietly. This may become the default at some point.
+
+ [ -v ]: Run verbosely, sending debugging information to STDERR. This is the
+ current default.
+
+=head1 SEE ALSO
+
+=cut
+
diff --git a/Makefile b/Makefile
index 85e9e920a..c9a3e6794 100644
--- a/Makefile
+++ b/Makefile
@@ -9,10 +9,13 @@ DATASOURCE = DBI:Pg:dbname=freeside
DB_USER = freeside
DB_PASSWORD=
+#changable now
+FREESIDE_CONF = /usr/local/etc/freeside
+
TEMPLATE = mason
-MASON_HANDLER = /usr/local/etc/freeside/handler.pl
-MASONDATA = /usr/local/etc/freeside/masondata
+MASON_HANDLER = ${FREESIDE_CONF}/handler.pl
+MASONDATA = ${FREESIDE_CONF}/masondata
#deb
FREESIDE_DOCUMENT_ROOT = /var/www/freeside
@@ -89,8 +92,7 @@ RT_DB_DATABASE = freeside
#---
-#not changable yet
-FREESIDE_CONF = /usr/local/etc/freeside
+
#rt/config.layout.in
RT_PATH = /opt/rt3
@@ -153,11 +155,13 @@ forcehtmlman:
install-docs: docs
[ -e ${FREESIDE_DOCUMENT_ROOT} ] && mv ${FREESIDE_DOCUMENT_ROOT} ${FREESIDE_DOCUMENT_ROOT}.`date +%Y%m%d%H%M%S` || true
cp -r ${TEMPLATE}docs ${FREESIDE_DOCUMENT_ROOT}
+ chown -R freeside:freeside ${FREESIDE_DOCUMENT_ROOT}
cp htetc/handler.pl ${MASON_HANDLER}
- perl -p -i -e "\
- s'%%%FREESIDE_DOCUMENT_ROOT%%%'${FREESIDE_DOCUMENT_ROOT}'g; \
- s'%%%RT_ENABLED%%%'${RT_ENABLED}'g; \
- " ${MASON_HANDLER}
+ perl -p -i -e "\
+ s'%%%FREESIDE_DOCUMENT_ROOT%%%'${FREESIDE_DOCUMENT_ROOT}'g; \
+ s'%%%RT_ENABLED%%%'${RT_ENABLED}'g; \
+ s'%%%FREESIDE_CONF%%%'${FREESIDE_CONF}'g;\
+ " ${MASON_HANDLER}
[ ! -e ${MASONDATA} ] && mkdir ${MASONDATA} || true
chown -R freeside ${MASONDATA}
@@ -179,7 +183,17 @@ perl-modules:
make; \
perl -p -i -e "\
s/%%%VERSION%%%/${VERSION}/g;\
- " blib/lib/FS.pm; \
+ s|%%%FREESIDE_CONF%%%|${FREESIDE_CONF}|g;\
+ " blib/lib/FS.pm;\
+ perl -p -i -e "\
+ s|%%%FREESIDE_CONF%%%|${FREESIDE_CONF}|g;\
+ " blib/lib/FS/*.pm;\
+ perl -p -i -e "\
+ s|%%%FREESIDE_CONF%%%|${FREESIDE_CONF}|g;\
+ " blib/lib/FS/part_export/*.pm;\
+ perl -p -i -e "\
+ s|%%%FREESIDE_CONF%%%|${FREESIDE_CONF}|g;\
+ " blib/script/*
install-perl-modules: perl-modules
[ -L ${PERL_INC_DEV_KLUDGE}/FS ] \
@@ -213,6 +227,7 @@ install-apache:
( [ ${RT_ENABLED} -eq 1 ] && install -o root -m 755 htetc/freeside-rt.conf ${APACHE_CONF} || true ) && \
perl -p -i -e "\
s'%%%FREESIDE_DOCUMENT_ROOT%%%'${FREESIDE_DOCUMENT_ROOT}'g; \
+ s'%%%FREESIDE_CONF%%%'${FREESIDE_CONF}'g; \
" ${APACHE_CONF}/freeside-*.conf \
) || true
diff --git a/bin/dbdef-create b/bin/dbdef-create
index 2283b533f..5063a3ce9 100755
--- a/bin/dbdef-create
+++ b/bin/dbdef-create
@@ -13,7 +13,7 @@ $FS::CurrentUser::upgrade_hack = 1;
my($dbh)=adminsuidsetup $user;
#needs to match FS::Record
-my($dbdef_file) = "/usr/local/etc/freeside/dbdef.". datasrc;
+my($dbdef_file) = "%%%FREESIDE_CONF%%%/dbdef.". datasrc;
my $dbdef = new_native DBIx::DBSchema $dbh;
diff --git a/bin/mapsecrets2access_user b/bin/mapsecrets2access_user
index 4efd90b2b..945f130ef 100755
--- a/bin/mapsecrets2access_user
+++ b/bin/mapsecrets2access_user
@@ -46,8 +46,10 @@ unless ( $supergroup ) {
}
my $supergroupnum = $supergroup->groupnum;
-my $mapsecrets = '/usr/local/etc/freeside/mapsecrets';
-open(MAPSECRETS, "<$mapsecrets") or die $!;
+my $conf = new FS::Conf;
+my $dir = $conf->base_dir;
+my $mapsecrets = "$dir/mapsecrets";
+open(MAPSECRETS, "<$mapsecrets") or die "Can't open $mapsecrets: $!";
while (<MAPSECRETS>) {
/([\w]+)\s+secrets\s*$/ or die "unparsable line in mapsecrets: $_";
my $username = $1;
diff --git a/htetc/handler.pl b/htetc/handler.pl
index 89287d754..3f3886b3a 100644
--- a/htetc/handler.pl
+++ b/htetc/handler.pl
@@ -60,7 +60,7 @@ my $ah = new HTML::Mason::ApacheHandler (
[ 'freeside' => '%%%FREESIDE_DOCUMENT_ROOT%%%' ],
[ 'rt' => '%%%FREESIDE_DOCUMENT_ROOT%%%/rt' ],
],
- data_dir=>'/usr/local/etc/freeside/masondata',
+ data_dir=>'%%%FREESIDE_CONF%%%/masondata',
#out_mode=>'stream',
#RT