From: Ian Beckwith Date: Mon, 20 Sep 2010 03:11:42 +0000 (+0100) Subject: basic tags display in root of fs X-Git-Tag: debian/1.0-1~201 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;ds=sidebyside;h=7093fbc0f65ca7df7914aabcae9008195d9b41f1;p=id3fs.git basic tags display in root of fs --- diff --git a/lib/ID3FS/DB.pm b/lib/ID3FS/DB.pm index af325ba..b8a2c8c 100644 --- a/lib/ID3FS/DB.pm +++ b/lib/ID3FS/DB.pm @@ -81,6 +81,14 @@ sub cmd_sth return $sth; } +sub tags +{ + my($self, $path)=@_; + my $sql="SELECT DISTINCT name FROM tags;"; + my $tags=$self->cmd_rows($sql); + return(map { $_->[0]; } @$tags); +} + sub add { my($self,$path)=@_; @@ -221,6 +229,13 @@ sub cmd_onerow return($sth->fetchrow_array()); } +sub cmd_rows +{ + my ($self, @args)=@_; + my $sth=$self->cmd_sth(@args); + return $sth->fetchall_arrayref(); +} + sub cmd_id { my ($self, @args)=@_; diff --git a/lib/ID3FS/Fuse.pm b/lib/ID3FS/Fuse.pm index bfe36da..54ea029 100644 --- a/lib/ID3FS/Fuse.pm +++ b/lib/ID3FS/Fuse.pm @@ -26,30 +26,30 @@ sub run mountpoint => $self->{mountpoint}, threaded=>0, debug => 1, - getattr => "ID3FS::Fuse::getattr", -# readlink => "ID3FS::Fuse::readlink", - getdir => "ID3FS::Fuse::getdir", -# mknod => "ID3FS::Fuse::mknod", -# mkdir => "ID3FS::Fuse::mkdir", -# unlink => "ID3FS::Fuse::unlink", -# rmdir => "ID3FS::Fuse::rmdir", -# symlink => "ID3FS::Fuse::symlink", -# rename => "ID3FS::Fuse::rename", -# link => "ID3FS::Fuse::link", -# chmod => "ID3FS::Fuse::chmod", -# chown => "ID3FS::Fuse::chown", -# truncate => "ID3FS::Fuse::truncate", -# utime => "ID3FS::Fuse::utime", -# open => "ID3FS::Fuse::open", -# read => "ID3FS::Fuse::read", -# write => "ID3FS::Fuse::write", -# statfs => "ID3FS::Fuse::statfs", -# release => "ID3FS::Fuse::release", -# fsync => "ID3FS::Fuse::fsync", -# setxattr => "ID3FS::Fuse::setxattr", -# getxattr => "ID3FS::Fuse::getxattr", -# listxattr => "ID3FS::Fuse::listxattr", -# removexattr => "ID3FS::Fuse::removexattr", + getattr => sub { $self->getattr(@_); }, +# readlink => sub { $self->readlink(@_); }, + getdir => sub { $self->getdir(@_); }, +# mknod => sub { $self->mknod(@_); }, +# mkdir => sub { $self->mkdir(@_); }, +# unlink => sub { $self->unlink(@_); }, +# rmdir => sub { $self->rmdir(@_); }, +# symlink => sub { $self->symlink(@_); }, +# rename => sub { $self->rename(@_); }, +# link => sub { $self->link(@_); }, +# chmod => sub { $self->chmod(@_); }, +# chown => sub { $self->chown(@_); }, +# truncate => sub { $self->truncate(@_); }, +# utime => sub { $self->utime(@_); }, +# open => sub { $self->open(@_); }, +# read => sub { $self->read(@_); }, +# write => sub { $self->write(@_); }, +# statfs => sub { $self->statfs(@_); }, +# release => sub { $self->release(@_); }, +# fsync => sub { $self->fsync(@_); }, +# setxattr => sub { $self->setxattr(@_); }, +# getxattr => sub { $self->getxattr(@_); }, +# listxattr => sub { $self->listxattr(@_); }, +# removexattr => sub { $self->removexattr(@_); }, ); } @@ -71,8 +71,12 @@ sub readlink { print "readlink\n"; return "FIXME"; } sub getdir { - my($filename)=@_; - print "GETDIR: $filename\n"; + my($self, $filename)=@_; + print "GETDIR(", ref($self), ": $filename\n"; + if($filename eq "/") + { + return(".", "..", $self->{db}->tags(), 0); + } return('.',0); }