git.fiddlerwoaroof.com
scripts/ctext
a0d71cd9
 #!/usr/bin/env python
 from __future__ import print_function
 
 import sys
 import base64
 import os
 
 
 outfn = os.getenv('OUTFILE', os.path.join(os.getenv('HOME'), '.ctextfile'))
 basename = os.path.basename(sys.argv[0])
 
 def fiter(fil):
     line = None
     while line != '':
         line = fil.readline()
         yield line
 
 if basename == 'ctext':
     dat = sys.stdin.read()
     dat = base64.b64encode(dat)
     with open(outfn, 'a') as f:
         print('%%',file=f)
         print(dat,file=f)
 
 elif basename == 'ptext':
     jmplist = []
     with open(outfn, 'r') as f:
         for line in fiter(f):
             if line.strip() == '%%':
                 jmplist.append(f.tell()) # We want the pos __after__ the separator
         if jmplist:
             f.seek(jmplist[-1],0)
             dat = f.read().strip()
             print(base64.b64decode(dat),end='')
         else:
             raise ValueError('Empty Clipboard!')
 
 else:
     print('Bad argv[0]', sys.argv[0])