support creation from stdin

This commit is contained in:
dave 2019-06-08 21:31:04 -07:00
parent eea86fabd0
commit 253f29992e
1 changed files with 16 additions and 12 deletions

View File

@ -1,5 +1,6 @@
from appdirs import user_config_dir from appdirs import user_config_dir
import os import os
import sys
import json import json
import argparse import argparse
import requests import requests
@ -46,12 +47,14 @@ def main():
spr_list.add_argument("name", nargs="?", help="prefix to match") spr_list.add_argument("name", nargs="?", help="prefix to match")
spr_new = spr_action.add_parser("new", help="create a paste") spr_new = spr_action.add_parser("new", help="create a paste")
spr_new.add_argument("name", nargs="?", default="", help="name of paste to create") spr_new.add_argument("-i", "--stdin", action="store_true", help="read contents from stdin")
spr_new.add_argument("name", help="name of paste to create")
spr_get = spr_action.add_parser("get", help="get a paste") spr_get = spr_action.add_parser("get", help="get a paste")
spr_get.add_argument("name", help="name of paste to get") spr_get.add_argument("name", help="name of paste to get")
spr_edit = spr_action.add_parser("edit", help="edit a paste") spr_edit = spr_action.add_parser("edit", help="edit a paste")
spr_edit.add_argument("-i", "--stdin", action="store_true", help="read contents from stdin")
spr_edit.add_argument("name", help="name of paste to edit") spr_edit.add_argument("name", help="name of paste to edit")
spr_del = spr_action.add_parser("del", help="delete a paste") spr_del = spr_action.add_parser("del", help="delete a paste")
@ -70,17 +73,18 @@ def main():
def putpaste(name, body): def putpaste(name, body):
return r.post(host + "make", data={"name": name, "contents": body}) return r.post(host + "make", data={"name": name, "contents": body})
if args.action in ("new", "edit", "get"): if args.action == "get":
if args.action in ("edit", "get"): print(getpaste(args.name), end="")
content = getpaste(args.name)
if args.action == "get": elif args.action in ("new", "edit"):
print(content, end="") if args.stdin:
return content = sys.stdin.read()
with tempfile.NamedTemporaryFile() as f: else:
if args.action == "edit": with tempfile.NamedTemporaryFile() as f:
f.write(content.encode("utf-8")) if args.action == "edit":
f.flush() f.write(getpaste(args.name).encode("utf-8"))
content = editor(f.name) f.flush()
content = editor(f.name)
if not content: if not content:
print("Blank paste, exiting") print("Blank paste, exiting")
r = putpaste(args.name, content) r = putpaste(args.name, content)