(On linux uses xsel)
#!/usr/bin/env python
'''Place stuff in clipboard - multi platform'''
__author__ = "Miki Tebeka <miki.tebeka@gmail.com>"
from os import popen
from sys import platform
COMMDANDS = { # platform -> command
    "darwin" : "pbcopy",
    "linux2" : "xsel -i",
    "cygwin" : "/bin/putclip",
}
def putclip(text):
    command = COMMDANDS[platform]
    popen(command, "w").write(text)
def main(argv=None):
    if argv is None:
        import sys
        argv = sys.argv
    from optparse import OptionParser
    from sys import stdin
    parser = OptionParser("%prog [PATH]")
    opts, args = parser.parse_args(argv[1:])
    if len(args) not in (0, 1):
        parser.error("wrong number of arguments") # Will exit
    if platform not in COMMDANDS:
        message = "error: don't know how to handle clipboard on %s" % platform
        raise SystemExit(message)
    if (not args) or (args[0] == "-"):
        info = stdin
    else:
        try:
            infile = args[0]
            info = open(infile)
        except IOError, e:
            raise SystemExit("error: can't open %s - %s" % (infile, e))
    try:
        putclip(info.read())
    except OSError, e:
        raise SystemExit("error: %s" % e)
if __name__ == "__main__":
    main()
 
1 comment:
I love xsel, interesting to know there's a cygwin equivalent.
Post a Comment