pricecharts

track prices of consumer electronics
Log | Files | Refs | README

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:
Metc/pricechart.cfg | 1-
Mgen_index.pl | 5+++--
Mgen_svg.pl | 4++--
Mprice_scraper.pl | 2+-
Msearch.pl | 23++++++++++-------------
Mshared.pm | 22++++++----------------
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});