|
|
@@ -0,0 +1,45 @@
|
|
|
+#!/usr/bin/env python
|
|
|
+
|
|
|
+import argparse
|
|
|
+import os.path
|
|
|
+import requests
|
|
|
+import sys
|
|
|
+
|
|
|
+parser = argparse.ArgumentParser(description='paste a file to paste.fedoraproject.org')
|
|
|
+parser.add_argument('filename', metavar='file', type=str, nargs='?',
|
|
|
+ help='file to paste; if not specified, read from stdin')
|
|
|
+parser.add_argument('--language', '-l', dest='language',
|
|
|
+ help='the language to use (default: Text if stdin, autodetect based on extension otherwise)')
|
|
|
+
|
|
|
+args = parser.parse_args()
|
|
|
+
|
|
|
+if args.filename is None:
|
|
|
+ args.filename = ''
|
|
|
+ f = sys.stdin
|
|
|
+ if args.language is None:
|
|
|
+ args.language = 'text'
|
|
|
+else:
|
|
|
+ f = open(args.filename, 'r')
|
|
|
+ args.filename = os.path.basename(args.filename)
|
|
|
+ if args.language is None:
|
|
|
+ r = requests.get('https://gist.github.com/detect_language',
|
|
|
+ params={'filename': args.filename}, headers={'Accept': 'application/json'})
|
|
|
+ language = r.json()['language']
|
|
|
+ args.language = language.lower()
|
|
|
+
|
|
|
+content = f.read()
|
|
|
+data = {
|
|
|
+ 'paste_data': content,
|
|
|
+ 'paste_lang': args.language,
|
|
|
+ 'paste_private': 'on',
|
|
|
+ 'paste_expire': 2592000, # 30 days in seconds
|
|
|
+ 'paste_submit': 'Paste',
|
|
|
+}
|
|
|
+url_base = 'https://paste.fedoraproject.org'
|
|
|
+r = requests.post(url_base + '/', data=data, allow_redirects=False)
|
|
|
+try:
|
|
|
+ print url_base + r.headers['location']
|
|
|
+except:
|
|
|
+ print r.headers
|
|
|
+ print r.content
|
|
|
+ raise
|