Changeset 1472 for trunk/references/Shepherd/Configure.pm
- Timestamp:
- Sep 21, 2013, 7:53:22 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/references/Shepherd/Configure.pm
r1465 r1472 2 2 package Shepherd::Configure; 3 3 4 my $version = '0. 32';4 my $version = '0.40'; 5 5 6 6 use strict; … … 122 122 &::write_channels_file; 123 123 &update_mythtv_channels($mchans) if ($mchans); 124 &create_symlink(); 124 125 125 126 print "\nMythTV Integration\n\n". … … 999 1000 } 1000 1001 1002 sub 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 1001 1072 # ------------------------------ 1002 1073 # - MythTV Integration - … … 1017 1088 # 1. Check existence of symlink 1018 1089 1019 my $me = "$::CWD/applications/shepherd/shepherd";1020 1021 1090 &::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(); 1085 1093 1086 1094 # 2. Insert 'tv_grab_au' into mythconverg -> videosource
Note: See TracChangeset
for help on using the changeset viewer.