#! /usr/bin/env python # -*- coding: UTF-8 -*- #-----------------------------------------------------------------------------* import subprocess, sys, os, filecmp #-----------------------------------------------------------------------------* # FOR PRINTING IN COLOR * #-----------------------------------------------------------------------------* class bcolors: HEADER = '\033[95m' BLUE = '\033[94m' GREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' BOLD_BLUE = '\033[1m' + '\033[94m' BOLD_GREEN = '\033[1m' + '\033[92m' BOLD_RED = '\033[1m' + '\033[91m' #-----------------------------------------------------------------------------* # runCommand * #-----------------------------------------------------------------------------* def runCommand (cmd) : str = "+" for s in cmd: str += " " + s print (bcolors.BOLD_BLUE + str + bcolors.ENDC) returncode = subprocess.call (cmd) if returncode != 0 : sys.exit (returncode) #-----------------------------------------------------------------------------* def udevPath (): return "/etc/udev/rules.d" #-----------------------------------------------------------------------------* def udevFileForTeensy (): return "49-teensy.rules" #-----------------------------------------------------------------------------* # MAIN * #-----------------------------------------------------------------------------* def installUDEVrulesOnLinux (): #------------------------------------------------------------------ Machine (SYSTEM_NAME, MODE_NAME, RELEASE, VERSION, MACHINE) = os.uname () if SYSTEM_NAME != "Linux" : print (bcolors.BOLD_RED + "This script is available only for Linux" + bcolors.ENDC) sys.exit (1) #------------------------------------------------------------------ Get script absolute path scriptDir = os.path.dirname (os.path.abspath (__file__)) #------------------------------------------------------------------ Install udev file for Teensy if not os.path.exists (udevPath () + "/" + udevFileForTeensy ()) : runCommand (["sudo", "cp", scriptDir + "/" + udevFileForTeensy (), udevPath () + "/" + udevFileForTeensy ()]) runCommand (["sudo", "udevadm", "trigger"]) elif not filecmp.cmp (scriptDir + "/" + udevFileForTeensy (), udevPath () + "/" + udevFileForTeensy ()) : runCommand (["sudo", "cp", scriptDir + "/" + udevFileForTeensy (), udevPath () + "/" + udevFileForTeensy ()]) runCommand (["sudo", "udevadm", "trigger"]) #--- #-----------------------------------------------------------------------------* # MAIN * #-----------------------------------------------------------------------------* def uninstallUDEVrulesOnLinux (): #------------------------------------------------------------------ Machine (SYSTEM_NAME, MODE_NAME, RELEASE, VERSION, MACHINE) = os.uname () if SYSTEM_NAME != "Linux" : print (bcolors.BOLD_RED + "This script is available only for Linux" + bcolors.ENDC) sys.exit (1) #------------------------------------------------------------------ Uninstall if os.path.exists (udevPath () + "/" + udevFileForTeensy ()) : runCommand (["sudo", "rm", udevPath () + "/" + udevFileForTeensy ()]) #------------------------------------------------------------------ Uninstall if os.path.exists (udevPath () + "/" + udevFileForOpenOCD ()) : runCommand (["sudo", "rm", udevPath () + "/" + udevFileForOpenOCD ()]) #-----------------------------------------------------------------------------*