Add incomplete TDP script
This commit is contained in:
		
							parent
							
								
									2a5ee63cc5
								
							
						
					
					
						commit
						68824daaae
					
				|  | @ -0,0 +1,119 @@ | |||
| #! /usr/bin/bash | ||||
| 
 | ||||
| # Set up help text | ||||
| command_name=$(basename $0) | ||||
| help_text="${command_name}: GDP Win 3 TDP management script | ||||
| 
 | ||||
| This script checks and sets the TDP using intel_rapl | ||||
| 
 | ||||
| Usage: | ||||
|   ${command_name} COMMAND [ARGUMENTS] | ||||
| 
 | ||||
| Command: | ||||
|   check [ARG]      Checks current TDP and prints it in watts | ||||
|   set WATT         Setts TDP to the requested number in watts | ||||
|   help             Prints this help text | ||||
|   COMMAND help     Prints help for specified command" | ||||
| 
 | ||||
| check_help_text="${command_name} check [ARG] | ||||
| 
 | ||||
| Example: | ||||
|   ${command_name} check --detail | ||||
| 
 | ||||
| Arguments: | ||||
|   --detail, -d     Prints PL2 as well as PL1 | ||||
|   --help           Prints this help text" | ||||
| 
 | ||||
| set_help_text="${command_name} set WATT | ||||
| 
 | ||||
| Example: | ||||
|   ${command_name} set 15 | ||||
| 
 | ||||
| Arguments: | ||||
|   --help           Prints this help text" | ||||
| 
 | ||||
| print_help () { | ||||
|   case $1 in | ||||
|     "check") | ||||
|       echo "$check_help_text" | ||||
|       ;; | ||||
|     "set") | ||||
|       echo "$set_help_text" | ||||
|       ;; | ||||
|     *) | ||||
|       echo "$help_text" | ||||
|       ;; | ||||
|   esac | ||||
| } | ||||
| 
 | ||||
| print_unknown () { | ||||
|   echo "Unknown command or incorrect arguments. | ||||
|   Try \"${command_name} help\" or \"${command_name} COMMAND --help\"" | ||||
| } | ||||
| # End of help text | ||||
| 
 | ||||
| # Retrieves current TDP and prints it | ||||
| check_tdp () { | ||||
|   if [ "$1" == "--detail" ] || [ "$1" == "-d" ]; then | ||||
|       echo "Placeholder" | ||||
|       echo "Extra placeholder" | ||||
| 
 | ||||
|   elif [ -z "$1" ]; then | ||||
|       echo "Placeholder" | ||||
| 
 | ||||
|   elif [ "$1" == "--help" ]; then | ||||
|     print_help "check" | ||||
| 
 | ||||
|   else | ||||
|     print_unknown | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| # Sets TDP to number provided as first argument | ||||
| set_tdp () { | ||||
|   if [ -z "$1" ]; then | ||||
|     print_unknown | ||||
|     exit | ||||
|   elif [ "$1" == "--help" ]; then | ||||
|     print_help "set" | ||||
|     exit | ||||
|   fi | ||||
| 
 | ||||
|   if ! [[ $1 =~ ^-?[0-9]+$ ]]; then | ||||
|     echo "TDP must be a plain number!)" | ||||
|   elif [[ ! "$@" == *"--force"* ]] || [ $1 -lt 8 ] || [ $1 -gt 28 ]; then | ||||
|     echo "TDP too high or low, should be between 8W and 28W" | ||||
|   else | ||||
|     #PL1 | ||||
|     local watts=$1 | ||||
|     local uwatts=$(expr $watts '*' 1000000) | ||||
| 
 | ||||
|     #PL2 | ||||
|     local watts2=$(expr $watts + 2) | ||||
|     local uwatts2=$(expr $watts2 '*' 1000000) | ||||
| 
 | ||||
|     echo $uwatts | ||||
|     echo "PL1 is now ${watts}W (Long-term)" | ||||
|     echo "PL2 is now ${watts2}W (Short-term)" | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| # Command handler | ||||
| case $1 in | ||||
| 
 | ||||
|   "check") | ||||
|     check_tdp "${@:2}" | ||||
|     ;; | ||||
| 
 | ||||
|   "set") | ||||
|     set_tdp "${@:2}" | ||||
|     ;; | ||||
| 
 | ||||
|   "help") | ||||
|     print_help | ||||
|     ;; | ||||
| 
 | ||||
|   *) | ||||
|     print_unknown | ||||
|     ;; | ||||
| esac | ||||
		Loading…
	
		Reference in New Issue