mirror of
https://github.com/cheat/cheat.git
synced 2024-11-17 01:18:29 +01:00
80c91cbdee
Integrate `go-git` into the application, and use it to `git clone` cheatsheets when the installer runs. Previously, the installer required that `git` be installed on the system `PATH`, so this change has to big advantages: 1. It removes that system dependency on `git` 2. It paves the way for implementing the `--update` command Additionally, `cheat` now performs a `--depth=1` clone when installing cheatsheets, which should at least somewhat improve installation times (especially on slow network connections).
25 lines
439 B
Go
25 lines
439 B
Go
package installer
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/go-git/go-git/v5"
|
|
)
|
|
|
|
// clone clones the community cheatsheets
|
|
func clone(path string) error {
|
|
|
|
// clone the community cheatsheets
|
|
_, err := git.PlainClone(path, false, &git.CloneOptions{
|
|
URL: "https://github.com/cheat/cheatsheets.git",
|
|
Depth: 1,
|
|
Progress: os.Stdout,
|
|
})
|
|
|
|
if err != nil {
|
|
return fmt.Errorf("failed to clone cheatsheets: %v", err)
|
|
}
|
|
|
|
return nil
|
|
}
|