summaryrefslogtreecommitdiffstats
path: root/scripts/pastit.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/pastit.py')
-rwxr-xr-xscripts/pastit.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/scripts/pastit.py b/scripts/pastit.py
new file mode 100755
index 0000000..e515c40
--- /dev/null
+++ b/scripts/pastit.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+"""
+Pasteme's client
+
+Usage: pastit [-u url] [FILE]
+
+Arguments:
+ FILE File to send
+ If missing, reads from stdin
+ If FILE is an url, then the corresponding file
+ is downloaded and written on stdout.
+
+Options:
+ -u, --url url Alternate url of the pasteme
+ Default is http://paste.devys.org/
+"""
+
+import sys
+import requests
+from docopt import docopt
+
+
+def post(text, url):
+ try:
+ req = requests.post(url, data={"content":text})
+ except requests.exceptions.ConnectionError as e:
+ sys.exit(e)
+ return req.url
+
+
+def get(url):
+ if not url.endswith("/raw"):
+ url += "/raw"
+
+ try:
+ req = requests.get(url)
+ except requests.exceptions.ConnectionError as e:
+ sys.exit(e)
+
+ return req.text
+
+
+def main():
+ args = docopt(__doc__)
+
+ if '://' in args["FILE"]:
+ print(get(args["FILE"]))
+ return
+
+
+ url = args["--url"] or "http://paste.devys.org/"
+
+ if args["FILE"]:
+ try:
+ text = open(args["FILE"]).read()
+ except (FileNotFoundError,PermissionError) as e:
+ exit(e)
+ else:
+ text = sys.stdin.read()
+
+ print(post(text, url))
+
+
+if __name__ == "__main__":
+ main()