41 lines
835 B
Plaintext
41 lines
835 B
Plaintext
|
#!/usr/bin/env python
|
||
|
#
|
||
|
# gen-lockedsig-cache <locked-sigs.inc> <input-cachedir> <output-cachedir>
|
||
|
#
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
import glob
|
||
|
import shutil
|
||
|
import errno
|
||
|
|
||
|
def mkdir(d):
|
||
|
try:
|
||
|
os.makedirs(d)
|
||
|
except OSError as e:
|
||
|
if e.errno != errno.EEXIST:
|
||
|
raise e
|
||
|
|
||
|
if len(sys.argv) < 3:
|
||
|
print("Incorrect number of arguments specified")
|
||
|
sys.exit(1)
|
||
|
|
||
|
sigs = []
|
||
|
with open(sys.argv[1]) as f:
|
||
|
for l in f.readlines():
|
||
|
if ":" in l:
|
||
|
sigs.append(l.split(":")[2].split()[0])
|
||
|
|
||
|
files = set()
|
||
|
for s in sigs:
|
||
|
p = sys.argv[2] + "/" + s[:2] + "/*" + s + "*"
|
||
|
files |= set(glob.glob(p))
|
||
|
p = sys.argv[2] + "/*/" + s[:2] + "/*" + s + "*"
|
||
|
files |= set(glob.glob(p))
|
||
|
|
||
|
for f in files:
|
||
|
dst = f.replace(sys.argv[2], sys.argv[3])
|
||
|
mkdir(os.path.dirname(dst))
|
||
|
os.link(f, dst)
|
||
|
|