Package rename contains the implementation of the 'gorename' command whose main function is in golang.org/x/tools/cmd/gorename. See the Usage constant for the command documentation.
const Usage = "" /* 2943 byte string literal not displayed */
var ( // Force enables patching of the source files even if conflicts were reported. // The resulting program may be ill-formed. // It may even cause gorename to crash. TODO(adonovan): fix that. Force bool // Diff causes the tool to display diffs instead of rewriting files. Diff bool // DiffCmd specifies the diff command used by the -d feature. // (The command must accept a -u flag and two filename arguments.) DiffCmd = "diff" // ConflictError is returned by Main when it aborts the renaming due to conflicts. // (It is distinguished because the interesting errors are the conflicts themselves.) ConflictError = errors.New("renaming aborted due to conflicts") // Verbose enables extra logging. Verbose bool )
Move, given a package path and a destination package path, will try to move the given package to the new path. The Move function will first check for any conflicts preventing the move, such as a package already existing at the destination package path. If the move can proceed, it builds an import graph to find all imports of the packages whose paths need to be renamed. This includes uses of the subpackages of the package to be moved as those packages will also need to be moved. It then renames all imports to point to the new paths, and then moves the packages to their new paths.