summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/tweaker/bin/twk_EXAMPLE.pl
blob: 7dfb075e50208a11b94dc911934b023120092e92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# 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 <http://www.gnu.org/licenses/>.

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
#