Changeset 1472


Ignore:
Timestamp:
09/21/13 19:53:22 (4 years ago)
Author:
mbarry
Message:

Shepherd::Configure: Attempt to create symlink to tv_grab_au both in regular --configure and --configure-mythtv modes, not just the latter. Since it's not really MythTV-specific.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/references/Shepherd/Configure.pm

    r1465 r1472  
    22package Shepherd::Configure; 
    33 
    4 my $version = '0.32'; 
     4my $version = '0.40'; 
    55 
    66use strict; 
     
    122122    &::write_channels_file; 
    123123    &update_mythtv_channels($mchans) if ($mchans); 
     124    &create_symlink(); 
    124125 
    125126    print "\nMythTV Integration\n\n". 
     
    9991000} 
    10001001 
     1002sub create_symlink 
     1003{ 
     1004    # 1. Check existence of symlink 
     1005 
     1006    my $me = "$::CWD/applications/shepherd/shepherd"; 
     1007 
     1008    my $mapped = 0; 
     1009    my $symlink; 
     1010    my @delete_me; 
     1011    foreach my $path (split/:/, $ENV{PATH}) 
     1012    { 
     1013        my $tv_grab_au = "$path/tv_grab_au"; 
     1014 
     1015        # Figure out an appropriate symlink. 
     1016        # (We'll use /usr/bin/tv_grab_au, but only if  
     1017        # /usr/bin/ is in PATH.) 
     1018        $symlink = $tv_grab_au unless ($symlink && $symlink eq '/usr/bin/tv_grab_au'); 
     1019 
     1020        if (-e $tv_grab_au) 
     1021        { 
     1022            if (-l $tv_grab_au) 
     1023            { 
     1024                my $link = readlink($tv_grab_au); 
     1025                if ($link and $link eq $me) 
     1026                { 
     1027                    &::log("Symlink $tv_grab_au is correctly mapped to $me.\n"); 
     1028                    $mapped = $tv_grab_au; 
     1029                    last; 
     1030                } 
     1031            } 
     1032            push @delete_me, $tv_grab_au; 
     1033        } 
     1034    } 
     1035 
     1036    &::log("\n"); 
     1037 
     1038    if (!$mapped or @delete_me) 
     1039    { 
     1040        if (@delete_me) 
     1041        { 
     1042            &::log("\nShepherd would like to DELETE the following file(s):\n\n"); 
     1043            system ("ls -l @delete_me"); 
     1044            &::log("\n"); 
     1045        } 
     1046        if (!$mapped) 
     1047        { 
     1048            &::log("Shepherd would like to CREATE the following symlink:\n\n". 
     1049                " $symlink -> $me\n\n"); 
     1050        } 
     1051 
     1052        my $response = &XMLTV::Ask::ask_boolean( 
     1053            ucfirst( 
     1054                ($mapped ? '' : ( 'create symlink ' . (@delete_me ? 'and ' : ''))) . 
     1055                (@delete_me ? 'delete ' . scalar(@delete_me) . ' file(s)' : '')) . 
     1056            '?', 1); 
     1057        unless ($response) 
     1058        { 
     1059            &::log("Aborting.\n"); 
     1060            return; 
     1061        } 
     1062 
     1063        system("sudo rm @delete_me") if (@delete_me); 
     1064        system("sudo ln -s $me $symlink") unless ($mapped); 
     1065    } 
     1066 
     1067    &::log("Symlink established:\n"); 
     1068    system("ls -l `which tv_grab_au`"); 
     1069 
     1070} 
     1071 
    10011072# ------------------------------ 
    10021073# -   MythTV Integration       - 
     
    10171088    # 1. Check existence of symlink 
    10181089 
    1019     my $me = "$::CWD/applications/shepherd/shepherd"; 
    1020  
    10211090    &::log("Step 1: Setting up symlink...\n". 
    1022            "------\n"); 
    1023  
    1024     my $mapped = 0; 
    1025     my $symlink; 
    1026     my @delete_me; 
    1027     foreach my $path (split/:/, $ENV{PATH}) 
    1028     { 
    1029         my $tv_grab_au = "$path/tv_grab_au"; 
    1030  
    1031         # Figure out an appropriate symlink. 
    1032         # (We'll use /usr/bin/tv_grab_au, but only if  
    1033         # /usr/bin/ is in PATH.) 
    1034         $symlink = $tv_grab_au unless ($symlink && $symlink eq '/usr/bin/tv_grab_au'); 
    1035  
    1036         if (-e $tv_grab_au) 
    1037         { 
    1038             if (-l $tv_grab_au) 
    1039             { 
    1040                 my $link = readlink($tv_grab_au); 
    1041                 if ($link and $link eq $me) 
    1042                 { 
    1043                     &::log("Symlink $tv_grab_au is correctly mapped to $me.\n"); 
    1044                     $mapped = $tv_grab_au; 
    1045                     last; 
    1046                 } 
    1047             } 
    1048             push @delete_me, $tv_grab_au; 
    1049         } 
    1050     } 
    1051  
    1052     &::log("\n"); 
    1053  
    1054     if (!$mapped or @delete_me) 
    1055     { 
    1056         if (@delete_me) 
    1057         { 
    1058             &::log("\nShepherd would like to DELETE the following file(s):\n\n"); 
    1059             system ("ls -l @delete_me"); 
    1060             &::log("\n"); 
    1061         } 
    1062         if (!$mapped) 
    1063         { 
    1064             &::log("Shepherd would like to CREATE the following symlink:\n\n". 
    1065                 " $symlink -> $me\n\n"); 
    1066         } 
    1067  
    1068         my $response = &XMLTV::Ask::ask_boolean( 
    1069             ucfirst( 
    1070                 ($mapped ? '' : ( 'create symlink ' . (@delete_me ? 'and ' : ''))) . 
    1071                 (@delete_me ? 'delete ' . scalar(@delete_me) . ' file(s)' : '')) . 
    1072             '?', 1); 
    1073         unless ($response) 
    1074         { 
    1075             &::log("Aborting.\n"); 
    1076             return; 
    1077         } 
    1078  
    1079         system("sudo rm @delete_me") if (@delete_me); 
    1080         system("sudo ln -s $me $symlink") unless ($mapped); 
    1081     } 
    1082  
    1083     &::log("Symlink established:\n"); 
    1084     system("ls -l `which tv_grab_au`"); 
     1091           "------\n"); 
     1092    &create_symlink(); 
    10851093 
    10861094    # 2. Insert 'tv_grab_au' into mythconverg -> videosource 
  • trunk/status

    r1471 r1472  
    33reference       Shepherd/Common.pm  1.10 
    44reference       Shepherd/MythTV.pm  0.40 
    5 reference       Shepherd/Configure.pm   0.32 
     5reference       Shepherd/Configure.pm   0.40 
    66reference       Shepherd/json_pp.pm 0.2 
    77grabber         oztivo              2.51 
Note: See TracChangeset for help on using the changeset viewer.