# This is not an executable. It provides an example of how you would implement a # Tweaker Script. For details on the functions provided by Tweaker::Script, # such as execute_shell_command, get_environment_variable, connect_to_db, etc. # see Tweaker/Script.pm # # See the corresponding EXAMPLE.tcf for the Tweak that would correspond to this script. # # BEGIN EXAMPLE # #!/usr/bin/perl -w # Copyright 2009 YOUR NAME HERE # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . use Switch; use Tweaker::Script; package Tweaker::Script; # List all the options that this script supports. Make sure it matches what's in # the corresponding .tcf entry. set_known_options( 'option1', 'option2', 'option3' ); # Try to implement the given option. sub implement_option { my($option) = @_; # If you need a subroutine that is specific to the task of implementing an option, # define it inside the above subroutine. sub my_subroutune { # ... } $dbconnectionstring = get_mythtv_connection_string(); if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this. It's only when you need to change MySQL settings for MythTV. switch ($option) { # List all the options that this script supports. You can have as many as you like. case "option1" { # Perform the actions necessary to implement option1. # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database. # You may want to call execute_shell_command to make changes from the shell. } case "option2" { # Perform the actions necessary to implement option2. # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database. # You may want to call execute_shell_command to make changes from the shell. } case "option3" { # Perform the actions necessary to implement option3. # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database. # You may want to call execute_shell_command to make changes from the shell. } } } else { # You may not have to do this. It's only when you need to change MySQL settings for MythTV. my $logger = get_logger('tweaker.script'); $logger->error("ERROR: Unable to connect to mythconverg database"); $logger->error("ERROR: Unable to implement option $option."); exit -1; # You may not have to do this. It's only when you need to change MySQL settings for MythTV. } # You may not have to do this. It's only when you need to change MySQL settings for MythTV. disconnect_from_db(); # You may not have to do this. It's only when you need to change MySQL settings for MythTV. } # Poll the system to see what recommendationlevel the given option has on the system. sub poll_options { my($option) = @_; # If you need a subroutine that is specific to the task of implementing an option, # define it inside the above subroutine. sub my_subroutune { # ... } $dbconnectionstring = get_mythtv_connection_string(); if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this. It's only when you need to change MySQL settings for MythTV. switch ($option) { # List all the options that this script supports. You can have as many as you like. case "option1" { # Perform the actions necessary to determine a recommendation level for option1. # You may want to call do_query to query to the MySQL database. # You may want to call execute_shell_command to check things in the shell. # When you're done, you can use the recommendation_level subroutine to return the # resulting recommendation level. } case "option2" { # Perform the actions necessary to determine a recommendation level for option2. # You may want to call do_query to query to the MySQL database. # You may want to call execute_shell_command to check things in the shell. # When you're done, you can use the recommendation_level subroutine to return the # resulting recommendation level. } case "option3" { # Perform the actions necessary to determine a recommendation level for option3. # You may want to call do_query to query to the MySQL database. # You may want to call execute_shell_command to check things in the shell. # When you're done, you can use the recommendation_level subroutine to return the # resulting recommendation level. } } } else { # You may not have to do this. It's only when you need to change MySQL settings for MythTV. exit -1; # You may not have to do this. It's only when you need to change MySQL settings for MythTV. } # You may not have to do this. It's only when you need to change MySQL settings for MythTV. disconnect_from_db(); # You may not have to do this. It's only when you need to change MySQL settings for MythTV. } # Unimplemented in 0.7 sub check_option { help; } # Unimplemented in 0.7 sub count_iterations { help; } process_parameters; # mandatory # # END EXAMPLE #