#!/usr/bin/perl

#######################################################################
# This script will attempt to import the templates, text, and locales
# into postgres.

use Pg;

`psql -f pwiki.pgsql template1`;

$conn=Pg::connectdb("dbname=wiki");

# import locales
opendir(DIR,"../locale");
@locales=grep(/.*/ && !/^\./, readdir(DIR));
foreach $locale (@locales){
  $res=$conn->exec("insert into locale (locale) values ('$locale')");
}
closedir(DIR);

# import text
opendir(DIR,"../areas");
@areas=grep(/.*/ && !/^\./, readdir(DIR));
foreach $area (@areas){
  opendir(AREA,"../textdir/$area");
  @topics=grep(/.*/ && !/^\./ && !/\.lck$/ , readdir(AREA));
  foreach $topic (@topics){
    $topic =~ s/\.txt$//;
    $size=(stat("../textdir/$area/$topic.txt"))[7];
    open(TOPIC,"../textdir/$area/$topic.txt");
    read TOPIC, $file, $size;
    close(TOPIC);
    $file=~s/\'/''/gs;
    $res=$conn->exec("insert into html (type, area, name, text) values
                   ('text', '$area', '$topic', '$file')");
  }
  closedir(AREA);
}
closedir(DIR);

# import area templates
opendir(DIR,"../templates/areas");
@areas=grep(/.*/ && !/^\./, readdir(DIR));
foreach $area (@areas){
  opendir(AREA,"../templates/areas/$area");
  @templates=grep(/.*/ && !/^\./ && !/\.lck$/ , readdir(AREA));
  foreach $template (@templates){
    $template =~ s/\.html$//;
    $size=(stat("../templates/areas/$area/$template.html"))[7];
    open(TEMPLATE,"../templates/areas/$area/$template.html");
    read TEMPLATE, $file, $size;
    close(TEMPLATE);
    $file=~s/\'/''/gs;
    $res=$conn->exec("insert into html (type, area, name, text) values
                   ('template', '$area', '$template', '$file')");
  }
  closedir(AREA);
}
closedir(DIR);

# import global templates
opendir(DIR,"../templates/global");
@locales=grep(/.*/ && !/^\./, readdir(DIR));
foreach $locale (@locales){
  opendir(LOCALE,"../templates/global/$locale");
  @templates=grep(/.*/ && !/^\./ && !/\.lck$/ , readdir(LOCALE));
  foreach $template (@templates){
    $template =~ s/\.html$//;
    $size=(stat("../templates/global/$locale/$template.html"))[7];
    open(TEMPLATE,"../templates/global/$locale/$template.html");
    read TEMPLATE, $file, $size;
    close(TEMPLATE);
    $file=~s/\'/''/gs;
    $res=$conn->exec("insert into html (type, locale, name, text) values
                   ('template', '$locale', '$template', '$file')");
  }
  closedir(LOCALE);
}
closedir(DIR);

