#!/usr/bin/python import sys import subprocess def system(cmd): print(f"$ {cmd}") subprocess.run(cmd, shell=True) def usage(): print(f"usage: {sys.argv[0]} [info] / [on|off] / [turbo on|off] / [set value]") print(f"info -> prints \'cpupower frequency-info\'") print(f"on|off -> toggles powersave/performance (on is psave)") print(f"turbo on|off -> enables/disables turbo") print(f"set value -> sets maximum clock speed value") def main(argv) -> int: argc = len(argv) if argc < 2: usage() return 1 opt1 = argv[1] if argc == 2: if opt1 == "on": system("sudo -E cpupower frequency-set -g powersave") return 0 elif opt1 == "off": system("sudo -E cpupower frequency-set -g performance") return 0 elif opt1 == "info": system("cpupower frequency-info") return 0 elif opt1 == "turbo": print("error: not enough arguments for turbo") usage() return 1 elif opt1 == "set": print("error: not enough arguments to set clock") usage() return 1 elif opt1 == "-h" or opt1 == "--help": usage() return 0 else: print(f"unknown option \'{opt1}\'") return 1 elif argc >= 3: opt2 = argv[2] if opt1 == "turbo": if opt2 == "on": system("echo 0 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo") return 0 elif opt2 == "off": system("echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo") return 0 else: if opt2 == "-h" or opt2 == "--help": usage() return 0 print(f"unknown option \'{opt2}\' for 'turbo'") return 1 elif opt1 == "set": if opt2 == "-h" or opt2 == "--help": usage() return 0 system(f"sudo cpupower frequency-set -u {opt2}") return 0 else: if opt1 == "on": if opt2 == "-h" or opt2 == "--help": usage() return 0 system("sudo -E cpupower frequency-set -g powersave") return 0 elif opt1 == "off": if opt2 == "-h" or opt2 == "--help": usage() return 0 system("sudo -E cpupower frequency-set -g performance") return 0 elif opt1 == "info": if opt2 == "-h" or opt2 == "--help": usage() return 0 system("cpupower frequency-info") return 0 elif opt1 == "-h" or opt1 == "--help": usage() return 0 else: print(f"unknown option \'{opt1}\'") return 1 return 0 main(sys.argv)