commit a9db6c3ebd64a26f593dfd3f766dd89c2182516f
parent 056548a8e5c2c671131a370e5bdd351131fe02a8
Author: Kyle Milz <kyle@getaddrinfo.net>
Date:   Sun,  9 Nov 2014 12:13:26 -0700
first cut at setting paths to sane system defaults
Diffstat:
6 files changed, 22 insertions(+), 35 deletions(-)
diff --git a/etc/pricechart.cfg b/etc/pricechart.cfg
@@ -1,6 +1,5 @@
 *** general ***
 
-var		= /home/kyle/src/pricegraph
 # Chrome 36 Win7 64bit
 user_agent	= Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36;
 email		= kyle@getaddrinfo.net
diff --git a/gen_index.pl b/gen_index.pl
@@ -13,8 +13,9 @@ my $config = {
 	INTERPOLATE => 1,
 	POST_CHOMP => 1,
 	EVAL_PERL => 1,
+	# XXX: this needs to be changed
 	INCLUDE_PATH => "html",
-	OUTPUT_PATH => "www/htdocs"
+	OUTPUT_PATH => "/var/www/htdocs/pricechart"
 };
 
 my $template = Template->new($config);
@@ -35,6 +36,6 @@ my $vars = {
 };
 
 $template->process("index.html", $vars, "index.html") || die $template->error();
-copy("html/pricechart.css", "www/htdocs/pricechart.css");
+copy("html/pricechart.css", "/var/www/htdocs/pricechart/pricechart.css");
 
 $dbh->disconnect();
diff --git a/gen_svg.pl b/gen_svg.pl
@@ -13,9 +13,9 @@ use shared;
 # http://www.particleincell.com/wp-content/uploads/2012/06/bezier-spline.js
 #
 
-my $log = get_log("pricechart_gen_svg");
+# my $log = get_log("gen_svg");
 
-my $svg_dir = "$cfg->{general}{var}/www/htdocs/svg";
+my $svg_dir = "/var/www/htdocs/pricechart/svg";
 mkdir $svg_dir;
 
 my ($width, $height) = (900, 210);
diff --git a/price_scraper.pl b/price_scraper.pl
@@ -26,7 +26,7 @@ $dbh->do("create table if not exists prices(" .
 	"duration int, " .
 	"primary key(date, part_num, vendor, price))") or die $DBI::errstr;
 
-my $log = get_log("pricechart_scrapes");
+my $log = get_log("scrapes");
 printf $log "%-15s [", $part_num;
 
 vprint("$part_num\n");
diff --git a/search.pl b/search.pl
@@ -11,7 +11,7 @@ use shared;
 print "disconnecting dbh\n";
 $dbh->disconnect();
 
-my $pid_file = "$cfg->{general}{var}/run/pricegraph_search.pid";
+my $pid_file = "/var/www/run/search.pid";
 
 if (-e $pid_file) {
 	print "pid file $pid_file exists, search may already be running\n";
@@ -23,9 +23,10 @@ print "daemonizing\n";
 
 
 my $daemon = Proc::Daemon->new(
-	work_dir     => "/home/kyle/src/pricegraph",
-	child_STDOUT => "log/search.txt",
-	child_STDERR => "log/search.txt",
+	setuid       => 67,
+	work_dir     => "/var/www",
+	child_STDOUT => "logs/pricechart/search.txt",
+	child_STDERR => "logs/pricechart/search.txt",
 	pid_file     => $pid_file
 );
 
@@ -36,8 +37,8 @@ $SIG{TERM} = \&sig_handler;
 
 print "assigned sig handlers\n";
 
-mkdir "$cfg->{general}{var}/www/run";
-my $socket_path = "$cfg->{general}{var}/www/run/search.sock";
+# mkdir "$cfg->{general}{var}/www/run";
+my $socket_path = "/var/www/run/search.sock";
 
 print "made run dir\n";
 
@@ -47,20 +48,16 @@ my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV,
 
 print "made socket and request objects\n";
 
-chmod 0777, $socket_path;
-
-print "chmod 0777\n";
-
 my $config = {
-	INCLUDE_PATH => "html"
+	# XXX: this needs to be fixed
+	INCLUDE_PATH => "/home/kyle/src/pricechart/html"
 };
 my $template = Template->new($config);
 
 print "made new template config\n";
 
-my $db_dir = "$cfg->{general}{var}/db";
 my $dbh = DBI->connect(
-	"dbi:SQLite:dbname=$db_dir/pricechart.db",
+	"dbi:SQLite:dbname=/var/www/db/pricechart.db",
 	"",
 	"",
 	{ RaiseError => 1 }
diff --git a/shared.pm b/shared.pm
@@ -42,7 +42,6 @@ my $parser = Config::Grammar->new({
 	},
 	general => {
 		_vars => [
-			'var',
 			'user_agent',
 			'email',
 			'smtp',
@@ -51,10 +50,10 @@ my $parser = Config::Grammar->new({
 });
 
 our $cfg =$parser->parse($cfg_file) or die "error: $parser->{err}\n";
-make_dir($cfg->{general}{var});
 
-my $db_dir = "$cfg->{general}{var}/db";
-make_dir($db_dir);
+my $db_dir = "/var/www/db";
+mkdir $db_dir;
+
 our $dbh = DBI->connect(
 	"dbi:SQLite:dbname=$db_dir/pricechart.db",
 	"",
@@ -86,24 +85,15 @@ sub get_ua
 sub get_log
 {
 	my $file = shift;
-	my $log_dir = "$cfg->{general}{var}/log";
+	my $log_dir = "/var/www/logs/pricechart";
 
-	make_dir($log_dir);
-	open my $log, ">>", "$log_dir/$file.txt";
+	mkdir $log_dir;
+	open my $log, ">>", "$log_dir/$file.log" || die "$!";
 
 	print $log strftime "%b %e %Y %H:%M ", localtime;
 	return $log;
 }
 
-sub make_dir
-{
-	my $dir = shift;
-
-	unless (-e $dir or mkdir $dir) {
-		die "Could not create directory $dir: $!\n"
-	}
-}
-
 sub vprint
 {
 	print $_[0] if ($args{v});