51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
import os
|
|
import sys
|
|
|
|
def file_is_text(fname):
|
|
os.system("file %s > /tmp/%s.typeof" % (os.path.abspath("/var/disco/testfs/scratchfs/" + fname), os.getpid()))
|
|
with open("/tmp/%s.typeof" % os.getpid(), "r") as ifile:
|
|
line = ifile.readline()
|
|
if "ASCII" in line:
|
|
return True
|
|
return False
|
|
|
|
def main(argc, argv):
|
|
for line in sys.stdin.readlines():
|
|
line = line.strip("\n")
|
|
pid = os.getpid()
|
|
if "(CONTENT)" in line:
|
|
fname = line.split(" ")[3]
|
|
if file_is_text(fname):
|
|
content = ""
|
|
|
|
with open(os.path.abspath("/var/disco/testfs/scratchfs/%s" % fname), "r") as ifile:
|
|
content = "> " + "> ".join(ifile.readlines())
|
|
line = line.replace("(CONTENT)", "\n%s" % (content))
|
|
elif os.path.isdir("/var/disco/testfs/scratchfs/" + fname):
|
|
line = line.replace("(CONTENT)", "directory")
|
|
else:
|
|
os.system("md5sum /var/disco/testfs/scratchfs/%s > /tmp/%s" % (fname, pid))
|
|
content = ""
|
|
with open("/tmp/%s" % (pid), "r") as ifile:
|
|
content = ifile.readline().split(" ")[0]
|
|
line = line.replace("(CONTENT)", content)
|
|
line = line.strip("\n")
|
|
if "(OLDMD5SUM)" in line:
|
|
fname = line.split(" ")[3]
|
|
os.system("md5sum /var/disco/testfs/rootfs/%s > /tmp/%s" % (fname, pid))
|
|
content = ""
|
|
with open("/tmp/%s" % (pid), "r") as ifile:
|
|
content = ifile.readline().split(" ")[0]
|
|
line = line.replace("(OLDMD5SUM)", content).strip("\n")
|
|
if "(NEWMD5SUM)" in line:
|
|
fname = line.split(" ")[3]
|
|
os.system("md5sum /var/disco/testfs/scratchfs/%s > /tmp/%s" % (fname, pid))
|
|
content = ""
|
|
with open("/tmp/%s" % (pid), "r") as ifile:
|
|
content = ifile.readline().split(" ")[0]
|
|
line = line.replace("(NEWMD5SUM)", content).strip("\n")
|
|
print line
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main(len(sys.argv), sys.argv))
|