Skip to content

Instantly share code, notes, and snippets.

@Wizek
Last active August 29, 2015 14:27
Show Gist options
  • Select an option

  • Save Wizek/647f86defefdfb9f724e to your computer and use it in GitHub Desktop.

Select an option

Save Wizek/647f86defefdfb9f724e to your computer and use it in GitHub Desktop.
`npm install --save package-name` functionality for `cabal`. Usage: `cabal-install-save package-name`
#!/bin/zsh
name=$1
function latestVersionOfPackage () {
cabal info "$1" \
| grep -Pzo 'Versions available:(.|\n)*?:' \
| head -n-1 \
| tail -n1 \
| sed -r 's/.*? ([0-9.]+)\s*(\(and [0-9]+ others\))?\s*?/\1/'
}
function addDepToCabalFile () {
sed -i.bak -r 's/(\s*)(build-depends:)(\s+)(.*?)$/\1\2\3'"$1"',\n\1 \3\4/ig' *.cabal
}
latestVersion=$(latestVersionOfPackage $name)
echo Latest version found: $latestVersion
addDepToCabalFile "$name ==$latestVersion"
cabal install --only-dependencies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment