#!/bin/sh
#
# This preprocesses a set of word lists into a suitable form for input
# into cracklib-packer
#
# Truncates lines longer than 1022 characters long as cracklib-packer
# does not handle them correctly.
#
# The last part of the pipeline uses 'grep -v' to remove any blank
# lines (possibly introduced by earlier parts of the pipeline) as
# cracklib-packer will generate "skipping line" warnings otherwise.
#
gzip -cdf "$@" |
    grep -a -v '^#' |
    tr '[A-Z]' '[a-z]' |
    tr -cd '\012[a-z][0-9]' |
    cut -c 1-1022 |
    grep -v '^$' |
    env LC_ALL=C sort -u