This repository has been archived on 2026-05-18. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
disco/client/bin/disco-fs-fixup.py

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))