blob: fee01fe25b7da8c0345ce3a6a14163879eda4c3c (
plain) (
tree)
|
|
#!/usr/bin/env bash
# Export a sensible locale so that sort(1) behaves
LANG=C.UTF-8
export LANG
# Check we have required programs
hash cpanm plenv || exit
# Create required temporary files
mf=$(mktemp) || exit
ef=$(mktemp) || exit
cf=$(mktemp) || exit
# Clean up temporary files on exit
cleanup() {
rm -f -- "$mf" "$ef" "$cf"
}
trap cleanup EXIT
# Get the list of modules, sort them, write them to a file
plenv list-modules | sort > "$mf"
# Sort the non-CPAN modules from ~/.plenv and write them to a file
sort -- "$HOME"/.plenv/non-cpanm-modules > "$ef"
# Write out the list of modules that appear in the first file, but not the
# second
comm -23 -- "$mf" "$ef" > "$cf"
# Read the list of modules to upgrade and upgrade them one by one
while read -r module ; do
cpanm --notest --quiet -- "$module"
done < "$cf"
|