OpenADK.pm 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package Slim::Utils::OS::OpenADK;
  2. # Logitech Media Server Copyright 2001-2011 Logitech.
  3. # This program is free software; you can redistribute it and/or
  4. # modify it under the terms of the GNU General Public License,
  5. # version 2.
  6. use strict;
  7. use FindBin qw($Bin);
  8. use base qw(Slim::Utils::OS::Linux);
  9. sub initDetails {
  10. my $class = shift;
  11. $class->{osDetails} = $class->SUPER::initDetails();
  12. # package specific addition to @INC to cater for plugin locations
  13. $class->{osDetails}->{isDebian} = 1 ;
  14. unshift @INC, '/usr/share/logitechmediaserver';
  15. unshift @INC, '/usr/share/logitechmediaserver/CPAN';
  16. return $class->{osDetails};
  17. }
  18. =head2 dirsFor( $dir )
  19. Return OS Specific directories.
  20. Argument $dir is a string to indicate which of the server directories we
  21. need information for.
  22. =cut
  23. sub dirsFor {
  24. my ($class, $dir) = @_;
  25. my @dirs = ();
  26. if ($dir =~ /^(?:oldprefs|updates)$/) {
  27. push @dirs, $class->SUPER::dirsFor($dir);
  28. } elsif ($dir =~ /^(?:Firmware|Graphics|HTML|IR|MySQL|SQL|lib|Bin)$/) {
  29. push @dirs, "/usr/share/logitechmediaserver/$dir";
  30. } elsif ($dir eq 'Plugins') {
  31. push @dirs, $class->SUPER::dirsFor($dir);
  32. push @dirs, "/usr/share/perl5/Slim/Plugin", "/usr/share/logitechmediaserver/Plugins";
  33. } elsif ($dir =~ /^(?:strings|revision)$/) {
  34. push @dirs, "/usr/share/logitechmediaserver";
  35. } elsif ($dir eq 'libpath') {
  36. push @dirs, "/usr/share/logitechmediaserver";
  37. } elsif ($dir =~ /^(?:types|convert)$/) {
  38. push @dirs, "/etc/logitechmediaserver";
  39. } elsif ($dir =~ /^(?:prefs)$/) {
  40. push @dirs, $::prefsdir || "/var/lib/logitechmediaserver/prefs";
  41. } elsif ($dir eq 'log') {
  42. push @dirs, $::logdir || "/var/log/logitechmediaserver";
  43. } elsif ($dir eq 'cache') {
  44. push @dirs, $::cachedir || "/var/lib/logitechmediaserver/cache";
  45. } elsif ($dir =~ /^(?:music|playlists)$/) {
  46. push @dirs, '';
  47. } else {
  48. warn "dirsFor: Didn't find a match request: [$dir]\n";
  49. }
  50. return wantarray() ? @dirs : $dirs[0];
  51. }
  52. # Bug 9488, always decode on Ubuntu/Debian
  53. sub decodeExternalHelperPath {
  54. return Slim::Utils::Unicode::utf8decode_locale($_[1]);
  55. }
  56. sub scanner {
  57. return '/usr/sbin/logitechmediaserver-scanner';
  58. }
  59. 1;