]> git.armaanb.net Git - bin.git/blob - upl
Massively improve `upl`
[bin.git] / upl
1 #!/usr/bin/env python3
2
3 import argparse
4 from os import path, makedirs
5 from pathlib import Path
6 from shutil import copyfile 
7
8 def parse_args():
9     parser = argparse.ArgumentParser(
10         description="Copy file to Wasabi-mounted directory")
11     parser.add_argument("input", metavar="inp", type=str, nargs="+",
12                     help="input file")
13     parser.add_argument("output", metavar="outp", type=str, nargs="*",
14                     help="output path")
15     parser.add_argument("-p", "--private",
16                         action="store_true",
17                         help="Copy to private directory")
18     parser.add_argument("-m", "--mkdir",
19                         action="store_true",
20                         help="Create parent directories if necesary")
21     return parser.parse_args()
22
23 def outp(args):
24     if not args.output:
25         out = path.basename(args.input[0])
26     else:
27         out = args.output[0]
28     return out
29
30 def main(args):
31     out = outp(args)
32     inp = args.input[0]
33
34     if args.private:
35         s3path = priv_path
36         s3bin = priv_bin
37     else:
38         s3path = pub_path
39         s3bin = pub_bin
40
41     fpath = s3path + out
42     if not path.exists(fpath):
43         makedirs(Path(fpath).parent)
44
45     copyfile(inp, fpath)
46     print(endp + s3bin + "/" + out)
47
48 if __name__ == "__main__":
49     endp = "https://s3.us-east-2.wasabisys.com/"
50     pub_path = "/home/armaa/.local/mnt/public/"
51     pub_bin = "armaan-public"
52     priv_path = "/home/armaa/.local/mnt/private/"
53     priv_bin = "armaan-private"
54     main(parse_args())