hask-replace is a command-line tool for renaming
Haskell, Elm, PureScript, and Idris modules.
Here's an example of how you would use
cabal unpack dhall cd dhall-1.5.1/ hr module . "Dhall.Import" "Dhall.Dependencies" cabal new-build
As you can see, it's a lot less painful than whatever witchcraft you'd have to resort to to accomplish the same thing in bash.
hr doesn't attempt to be a full parser for
elm, etc. While
hr promises to always transform valid projects into valid projects, it won't
necessarily point out errors in your project.
The easiest way to install for most users is probably via a shell script, viz.
curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/hask-replace
If the script doesn't work, you can also download prebuilt binaries. You can find binaries for various platforms on the release page.
First, install cargo. Then:
$ cargo install --git https://github.com/vmchale/hask-replace
You will need to use the nightly release for this to work; if in doubt run
$ rustup run nightly cargo install --git https://github.com/vmchale/hask-replace
|dhall||Rename Module||7.185 ms|
|lens||Rename Module||9.671 ms|
git clone https://github.com/HuwCampbell/idris-lens.git cd idris-lens hr idris . Control.Lens.Maths Control.Lens.Math idris --build lens.ipkg
There is a vim plugin for hask-replace here. It supports copying and moving Haskell, Elm, and Idris modules.