import os import glob import subprocess import shutil METADATA={"Name":"LliureX 11.09 Infantil","Comment":"Lliurex Infantil 11.09 icon theme based on Neu","Inherits":"lliurex-neu","Example":"start-here","Directories":""} CONTEXT={"places":"Places"} SRC_DIR="lliurex-neu-infantil" DST_DIR="build-infantil" DIRS=["places"] SIZES=[0,16,32,24,48] print "* building icon set" if not os.path.exists(DST_DIR): print "* creating dst path" os.mkdir(DST_DIR) for sz in SIZES: if sz==0: "* building scalable" sz_dir="scalable" else: sz_dir=str(sz) print "* building %dx%d" % (sz,sz) if not os.path.exists(DST_DIR+"/"+sz_dir): print "* creating path: %s" % (DST_DIR+"/"+sz_dir) os.mkdir(DST_DIR+"/"+sz_dir) for dr in DIRS: if not sz==0: METADATA["Directories"]=METADATA["Directories"]+","+sz_dir+"/"+dr else: METADATA["Directories"]=METADATA["Directories"]+",scalable/"+dr if not os.path.exists(DST_DIR+"/"+sz_dir+"/"+dr): print "* creating path %s" % (DST_DIR+"/"+sz_dir+"/"+dr) os.mkdir(DST_DIR+"/"+sz_dir+"/"+dr) print "* %s" % (DST_DIR+"/"+str(sz_dir)+"/"+dr) for f in glob.glob(SRC_DIR+"/"+dr+"/*.svg"): if not os.path.islink(f): #png if not sz==0: print "* processing %s" % (os.path.basename(f)) subprocess.Popen(["rsvg","--width="+str(sz),"--height="+str(sz),f,DST_DIR+"/"+sz_dir+"/"+dr+"/"+os.path.basename(f).replace(".svg",".png")]) #scalable case else: shutil.copy(f,DST_DIR+"/"+sz_dir+"/"+dr) else: if not sz==0: print "* symlink %s:%s" % (os.path.basename(f),os.path.realpath(f)) #shutil.copy(f,DST_DIR+"/"+sz_dir+"/"+dr) os.symlink(os.readlink(f).replace(".svg",".png"),DST_DIR+"/"+sz_dir+"/"+dr+"/"+os.path.basename(f).replace(".svg",".png")) else: os.symlink(os.readlink(f),DST_DIR+"/"+sz_dir+"/"+dr+"/"+os.path.basename(f)) METADATA["Directories"]=METADATA["Directories"].lstrip(",") f=open(DST_DIR+"/index.theme","w") f.write("[Icon Theme]\n") for data in METADATA: f.write("%s=%s\n"%(data,METADATA[data])) for sz in SIZES: for dr in DIRS: if not sz==0: f.write("[%d/%s]\n" % (sz,dr)) f.write("Size=%d\n"%(sz)) f.write("Context=%s\n" % (CONTEXT[dr])) f.write("Type=Fixed\n") else: f.write("[scalable/%s]\n" % (dr)) f.write("Size=48\n") f.write("MinSize=48\n") f.write("MaxSize=256\n") f.write("Context=%s\n" % (CONTEXT[dr])) f.write("Type=Scalable\n") f.close()