This file is indexed.

/usr/share/fritzing/parts/scripts/copper1fzp.py is in fritzing-parts 0.9.3b-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
# usage:
#	    copper1fzp.py -d [fzp folder]
#       adds a copper1 layer if there isn't one found already.

import getopt, sys, os, os.path, re, xml.dom.minidom, xml.dom
    
def usage():
        print """
usage:
    copper1fzp.py -d [fzp folder]
    adds a copper1 layer if there isn't one found already.
"""
    
        
           
def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], "hd:", ["help", "directory"])
    except getopt.GetoptError, err:
        # print help information and exit:
        print str(err) # will print something like "option -a not recognized"
        usage()
        sys.exit(2)
        
    dir = None
            
    for o, a in opts:
        #print o
        #print a
        if o in ("-d", "--directory"):
            dir = a
        elif o in ("-h", "--help"):
            usage()
            sys.exit(2)
        else:
            assert False, "unhandled option"
            
    if(not(dir)):
        usage()
        sys.exit(2)            
            
    for root, dirs, files in os.walk(dir, topdown=False):
        for filename in files:
            if not filename.endswith(".fzp"): 
                continue
                
            fzpFilename = os.path.join(root, filename)
            try:
                dom = xml.dom.minidom.parse(fzpFilename)
            except xml.parsers.expat.ExpatError, err:
                print str(err), fzpFilename
                continue
                
            fzp = dom.documentElement
            pcbViewNodes = fzp.getElementsByTagName("pcbView")
            needsCopper1 = 0
            for pcbView in pcbViewNodes:
                layersNodes = pcbView.getElementsByTagName("layers")
                if layersNodes.length == 1:
                    viewsLayers = layersNodes.item(0)
                    copper0 = None
                    copper1 = None
                    for layer in viewsLayers.getElementsByTagName("layer"):
                        if layer.getAttribute("layerId") == "copper1":
                            copper1 = layer
                        elif layer.getAttribute("layerId") == "copper0":
                            copper0 = layer
                
                    if not copper1 and copper0:
                        needsCopper1 = 1
                        copper1 = dom.createElement("layer")
                        copper1.setAttribute("layerId", "copper1")
                        viewsLayers.appendChild(copper1)
                    else:
                        break
                        
                else:
                    connectorsView = pcbView
                    copper1  = None
                    copper0 = None
                    for p in connectorsView.getElementsByTagName("p"):
                        if p.getAttribute("layer") == "copper1":
                            copper1 = p
                        elif p.getAttribute("layer") == "copper0":
                            copper0 = p
                
                    if copper0 and not copper1:
                        copper1 = dom.createElement("p")
                        copper1.setAttribute("layer", "copper1")
                        copper1.setAttribute("svgId", copper0.getAttribute("svgId"))
                        connectorsView.appendChild(copper1)
                    
            if not needsCopper1:
                print "no copper1 needed for", fzpFilename
                continue
                  
            print "adding copper1 to", fzpFilename
            outfile = open(fzpFilename, 'wb')
            s = dom.toxml("UTF-8")
            outfile.write(s)
            outfile.flush()
            outfile.close()                        
            
if __name__ == "__main__":
        main()