added script for identifying missing robot skins and previews
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@4033 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 6ea8b898ac8f8cfae9b78391b828b3f4e4bb549c Former-commit-id: 062020e40afc829a59a015611689afa5cc7b0749
This commit is contained in:
parent
9b525f433d
commit
4ed796a52f
2 changed files with 160 additions and 0 deletions
130
src/tools/scripts/check_robot_skins.py
Normal file
130
src/tools/scripts/check_robot_skins.py
Normal file
|
@ -0,0 +1,130 @@
|
|||
|
||||
import os
|
||||
import glob
|
||||
from xml.etree.ElementTree import ElementTree as ET
|
||||
from optparse import OptionParser
|
||||
|
||||
#global _has_pysvn
|
||||
#global _has_pygit
|
||||
|
||||
try:
|
||||
import pysvn
|
||||
_has_pysvn = True
|
||||
except ImportError:
|
||||
_has_pysvn = False
|
||||
|
||||
try:
|
||||
from git import *
|
||||
_has_pygit = True
|
||||
except ImportError:
|
||||
_has_pygit = False
|
||||
|
||||
parser = OptionParser()
|
||||
|
||||
parser.set_defaults(dir=".", cars=".", svn=None, git=None)
|
||||
parser.add_option("-d", "--dir", dest="dir", help="driver directory")
|
||||
parser.add_option("-c", "--cars", dest="cars", help="cars directory")
|
||||
if _has_pysvn:
|
||||
parser.add_option("-s", "--svn", action="store_true", dest="svn", help="report svn version numbers")
|
||||
if _has_pygit:
|
||||
parser.add_option("-g", "--git", action="store_true", dest="git", help="report git verison numbers")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
def check_version(myfile):
|
||||
# Check myfile exists
|
||||
if not os.access(myfile, os.R_OK):
|
||||
return None
|
||||
|
||||
# Return SVN revision
|
||||
if _has_pysvn and options.svn:
|
||||
client = pysvn.Client()
|
||||
entry = client.info(myfile)
|
||||
return entry.commit_revision.number
|
||||
|
||||
# Return GIT revision
|
||||
if _has_pygit and options.git:
|
||||
repo = Repo(myfile)
|
||||
for line in repo.commits(path=myfile, max_count=1)[0].message.splitlines():
|
||||
if line.startswith("git-svn-id:"):
|
||||
return int(line.split("@", 1)[1].split(" ",1)[0])
|
||||
|
||||
# Fall through when SVN/GIT not present
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
print "Checking", args[0]
|
||||
print "---"
|
||||
|
||||
tree = ET().parse(os.sep.join([options.dir, args[0]]))
|
||||
|
||||
p = tree.find("section/section")
|
||||
|
||||
for item in list(p):
|
||||
number = item.attrib["name"]
|
||||
|
||||
for driver in list(item):
|
||||
if (driver.attrib["name"] == "name"):
|
||||
name = driver.attrib["val"]
|
||||
|
||||
if (driver.attrib["name"] == "car name"):
|
||||
car = driver.attrib["val"]
|
||||
|
||||
print number, ":", name, "(", car, ")"
|
||||
|
||||
# Check acc model
|
||||
model = ".".join([os.sep.join([options.cars, car, car]), "acc"])
|
||||
model_ver = check_version(model)
|
||||
|
||||
if (model_ver == None):
|
||||
print "ACC model is missing"
|
||||
print
|
||||
continue
|
||||
|
||||
# Check for 'Standard Skin'
|
||||
standard = ".".join([os.sep.join([options.dir, number, car]), "png"])
|
||||
standard_ver = check_version(standard)
|
||||
|
||||
if standard_ver:
|
||||
preview = ".".join([os.sep.join([options.dir, number, car]), "jpg"])
|
||||
preview_ver = check_version(preview)
|
||||
|
||||
if (model_ver > standard_ver):
|
||||
print "Standard: ACC Model is newer"
|
||||
else:
|
||||
print "Standard: OK"
|
||||
|
||||
if (preview_ver == None):
|
||||
print "Preview : Missing"
|
||||
elif (preview_ver < standard_ver):
|
||||
print "Preview : Out of date"
|
||||
else:
|
||||
print "Preview : OK"
|
||||
else:
|
||||
print "Standard: Missing"
|
||||
|
||||
# Check for alternate skins (specific for driver)
|
||||
alternates = glob.glob("-".join([os.sep.join([options.dir, number, car]), "*.png"]))
|
||||
if (alternates != None):
|
||||
for alternate in alternates:
|
||||
alternate_ver=check_version(alternate)
|
||||
|
||||
if (model_ver > alternate_ver):
|
||||
print "Alternate:", os.path.basename(alternate), "ACC Model is newer"
|
||||
|
||||
if (alternate_ver != None):
|
||||
(preview,ext) = os.path.splitext(alternate)
|
||||
preview_ver = check_version(".".join([preview, "jpg"]))
|
||||
|
||||
|
||||
print "Alternate:", os.path.basename(alternate)
|
||||
if (preview_ver == None):
|
||||
print "Preview : Missing"
|
||||
elif (preview_ver < standard_ver):
|
||||
print "Preview : Out of date"
|
||||
else:
|
||||
print "Preview : OK"
|
||||
|
||||
print
|
||||
|
30
src/tools/scripts/check_robot_skins.sh
Normal file
30
src/tools/scripts/check_robot_skins.sh
Normal file
|
@ -0,0 +1,30 @@
|
|||
|
||||
# Script to scan through all robots
|
||||
|
||||
# Uncommet for SVN version checking
|
||||
#versioning="-s"
|
||||
# of for Git-svn version checking
|
||||
versioning="-g"
|
||||
|
||||
drivers="`pwd`/../../drivers/"
|
||||
cars="`pwd`/../../../data/cars/models/"
|
||||
|
||||
|
||||
# usr
|
||||
python check_robot_skins.py -d $drivers/usr/usr_36GP -c $cars $versioning usr_36GP.xml
|
||||
python check_robot_skins.py -d $drivers/usr/usr_ls1 -c $cars $versioning usr_ls1.xml
|
||||
python check_robot_skins.py -d $drivers/usr/usr_ls2 -c $cars $versioning usr_ls2.xml
|
||||
python check_robot_skins.py -d $drivers/usr/usr_sc -c $cars $versioning usr_sc.xml
|
||||
python check_robot_skins.py -d $drivers/usr/usr_trb1 -c $cars $versioning usr_trb1.xml
|
||||
python check_robot_skins.py -d $drivers/usr/usr_rs -c $cars $versioning usr_rs.xml
|
||||
|
||||
# Simplix
|
||||
python check_robot_skins.py -d $drivers/simplix/simplix_36GP -c $cars $versioning simplix_36GP.xml
|
||||
python check_robot_skins.py -d $drivers/simplix/simplix_ls1 -c $cars $versioning simplix_ls1.xml
|
||||
python check_robot_skins.py -d $drivers/simplix/simplix_ls2 -c $cars $versioning simplix_ls2.xml
|
||||
python check_robot_skins.py -d $drivers/simplix/simplix_mp5 -c $cars $versioning simplix_mp5.xml
|
||||
python check_robot_skins.py -d $drivers/simplix/simplix_sc -c $cars $versioning simplix_sc.xml
|
||||
python check_robot_skins.py -d $drivers/simplix/simplix_trb1 -c $cars $versioning simplix_trb1.xml
|
||||
|
||||
# Kilo2008
|
||||
python check_robot_skins.py -d $drivers/kilo2008/ -c $cars $versioning kilo2008.xml
|
Loading…
Reference in a new issue