Advertisement
mrMuppet

Custom.pm

Feb 1st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.94 KB | None | 0 0
  1. package Slim::Utils::OS::Custom;
  2. #package Slim::Utils::OS::FreeBSD;
  3.  
  4. use strict;
  5. use base qw(Slim::Utils::OS::Unix);
  6.  
  7. use Config;
  8.  
  9. sub initDetails {
  10.     my $class = shift;
  11.  
  12.     $class->{osDetails} = $class->SUPER::initDetails();
  13.     $class->{osDetails}->{'os'} = 'FreeBSD';
  14.     $class->{osDetails}->{osName} = 'FreeBSD';
  15.  
  16.     return $class->{osDetails};
  17. }
  18.  
  19. sub initSearchPath {
  20.     my $class = shift;
  21.  
  22.     $class->SUPER::initSearchPath();
  23.  
  24.     my @extra_paths = qw(/usr/local/libexec);
  25.    
  26.     Slim::Utils::Misc::addFindBinPaths(@extra_paths);
  27. }
  28.  
  29. sub dirsFor {
  30.     my ($class, $dir) = @_;
  31.  
  32.     my @dirs;
  33.    
  34.     if ($dir =~ /^(?:Firmware|Graphics|HTML|IR|MySQL|SQL|lib|Bin)$/) {
  35.  
  36.         push @dirs, "/usr/local/share/logitechmediaserver/$dir";
  37.  
  38.     } elsif ($dir eq 'Plugins') {
  39.  
  40.         push @dirs, "/usr/local/lib/perl5/site_perl", "/usr/local/share/logitechmediaserver/Plugins", "/usr/local/share/logitechmediaserver/Slim/Plugin", "/var/db/logitechmediaserver/cache/InstalledPlugins/Plugins";
  41.  
  42.     } elsif ($dir eq 'strings' || $dir eq 'revision') {
  43.  
  44.         push @dirs, "/usr/local/share/logitechmediaserver";
  45.  
  46.     } elsif ($dir eq 'types' || $dir eq 'convert') {
  47.  
  48.         push @dirs, "/usr/local/share/logitechmediaserver";
  49.  
  50.     } elsif ($dir eq 'prefs') {
  51.  
  52.         push @dirs, "/var/db/logitechmediaserver/prefs";
  53.  
  54.     } elsif ($dir eq 'log') {
  55.  
  56.         push @dirs, "/var/log/logitechmediaserver";
  57.  
  58.     } elsif ($dir eq 'cache' || $dir eq 'updates' || $dir eq 'oldprefs') {
  59.  
  60.         push @dirs, "/var/db/logitechmediaserver/cache";
  61.  
  62.     } elsif ($dir =~ /^(?:libpath|mysql-language)$/) {
  63.  
  64.         # Do nothing - use the depended upon MySQL install.
  65.  
  66.     } elsif ($dir eq 'scprefs') {
  67.  
  68.         if (-r '/var/db/logitechmediaserver/prefs/server.prefs') {
  69.  
  70.             push @dirs, '/var/db/logitechmediaserver/prefs';
  71.  
  72.         }
  73.  
  74.     } elsif ($dir =~ /^(?:music|playlists|videos|pictures)$/) {
  75.  
  76.         push @dirs, '';
  77.  
  78.     } else {
  79.  
  80.         warn "dirsFor: Didn't find a match request: [$dir]\n";
  81.  
  82.     }
  83.  
  84.     return wantarray() ? @dirs : $dirs[0];
  85. }
  86.  
  87.  
  88. 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement