From 399377be683d60fd80690504103b809885b27903 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 30 Oct 2001 10:20:32 +0000 Subject: [PATCH] setup/config updates. getting easier... --- FS/FS/Conf.pm | 4 +-- FS/MANIFEST | 3 ++- FS/bin/freeside-adduser | 52 +++++++++++++++++++++++++++++++++++++ Makefile | 62 +++++++++++++++++++++++++++++++++++++++----- httemplate/docs/install.html | 12 ++++++++- 5 files changed, 123 insertions(+), 10 deletions(-) create mode 100644 FS/bin/freeside-adduser diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index fb8d13bae..1c75954aa 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -8,7 +8,7 @@ $DEBUG = 0; =head1 NAME -FS::Conf - Read access to Freeside configuration values +FS::Conf - Freeside configuration values =head1 SYNOPSIS @@ -29,7 +29,7 @@ FS::Conf - Read access to Freeside configuration values =head1 DESCRIPTION -Read access to Freeside configuration values. Keys currently map to filenames, +Read and write Freeside configuration values. Keys currently map to filenames, but this may change in the future. =head1 METHODS diff --git a/FS/MANIFEST b/FS/MANIFEST index 5de6977a1..4254514a2 100644 --- a/FS/MANIFEST +++ b/FS/MANIFEST @@ -7,7 +7,8 @@ bin/freeside-bill bin/freeside-email bin/freeside-print-batch bin/freeside-queued -fin/freeside-apply-credits +bin/freeside-apply-credits +bin/freeside-adduser FS.pm FS/CGI.pm FS/Conf.pm diff --git a/FS/bin/freeside-adduser b/FS/bin/freeside-adduser new file mode 100644 index 000000000..4517a83fa --- /dev/null +++ b/FS/bin/freeside-adduser @@ -0,0 +1,52 @@ +#!/usr/bin/perl -w +# +# $Id: freeside-adduser,v 1.1 2001-10-30 10:20:32 ivan Exp $ + +use strict; +use vars qw($opt_h $opt_c); +use Getopt::Std; + +my $FREESIDE_CONF = "/usr/local/etc/freeside"; + +getopts("ch:"); +die &usage if $opt_c && ! $opt_h; +my $secretfile = shift or die &usage; +my $user = shift or die &usage; + +my @args = ( 'htpasswd' ); +push @args, '-c' if $opt_c; +push @args, $opt_h, $user; +system(@args) == 0 or die "htpasswd failed: $?"; + +open(MAPSECRETS,">>$FREESIDE_CONF/mapsecrets") + or die "can't open $FREESIDE_CONF/mapsecrets: $!"; +print MAPSECRETS "$user $secretfile\n"; +close MAPSECRETS or die "can't close $FREESIDE_CONF/mapsecrets: $!"; + +sub usage { + die "Usage:\n\n freeside-adduser [ -h htpasswd_file [ -c ] ] secretfile username" +} + +=head1 NAME + +freeside-adduser - Command line interface to add (freeside) users. + +=head1 SYNOPSIS + + freeside-adduser [ -h htpasswd_file [ -c ] ] username + +=head DESCRIPTION + +Adds a user to the Freeside billing system. This is for adding users (internal +sales/tech folks) to the web interface, not for adding customer accounts. + + -h: Also call htpasswd for this user with the given filename + + -c: Passed to htpasswd + +=head1 SEE ALSO + +L, base Freeside documentation + +=cut + diff --git a/Makefile b/Makefile index 7edc5aa13..90b6bf465 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,33 @@ #!/usr/bin/make +#Pg +DATASOURCE = DBI:Pg:host=localhost;dbname=freeside +#pgsql on some systems; check /etc/passwd +DB_ADMIN_USER = postgres +DB_ADMIN_PASSWORD= + +#mysql +#DATASOURCE=DBI:mysql:freeside +#DB_ADMIN_USER=mysql +#DB_ADMIN_PASSWORD= + +TEMPLATE = asp +#mason's a bit dodgy stil +#TEMPLATE = mason + +FREESIDE_DOCUMENT_ROOT = /var/www/freeside + +#--- + +#not changable yet +FREESIDE_CONF = /usr/local/etc/freeside + help: - @echo "supported targets: aspdocs masondocs alldocs perl-modules" - @echo " install-perl-modules install clean" + @echo "supported targets: aspdocs masondocs alldocs docs install-docs" + @echo " perl-modules install-perl-modules" + @echo " install deploy" + @echo " create-database" + @echo " clean" aspdocs: httemplate/* httemplate/*/* httemplate/*/*/* httemplate/*/*/*/* httemplate/*/*/*/*/* rm -rf aspdocs @@ -19,9 +44,11 @@ masondocs: httemplate/* httemplate/*/* httemplate/*/*/* httemplate/*/*/*/* httem alldocs: aspdocs masondocs -FS/Makefile: - cd FS - perl Makefile.PL +docs: + make ${TEMPLATE}docs + +install-docs: docs + cp -r ${TEMPLATE}docs ${FREESIDE_DOCUMENT_ROOT} perl-modules: cd FS; \ @@ -32,11 +59,34 @@ install-perl-modules: perl-modules cd FS; \ make install -install: install-perl-modules +install: install-perl-modules install-docs deploy: install /etc/init.d/apache restart +create-database: + perl -e 'use DBIx::DataSource qw( create_database ); create_database( \'${DATASOURCE}\', \'${DB_ADMIN_USER}\', \'${DB_ADMIN_PASSWORD}\' ) or die $DBIx::DataSource::errstr;' + +create-config: install-perl-modules + [ -d ${FREESIDE_CONF} ] || mkdir ${FREESIDE_CONF} + chown freeside ${FREESIDE_CONF} + + [ -d "${FREESIDE_CONF}/conf.${DATASOURCE}" ] \ + || mkdir "${FREESIDE_CONF}/conf.${DATASOURCE}" + chown freeside "${FREESIDE_CONF/conf.${DATASOURCE}" + + [ -d "${FREESIDE_CONF}/counters.${DATASOURCE}" ] \ + || mkdir "${FREESIDE_CONF}/counters.${DATASOURCE}" + chown freeside "${FREESIDE_CONF/counters.${DATASOURCE}" + + [ -d "${FREESIDE_CONF}/cache.${DATASOURCE}" ] \ + || mkdir "${FREESIDE_CONF}/cache.${DATASOURCE}" + chown freeside "${FREESIDE_CONF/cache.${DATASOURCE}" + + [ -d "${FREESIDE_CONF}/export.${DATASOURCE}" ] \ + || mkdir "${FREESIDE_CONF}/export.${DATASOURCE}" + chown freeside "${FREESIDE_CONF/export.${DATASOURCE}" + clean: rm -rf aspdocs masondocs cd FS; \ diff --git a/httemplate/docs/install.html b/httemplate/docs/install.html index 63c39d682..3a14fa779 100644 --- a/httemplate/docs/install.html +++ b/httemplate/docs/install.html @@ -38,6 +38,7 @@ Before installing, you need:
  • Text-Template
  • DBI
  • DBD for your database engine +
  • DBIx-DataSource
  • DBIx-DBSchema
  • Net-SSH
  • String-ShellQuote @@ -112,7 +113,16 @@ require "/usr/local/apache/conf/handler.pl";
      -
    • Restrict access to this web interface. (with Apache) +
    • Restrict access to this web interface. (with Apache). For example, to configure user authentication with flat files: +
      +<Directory /usr/local/apache/htdocs/freeside-asp>
      +PerlSetVar Global /usr/local/etc/freeside/asp-global/
      +AuthName Freeside
      +AuthType Basic
      +AuthUserFile /usr/local/etc/apache/htpasswd
      +require valid-user
      +</Directory>
      +
    • Create the necessary configuration files.
    • Create the `/usr/local/etc/freeside/counters.datasrc', `/usr/local/etc/freeside/cache.datasrc', and -- 2.11.0