Code Monkey home page Code Monkey logo

gofiximports's Introduction

gofiximports

Utility to fix/replace import paths in Go files recursively & pretty-print like gofmt.

Installation

$ go get github.com/semk/gofiximports

Usage

Usage of gofiximports:
  -dir string
    	directory where the replacements are to be done (default "./")
  -from string
    	import statement to be replaced
  -indent int
    	all code is indented at least by this much
  -rawformat
    	do not use a tabwriter; if set, -usespaces is ignored
  -recursive
    	peform the replacecements recursively on the directory (to be used with -dir) (default true)
  -sourcepos
    	emit //line directives to preserve original source positions
  -stdin
    	read the file names from stdin where the replacements are to be done (overrides -dir)
  -tabindent
    	use tabs for indentation independent of -usespaces (default true)
  -tabwidth int
    	tab width (default 8)
  -to string
    	replacement import statement
  -usespaces
    	use spaces instead of tabs for alignment (default true)

Examples

The following example replaces all imports of "library/module" to "repository/library/module" recursively inside the awesome_go_project directory. The command only modifies .go files.

$ gofiximports -dir awesome_go_project -from "library/module" -to "repository/library/module"

NOTE: The above command will replace all the imports starting with "library/module". "library/module/x" will be changed to "repository/library/module/x" as well.

Before fixing imports:

package main
import logger "fmt"
func main() {
    logger.Println("hello world")
}
$ gofiximports -dir test -from "fmt" -to "log"

After fixing imports:

package main

import logger "log"

func main() {
	logger.Println("hello world")
}

You can also pass the list of files to stdin using pipe.

$ find ./test -name "*.go" | gofiximports -stdin -from "fmt" -to "log" 

gofiximports's People

Contributors

semk avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.