aboutsummaryrefslogtreecommitdiffstats
path: root/bin/stikked
diff options
context:
space:
mode:
Diffstat (limited to 'bin/stikked')
-rw-r--r--bin/stikked115
1 files changed, 0 insertions, 115 deletions
diff --git a/bin/stikked b/bin/stikked
deleted file mode 100644
index b209208..0000000
--- a/bin/stikked
+++ /dev/null
@@ -1,115 +0,0 @@
-#! /usr/bin/env python2
-
-import argparse
-import os
-import sys
-import pycurl
-import StringIO
-import subprocess
-import urllib
-
-## CONFIGURATION {
-user='example-user'
-apiurl='http://paste.giev.de/api/create'
-## }
-
-
-def main():
- global verbose
-
- # parse arguments
- parser = argparse.ArgumentParser(prog='stikked')
- parser.add_argument('-V', '--version', action='version', version='%(prog)s 0.1')
- parser.add_argument('-v', '--verbose', action='store_true', dest='verbose', help='verbose mode', default=False)
- parser.add_argument('-s', dest='syntax', action='store', help='syntax to highlight', default='text')
- parser.add_argument('-p', dest='private', action='store_true', help='set paste to private', default=False)
- parser.add_argument('-t', dest='title', action='store', help='set title of paste')
- parser.add_argument('fname', metavar='FILE|-', help='file to paste or - for stdin')
- args = parser.parse_args()
- if args.verbose:
- verbose = args.verbose
- print args
-
- # private
- private = '1' if args.private else '0'
-
- # from stdin
- if args.fname == '-':
- title = args.title if args.title else 'stdin'
- text=sys.stdin.read()
- syntax=args.syntax
-
- # from file
- else:
- fname = args.fname
-
- if not os.path.isfile(fname):
- print "No such file: {0}".format(fname)
- sys.exit(1)
- else:
- title = args.title if args.title else os.path.split(fname)[1]
-
- if args.syntax == 'text':
- ext = os.path.splitext(fname)[1][1:]
- syntax = _detect_syntax(ext)
- else:
- syntax = args.syntax
-
- fopen = file(fname, 'r')
- text = fopen.read()
-
- _paste(text, title, syntax, private)
-
-
-# send paste to server
-def _paste(text, title, syntax, private):
- postparams = [
- ('text', text),
- ('name', user),
- ('title', title),
- ('lang', syntax),
- ('private', private)]
-
- postfields=urllib.urlencode(postparams)
-
- curl = pycurl.Curl()
- curl.setopt(pycurl.URL, apiurl)
- curl.setopt(pycurl.POST, True)
- curl.setopt(pycurl.POSTFIELDS, postfields)
- # Fixes the HTTP/1.1 417 Expectation Failed Bug
- header = []
- header.append("Expect: ")
- curl.setopt(pycurl.HTTPHEADER, header)
- curl.setopt(pycurl.NOPROGRESS, True)
- b = StringIO.StringIO()
- curl.setopt(pycurl.WRITEFUNCTION, b.write)
- curl.perform()
- print b.getvalue();
-
- # copy to primary clipboard
- xsel_proc = xsel_proc = subprocess.Popen(['xsel', '-pi'], stdin=subprocess.PIPE)
- xsel_proc.communicate(b.getvalue())
-
-
-# more possible of course
-def _detect_syntax(ext):
- if ext == 'h':
- syntax='c'
- elif ext == 'log':
- syntax='logcat'
- elif ext == "py":
- syntax = 'python'
- elif ext == "pl":
- syntax = 'perl'
- elif ext == "patch":
- syntax = 'diff'
- elif ext == 'c' or ext == 'cpp' or ext == 'java' or ext == 'sh':
- syntax=ext
- else:
- syntax='text'
-
- return syntax
-
-
-if __name__ == '__main__':
- main()