diff options
Diffstat (limited to 'tools/osx/preflight')
-rwxr-xr-x | tools/osx/preflight | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/tools/osx/preflight b/tools/osx/preflight deleted file mode 100755 index e1fa21081c..0000000000 --- a/tools/osx/preflight +++ /dev/null @@ -1,176 +0,0 @@ -#!/usr/bin/perl - -die("No HOME set, cannot install defaults.\n") - if !$ENV{HOME}; - -die("No XBMC_HOME set, cannot install defaults.\n") - if !$ENV{'XBMC_HOME'}; - -sub get_home { - return $ENV{'HOME'} if defined $ENV{'HOME'}; -} - -sub get_extras { - # XBMC_HOME is assumed to be always setup - return $ENV{'XBMC_HOME'}."/extras/" if get_os() eq "osx"; - return; -} - -sub get_xbmc_home { - my $os = get_os(); - my $home = get_home(); - return if !defined $home; - if ( $os eq "osx" ) { - return $home."/Library/Application Support/XBMC"; - } - elsif ( $os eq "linux" ) { - return $home."/.xbmc"; - } - return; -} - -sub get_os { - if ( defined $ENV{'OSTYPE'} && $ENV{'OSTYPE'} =~ /linux/ ) { - return "linux"; - } - return "osx"; -} - -sub get_userdata_path { - my $xhome = get_xbmc_home(); - return if !defined $xhome; - return "$xhome/userdata"; -} - -sub setup_sources { - my $xbmchome = get_xbmc_home(); - my $userdata = get_userdata_path(); - my $sources = $userdata."/sources.xml"; - - # check whether a sources.xml already exists, and if it does back it up - if ( -f $sources ) { - print STDERR "sources.xml found at \"$sources\", backing up\n"; - my $backup_sources = $sources.".".time().".xml"; - `cp -f \"$sources\" \"$backup_sources\"`; - } - - # construct a sources.xml string - my $sources_xml = get_sources_xml( get_default_sources() ); - if ( $sources_xml ) { - open SOURCES, ">$sources" || exit; - print SOURCES get_sources_xml( get_default_sources() ); - close SOURCES; - } -} - -sub get_sources_xml { - my $sources = shift; - my ($sourcetype, $source); - - return if !defined $sources; - - my $xml = "<sources>\n"; - while ( ($sourcetype, $source) = each ( %$sources ) ) { - $xml .= (" " x 4)."<$sourcetype>\n"; - $xml .= (" " x 8)."<default></default>\n"; - my ($name, $path); - while ( ($name, $path) = each( %{ $source } ) ) { - $xml .= (" " x 8)."<source>\n"; - $xml .= (" " x 12)."<name>$name</name>\n"; - if ( $path =~ /(.*)\^\^(.*)/ ) { - $xml .= (" " x 12)."<path>".$1."</path>\n"; - $xml .= (" " x 12)."<thumbnail>".$2."</thumbnail>\n"; - } - else { - $xml .= (" " x 12)."<path>".$path."</path>\n"; - } - $xml .= (" " x 8)."</source>\n"; - } - $xml .= (" " x 4)."</$sourcetype>\n"; - } - $xml .= "</sources>\n"; - return $xml; -} - -sub get_default_sources { - my $sources = {}; - my $home = get_home(); - my $xbmchome = get_xbmc_home(); - return if !defined $xbmchome; - - $sources->{'programs'} = {}; - $sources->{'video'} = {}; - $sources->{'music'} = {}; - $sources->{'pictures'} = {}; - $sources->{'files'} = {}; - - if ( get_os() eq "osx" ) { - - # Default sources for OS X - $sources->{'music'}->{'Music'} = $home."/Music"; - $sources->{'music'}->{'Music Playlists'} = "special://musicplaylists"; - $sources->{'video'}->{'Movies'} = $home."/Movies"; - $sources->{'video'}->{'Video Playlists'} = "special://videoplaylists"; - $sources->{'pictures'}->{'Pictures'} = $home."/Pictures"; - } - elsif ( get_os() eq "linux" ) { - - # Default source for Linux - for my $key ( keys %$sources ) { - $sources->{$key}->{'Media'} = "/media"; - $sources->{$key}->{'Home'} = "$home"; - $sources->{$key}->{'Desktop'} = "$home/Desktop"; - $sources->{$key}->{'Root'} = "/"; - } - } - return $sources; -} - -sub first_xbmc_run() { - my $home = get_xbmc_home(); - if ( ! -f "$home/.setup_complete" ) { - return 1; - } - return; -} - -sub first_xbmc_version_run() { - my $home = get_xbmc_home(); - if ( ! -f "$home/.setup_complete" ) { - return 1; - } - return; -} - -sub setup_default_xbmc() { - my $extras = get_extras(); - my $xhome = get_xbmc_home(); - my $userdata = get_userdata_path(); - - die("No extras :(\n") - if !defined $extras; - die("No XBMC home folder :(\n") - if !defined $xhome; - die ("No userdata folder :(\n") - if !defined $userdata; - - # create userdata directory if it doesn't exist - `mkdir -p "$userdata"`; - # copy extra stuff to xbmc's userdata directory - `cp -fRv "$extras/user/" "$userdata"`; - - setup_sources(); - `touch -f "$xhome/.setup_complete"`; -} - -sub setup_version_xbmc() { - #TODO -} - -if (first_xbmc_run()) { - setup_default_xbmc(); -} - -if (first_xbmc_version_run()) { - setup_version_xbmc(); -} |