hask-replace 0.6.0

Rename haskell modules at the speed of Rust
---
name: hask-replace
author: Vanessa McHale <vanessa.mchale@reconfigure.io>
about: Rename modules across Haskell, Idris, and Elm projects
subcommands:
  - rename:
      visible_alias: "r"
      about: Rename a cabal package.
      args:
        - project:
            value_name: PROJECT
            index: 1
            required: true
            help: "Directory or cabal.project file for the project."
        - old:
            value_name: OLD_PACKAGE
            index: 2
            required: true
            help: Old package name
        - new:
            value_name: NEW_PACKAGE
            index: 3
            required: true
            help: New package name
        - stack:
            short: t
            long: stack
            help: "Flag to be used when a project uses a 'stack.yaml' file rather than a 'cabal.project' file."
        - stash:
            short: s
            long: stash
            help: Commit using git before making any changes
  - module:
      visible_alias: "m"
      about: Replace a module across a Haskell project that uses cabal
      args:
        - project:
            value_name: PROJECT
            index: 1
            required: true
            help: "Directory or '.cabal' file for the project"
        - stash:
            short: s
            long: stash
            help: Commit using git before making any changes
        - old:
            value_name: OLD_MODULE
            index: 2
            required: true
            help: Name of old module
        - new:
            value_name: NEW_MODULE
            index: 3
            required: true
            help: Name of the new module
        - hpack:
            short: y
            long: hpack
            help: "Flag to be used when the project uses an 'hpack.yaml' file rather than a '.cabal' file."
        - copy:
            short: c
            long: copy
            help: Copy a module rather than moving it.
        - spec:
            long: with-spec
            help: "Move test modules as well as the module itself. The spec for 'Module' is assumed to be located in 'ModuleSpec'"
  - idris:
      visible_alias: "i"
      about: Replace a module across an Idris project
      args:
        - project:
            value_name: PROJECT
            index: 1
            required: true
            help: "Directory or '.ipkg' file for the project"
        - stash:
            short: s
            long: stash
            help: Commit using git before making any changes
        - old:
            value_name: OLD_MODULE
            index: 2
            required: true
            help: Name of old module
        - new:
            value_name: NEW_MODULE
            index: 3
            required: true
            help: Name of the new module
        - copy:
            short: c
            long: copy
            help: Copy a module rather than moving it.
  - elm:
      visible_alias: "e"
      about: Replace a module across an Elm project
      args:
        - project:
            value_name: PROJECT
            index: 1
            required: true
            help: "Directory or 'elm-package.json' file for the project"
        - stash:
            short: s
            long: stash
            help: Commit using git before making any changes
        - old:
            value_name: OLD_MODULE
            index: 2
            required: true
            help: Name of old module
        - new:
            value_name: NEW_MODULE
            index: 3
            required: true
            help: Name of the new module
        - copy:
            short: c
            long: copy
            help: Copy a module rather than moving it.