Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/felixge/cl

Quickly clone git repositories into a nested folders like GOPATH.
https://github.com/felixge/cl

Last synced: about 2 months ago
JSON representation

Quickly clone git repositories into a nested folders like GOPATH.

Awesome Lists containing this project

README

        

# cl

`cl` clones git repositories into nested folders like [GOPATH](https://golang.org/doc/gopath_code#Workspaces) and outputs the path of the cloned directory. Example:

```
cl https://github.com/foo/bar
```

Is roughly equivalent to:

```
git clone https://github.com/foo/bar ~/src/github.com/foo/bar
cd ~/src/github.com/foo/bar
```

You can install `cl` as a [binary release](https://github.com/felixge/cl/releases) or using Go:

```
go install github.com/felixge/cl@latest
```

In order for the example above to work, you'll need to configure a bash function in your profile that specifies your preferred installation `-dir` and changes into the cloned directory on success:

```
cl() {
cloned=$(command cl -dir "$GOPATH/src" "$1")
cd "$cloned"
}
```

After that any of the following commands can be used to clone a repo and change into its directory:

```
cl https://github.com/foo/bar.git
cl https://github.com/foo/bar
cl [email protected]:foo/bar.git
```

Without the bash function, you would have to use a slightly more verbose command:

```
cd $(cl -dir ~/src https://github.com/foo/bar)
```

# License

cl is licensed under the MIT license.