|
@@ -0,0 +1,100 @@
|
|
|
+package Slim::Utils::OS::OpenADK;
|
|
|
+
|
|
|
+# Logitech Media Server Copyright 2001-2011 Logitech.
|
|
|
+# This program is free software; you can redistribute it and/or
|
|
|
+# modify it under the terms of the GNU General Public License,
|
|
|
+# version 2.
|
|
|
+
|
|
|
+use strict;
|
|
|
+use FindBin qw($Bin);
|
|
|
+
|
|
|
+use base qw(Slim::Utils::OS::Linux);
|
|
|
+
|
|
|
+sub initDetails {
|
|
|
+ my $class = shift;
|
|
|
+
|
|
|
+ $class->{osDetails} = $class->SUPER::initDetails();
|
|
|
+
|
|
|
+ # package specific addition to @INC to cater for plugin locations
|
|
|
+ $class->{osDetails}->{isDebian} = 1 ;
|
|
|
+
|
|
|
+ unshift @INC, '/usr/share/logitechmediaserver';
|
|
|
+ unshift @INC, '/usr/share/logitechmediaserver/CPAN';
|
|
|
+
|
|
|
+ return $class->{osDetails};
|
|
|
+}
|
|
|
+
|
|
|
+=head2 dirsFor( $dir )
|
|
|
+
|
|
|
+Return OS Specific directories.
|
|
|
+
|
|
|
+Argument $dir is a string to indicate which of the server directories we
|
|
|
+need information for.
|
|
|
+
|
|
|
+=cut
|
|
|
+
|
|
|
+sub dirsFor {
|
|
|
+ my ($class, $dir) = @_;
|
|
|
+
|
|
|
+ my @dirs = ();
|
|
|
+
|
|
|
+ if ($dir =~ /^(?:oldprefs|updates)$/) {
|
|
|
+
|
|
|
+ push @dirs, $class->SUPER::dirsFor($dir);
|
|
|
+
|
|
|
+ } elsif ($dir =~ /^(?:Firmware|Graphics|HTML|IR|MySQL|SQL|lib|Bin)$/) {
|
|
|
+
|
|
|
+ push @dirs, "/usr/share/logitechmediaserver/$dir";
|
|
|
+
|
|
|
+ } elsif ($dir eq 'Plugins') {
|
|
|
+
|
|
|
+ push @dirs, $class->SUPER::dirsFor($dir);
|
|
|
+ push @dirs, "/usr/share/perl5/Slim/Plugin", "/usr/share/logitechmediaserver/Plugins";
|
|
|
+
|
|
|
+ } elsif ($dir =~ /^(?:strings|revision)$/) {
|
|
|
+
|
|
|
+ push @dirs, "/usr/share/logitechmediaserver";
|
|
|
+
|
|
|
+ } elsif ($dir eq 'libpath') {
|
|
|
+
|
|
|
+ push @dirs, "/usr/share/logitechmediaserver";
|
|
|
+
|
|
|
+ } elsif ($dir =~ /^(?:types|convert)$/) {
|
|
|
+
|
|
|
+ push @dirs, "/etc/logitechmediaserver";
|
|
|
+
|
|
|
+ } elsif ($dir =~ /^(?:prefs)$/) {
|
|
|
+
|
|
|
+ push @dirs, $::prefsdir || "/var/lib/logitechmediaserver/prefs";
|
|
|
+
|
|
|
+ } elsif ($dir eq 'log') {
|
|
|
+
|
|
|
+ push @dirs, $::logdir || "/var/log/logitechmediaserver";
|
|
|
+
|
|
|
+ } elsif ($dir eq 'cache') {
|
|
|
+
|
|
|
+ push @dirs, $::cachedir || "/var/lib/logitechmediaserver/cache";
|
|
|
+
|
|
|
+ } elsif ($dir =~ /^(?:music|playlists)$/) {
|
|
|
+
|
|
|
+ push @dirs, '';
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ warn "dirsFor: Didn't find a match request: [$dir]\n";
|
|
|
+ }
|
|
|
+
|
|
|
+ return wantarray() ? @dirs : $dirs[0];
|
|
|
+}
|
|
|
+
|
|
|
+# Bug 9488, always decode on Ubuntu/Debian
|
|
|
+sub decodeExternalHelperPath {
|
|
|
+ return Slim::Utils::Unicode::utf8decode_locale($_[1]);
|
|
|
+}
|
|
|
+
|
|
|
+sub scanner {
|
|
|
+ return '/usr/sbin/logitechmediaserver-scanner';
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+1;
|