Skip to content

Commit

Permalink
feat: Add git-get command
Browse files Browse the repository at this point in the history
  • Loading branch information
hyperupcall committed May 17, 2023
1 parent f5bcbe5 commit 20631d5
Show file tree
Hide file tree
Showing 7 changed files with 226 additions and 0 deletions.
10 changes: 10 additions & 0 deletions Commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
- [`git force-clone`](#git-force-clone)
- [`git fork`](#git-fork)
- [`git fresh-branch`](#git-fresh-branch)
- [`git get`](#git-get)
- [`git gh-pages`](#git-gh-pages)
- [`git graft`](#git-graft)
- [`git guilt`](#git-guilt)
Expand Down Expand Up @@ -889,6 +890,15 @@ Create empty local branch `name`:
$ git fresh-branch docs
```
## git get
Clone repository into `"$GIT_EXTRA_DEFAULT_CLONE_PATH/<repository_name>"`:
```bash
$ export GIT_EXTRA_DEFAULT_CLONE_PATH="$HOME/some-dir"
$ git-get 'https://github.com/hyperupcall/bake'
```
## git guilt
Calculate the change in blame between two revisions
Expand Down
35 changes: 35 additions & 0 deletions bin/git-get
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/usr/bin/env bash

_usage() {
printf '%s\n' "usage: ${0##*/} <url>
usage: ${0##*/} --help
Clone a repository in a particular directory."
}

url=$1

if (( $# == 0)); then
_usage
exit 0
fi

for arg; do
if [ "$arg" = '-h' ] || [ "$arg" = '--help' ]; then
_usage
exit 0
fi
done


if [ -z "$GIT_EXTRA_DEFAULT_CLONE_PATH" ]; then
printf 'ERROR: %s\n' "Environment variable 'GIT_EXTRA_DEFAULT_CLONE_PATH' must be set to a directory to clone under" >&2
exit 1
fi

dirname=${url%/}
dirname=${url%.git}
dirname=${dirname##*/}

mkdir -p "$GIT_EXTRA_DEFAULT_CLONE_PATH"
git clone "$url" "$GIT_EXTRA_DEFAULT_CLONE_PATH/$dirname"
1 change: 1 addition & 0 deletions man/git-extras.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ git-extras(1) -- Awesome GIT utilities
- **git-force-clone(1)** overwrite local repositories with clone
- **git-fork(1)** Fork a repo on github
- **git-fresh-branch(1)** Create fresh branches
- **git-get(1)** Clone a Git repository under a directory
- **git-gh-pages(1)** Create the GitHub Pages branch
- **git-graft(1)** Merge and destroy a given branch
- **git-guilt(1)** calculate change between two revisions
Expand Down
27 changes: 27 additions & 0 deletions man/git-get.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-GET" "1" "May 2023" "" "Git Extras"
.SH "NAME"
\fBgit\-get\fR \- Clone a Git repository under a directory
.SH "SYNOPSIS"
\fBgit\-get\fR
.SH "DESCRIPTION"
Clones a Git repository under the directory specified by the environment variable \fBGIT_EXTRA_DEFAULT_CLONE_PATH\fR
.SH "EXAMPLES"
.nf
$ GIT_EXTRA_DEFAULT_CLONE_PATH="$HOME/some\-dir" git\-get 'https://github\.com/hyperupcall/bake'
Cloning into '/home/<user>/some\-dir/bake'\|\.\|\.\|\.
remote: Enumerating objects: 1199, done\.
remote: Counting objects: 100% (378/378), done\.
remote: Compressing objects: 100% (174/174), done\.
remote: Total 1199 (delta 163), reused 357 (delta 146), pack\-reused 821
Receiving objects: 100% (1199/1199), 3\.05 MiB | 9\.85 MiB/s, done\.
Resolving deltas: 100% (515/515), done\.
$
.fi
.SH "AUTHOR"
Written by Edwin Kofler <\fIedwin@kofler\.dev\fR>
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>
118 changes: 118 additions & 0 deletions man/git-get.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 34 additions & 0 deletions man/git-get.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
git-get(1) -- Clone a Git repository under a directory
=================================================

## SYNOPSIS

`git-get`

## DESCRIPTION

Clones a Git repository under the directory specified by the environment variable `GIT_EXTRA_DEFAULT_CLONE_PATH`

## EXAMPLES

$ GIT_EXTRA_DEFAULT_CLONE_PATH="$HOME/some-dir" git-get 'https://github.com/hyperupcall/bake'
Cloning into '/home/<user>/some-dir/bake'...
remote: Enumerating objects: 1199, done.
remote: Counting objects: 100% (378/378), done.
remote: Compressing objects: 100% (174/174), done.
remote: Total 1199 (delta 163), reused 357 (delta 146), pack-reused 821
Receiving objects: 100% (1199/1199), 3.05 MiB | 9.85 MiB/s, done.
Resolving deltas: 100% (515/515), done.
$

## AUTHOR

Written by Edwin Kofler &lt;<[email protected]>&gt;

## REPORTING BUGS

&lt;<https://github.com/tj/git-extras/issues>&gt;

## SEE ALSO

&lt;<https://github.com/tj/git-extras>&gt;
1 change: 1 addition & 0 deletions man/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ git-feature(1) git-feature
git-force-clone(1) git-force-clone
git-fork(1) git-fork
git-fresh-branch(1) git-fresh-branch
git-get(1) git-get
git-gh-pages(1) git-gh-pages
git-graft(1) git-graft
git-guilt(1) git-guilt
Expand Down

0 comments on commit 20631d5

Please sign in to comment.