diff --git a/Database.pm b/Database.pm index da4f05f..102d930 100644 --- a/Database.pm +++ b/Database.pm @@ -5,11 +5,58 @@ use DBI; sub new { my $class = shift; + # Get home dir + my $home = $ENV{HOME}; + my $self = { + _home => $home; }; bless $self, $class; return $self; } +sub connect { + my ($self) = @_; + my $home = $self->{_home}; + my $db_file = $home . "/.PM/db.sqlite"; + + my $dbh = DBI->connect("dbi:SQLite:dbname=$db_file","",""); + + return $dbh; +} + +sub mdo { + my ($self) = @_; + my $dbh = $self->{_dbh}; +} + +sub create_base { + my ($self) = @_; + my $home = $self->{_home}; + my $pm_dir = $home."/.PM/"; + + # Check dir + if !(-d $pm_dir) { + # Create dirrectory + @mkdir_cmd = ("mkdir", "$pm_dir"); + system(@mkdir_cmd) == 0 or die "Cannot create dir $pm_dir: $!\n"; + + # Create DB file + @createdb_cmd = ("touch", "$pm_dir/db.sqlite"); + system(@createdb_cmd) == 0 or die "Cannot create database file: $!\n"; + + # Create table. TODO: write this + my $dbh = DBI->connect("dbi:SQLite:dbname=$pm_dir/db.sqlite","",""); + print "Create database schema\n"; + my $q_table = "create table passwords(name VARCHAR(32), resource TEXT, password TEXT)"; + + return 0; + } + else { + print "Dirrectory is exist!\n"; + return 0; + } +} + 1; \ No newline at end of file diff --git a/Password.pm b/Password.pm index 67b3488..cd575f7 100644 --- a/Password.pm +++ b/Password.pm @@ -9,9 +9,6 @@ use Database; sub new { my $class = shift; - # Get home dir - $home = $ENV{HOME}; - my $self = { _home => $home, }; @@ -20,23 +17,4 @@ sub new { return $self; } -sub create_base { - my $self = shift; - my $home = $self->{_home}; - my $pm_dir = $home."/.PM/"; - - # Check dir - if !(-d $pm_dir) { - # Create dirrectory - @cmd_string = ("mkdir", "$pm_dir"); - system(@cmd_string) == 0 or die "Cannot create dir $pm_dir: $!\n"; - # Create database. TODO: write this - my $dbi = DBI->connect("DBD::sqlite"); - } - else { - print "dirrectory is exist!\n"; - return 0; - } -} - 1;