#!/usr/bin/env python3 # ############################################################################# # natool: a wrapper script to patool to list, extract and create archives # # usage: natool [-a] [-l] [-x] [archive] [file/dir] # # Examples: # - create archive : natool -a archive.7z archive_dir # - list archive : natool -l archive.7z # - extract archive: natool -x archive.7z # # Brief: # natool is written to integrate patool (instead of the default atool) with nnn # A copies of this file should be dropped somewhere in $PATH as atool # # Author: Arun Prakash Jana # Email: engineerarun@gmail.com # Homepage: https://github.com/jarun/nnn # Copyright © 2019 Arun Prakash Jana # ############################################################################# import sys from subprocess import Popen, PIPE if len(sys.argv) < 3: print('usage: natool [-a] [-l] [-x] [archive] [file/dir]') sys.exit(0) if sys.argv[1] == '-a': cmd = ['patool', '--non-interactive', 'create', sys.argv[2]] cmd.extend(sys.argv[3:]) elif sys.argv[1] == '-l': cmd = ['patool', '--non-interactive', 'list'] cmd.extend(sys.argv[2:]) elif sys.argv[1] == '-x': cmd = ['patool', '--non-interactive', 'extract'] cmd.extend(sys.argv[2:]) else: sys.exit(0) pipe = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) out, err = pipe.communicate() print(out.decode()) print(err.decode())