diff --git a/rdify b/rdify index 7a7273e..1e88c70 100755 --- a/rdify +++ b/rdify @@ -2,6 +2,7 @@ # Script to ramdiskify things import argparse +import os import shutil import subprocess import sys @@ -11,11 +12,20 @@ def eprint(*args, **kwargs): print(*args, file=sys.stderr, **kwargs) def init(target, persist): - ramdisk = Path("/dev/shm/ramdisk") - ramdisk.mkdir(parents=True, exist_ok=True) target = Path(target) persist = Path(persist) persist.mkdir(parents=True, exist_ok=True) + ramdisk = Path("/dev/shm/ramdisk") + ramdisk.mkdir(parents=True, exist_ok=True) + + full_dest_path = ramdisk.joinpath(target.name) + if target.is_file(): + shutil.copy2(target, ramdisk) + else: + shutil.copytree(target, full_dest_path) + shutil.move(target, persist) + + os.symlink(full_dest_path, target) def sync(target, persist): @@ -46,6 +56,16 @@ def main(): eprint(f"Target: {args.target} doesn't exist!") return + if args.init: + init(args.target, args.persist) + elif args.sync: + sync(args.target, args.persist) + elif args.loop-sync: + loop_sync(args.target, args.persist) + elif args.cleanup: + cleanup(args.target, args.perist) + else: + pass if __name__ == "__main__": main()