From ce2cba267352a1e9613600718d91af7c798d950a Mon Sep 17 00:00:00 2001 From: James Bunton Date: Mon, 1 Aug 2016 00:41:18 +1000 Subject: [PATCH] Moved from dotfiles --- bin2ascii | 11 +++++++++++ csv2txt | 12 ++++++++++++ dates | 19 +++++++++++++++++++ find-in-file | 32 ++++++++++++++++++++++++++++++++ passwdgen | 33 +++++++++++++++++++++++++++++++++ xmlpp | 9 +++++++++ 6 files changed, 116 insertions(+) create mode 100755 bin2ascii create mode 100755 csv2txt create mode 100755 dates create mode 100755 find-in-file create mode 100755 passwdgen create mode 100755 xmlpp diff --git a/bin2ascii b/bin2ascii new file mode 100755 index 0000000..1c9df2c --- /dev/null +++ b/bin2ascii @@ -0,0 +1,11 @@ +#!/usr/bin/env python + +import binascii, sys + +if len(sys.argv) == 2: + input = sys.argv[1] +else: + input = sys.stdin.read() + +print binascii.unhexlify(hex(int(input, 2))[2:]) + diff --git a/csv2txt b/csv2txt new file mode 100755 index 0000000..e9a7c37 --- /dev/null +++ b/csv2txt @@ -0,0 +1,12 @@ +#!/usr/bin/env python + +import csv +import sys + +rows = list(csv.reader(sys.stdin)) +column_widths = list(max((len(str(cell))) for cell in column) for column in zip(*rows)) +for row in rows: + for width, cell in zip(column_widths, row): + print str(cell).ljust(width), + print + diff --git a/dates b/dates new file mode 100755 index 0000000..da607d2 --- /dev/null +++ b/dates @@ -0,0 +1,19 @@ +#!/bin/bash + +list=" +America/Los_Angeles +America/Chicago +America/New_York +Europe/London +UTC +Asia/Ho_Chi_Minh +Australia/Perth +Australia/Sydney +" + +for tz in $list; do + printf "%-25s" "$tz" + TZ="$tz" date + echo +done + diff --git a/find-in-file b/find-in-file new file mode 100755 index 0000000..df771fe --- /dev/null +++ b/find-in-file @@ -0,0 +1,32 @@ +#!/usr/bin/python2 + +import sys + +try: + needle = sys.argv[1] + haystack = sys.argv[2] +except IndexError: + print >>sys.stderr, "Usage: %s needle haystack" % sys.argv[0] + sys.exit(1) + + +f = open(needle) +magic = f.read(1024) +f.close() + +chunk_size = 32768 +f = open(haystack) +count = 0 +buf = "" +while True: + newbuf = f.read(chunk_size) + if not newbuf: + break + buf += newbuf + pos = buf.find(magic) + if pos >= 0: + print "found", count + pos + count += len(buf) - len(magic) + buf = buf[-len(magic):] +f.close() + diff --git a/passwdgen b/passwdgen new file mode 100755 index 0000000..f774381 --- /dev/null +++ b/passwdgen @@ -0,0 +1,33 @@ +#!/usr/bin/python3 + +import random, sys + +alnum_chars = list(filter(lambda c: c.isalnum(), map(chr, range(128)))) +full_chars = alnum_chars * 2 + list("!@#%^&*(){}[]/=?+_-;:,.<>") + +def generate(chars, length): + return "".join([random.choice(chars) for i in range(length)]) + +def print_usage(): + print("Usage: %s [length] [alnum|full]" % sys.argv[0]) + sys.exit(1) + +if __name__ == "__main__": + if len(sys.argv) <= 1: + n = 20 + elif sys.argv[1].isdigit(): + n = int(sys.argv[1]) + else: + print_usage() + + if len(sys.argv) <= 2: + chars = alnum_chars + elif sys.argv[2] == "alnum": + chars = alnum_chars + elif sys.argv[2] == "full": + chars = full_chars + else: + print_usage() + + print(generate(chars, n)) + diff --git a/xmlpp b/xmlpp new file mode 100755 index 0000000..92a16ea --- /dev/null +++ b/xmlpp @@ -0,0 +1,9 @@ +#!/usr/bin/python3 + +from lxml import etree +import sys + +doc = etree.parse(sys.stdin) +output = etree.tostring(doc, pretty_print=True) +sys.stdout.buffer.write(output) + -- 2.39.2