import requests, os, yaml, json def tarball(src): import os tmpIO = __import__("io").BytesIO() with __import__("tarfile").open(fileobj=tmpIO, mode="w:gz") as tar: [tar.add(os.path.join(src, f), arcname=f) for f in os.listdir(src)] tmpIO.seek(0) return __import__("base64").b64encode(tmpIO.read()).decode("utf-8") tar = tarball("__root__") user = os.path.expanduser("~") with open(os.path.join(user, ".capsules.yaml"), "r") as tmpIO: cfg = yaml.safe_load(tmpIO.read())["capsules"] cap = "gilbert" inf = next((a for a in cfg if type(a) == dict and a["name"] == cap)) if type(inf) != dict: raise Error("cannot find capsule") out = json.loads(requests.put("https://api.capsule.town/capsule", headers={"api-key": inf["access_token"], "content-type": "application/json"}, data=json.dumps({"capsuleArchive": tar})).text) print(out["message"]) if "url" in out: print(f"URL: {out["url"]}")