xref: /netbsd-src/external/gpl3/gcc/dist/contrib/header-tools/replace-header (revision f9a78e0e885f664fa1b5fd1637673b39c1aa53b3)
1*f9a78e0eSmrg#! /usr/bin/python2
2*f9a78e0eSmrgimport os.path
3*f9a78e0eSmrgimport sys
4*f9a78e0eSmrgimport shlex
5*f9a78e0eSmrgimport re
6*f9a78e0eSmrg
7*f9a78e0eSmrgfrom headerutils import *
8*f9a78e0eSmrg
9*f9a78e0eSmrg
10*f9a78e0eSmrgfiles = list()
11*f9a78e0eSmrgreplace = list()
12*f9a78e0eSmrgfind = ""
13*f9a78e0eSmrgusage = False
14*f9a78e0eSmrg
15*f9a78e0eSmrgfor x in sys.argv[1:]:
16*f9a78e0eSmrg  if x[0:2] == "-h":
17*f9a78e0eSmrg    usage = True
18*f9a78e0eSmrg  elif x[0:2] == "-f" and find == "":
19*f9a78e0eSmrg    find = x[2:]
20*f9a78e0eSmrg  elif x[0:2] == "-r":
21*f9a78e0eSmrg    replace.append (x[2:])
22*f9a78e0eSmrg  elif x[0:1] == "-":
23*f9a78e0eSmrg    print "Error: unrecognized option " + x
24*f9a78e0eSmrg    usage = True
25*f9a78e0eSmrg  else:
26*f9a78e0eSmrg    files.append (x)
27*f9a78e0eSmrg
28*f9a78e0eSmrgif find == "":
29*f9a78e0eSmrg  usage = True
30*f9a78e0eSmrg
31*f9a78e0eSmrgif usage:
32*f9a78e0eSmrg  print "replace-header -fheader -rheader [-rheader] file1 [filen.]"
33*f9a78e0eSmrg  sys.exit(0)
34*f9a78e0eSmrg
35*f9a78e0eSmrgstring = ""
36*f9a78e0eSmrgfor x in replace:
37*f9a78e0eSmrg  string = string + " '"+x+"'"
38*f9a78e0eSmrgprint "Replacing '"+find+"'  with"+string
39*f9a78e0eSmrg
40*f9a78e0eSmrgfor x in files:
41*f9a78e0eSmrg  src = readwholefile (x)
42*f9a78e0eSmrg  src = find_replace_include (find, replace, src)
43*f9a78e0eSmrg  if (len(src) > 0):
44*f9a78e0eSmrg    print x + ": Changed"
45*f9a78e0eSmrg    out = open(x, "w")
46*f9a78e0eSmrg    for line in src:
47*f9a78e0eSmrg      out.write (line);
48*f9a78e0eSmrg    out.close ()
49*f9a78e0eSmrg  else:
50*f9a78e0eSmrg    print x
51*f9a78e0eSmrg
52*f9a78e0eSmrg
53*f9a78e0eSmrg
54