feat(installer): use go-git to clone

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).
This commit is contained in:
Christopher Allen Lane
2022-08-26 16:26:53 -04:00
parent ede2d2dbaa
commit 80c91cbdee
588 changed files with 117938 additions and 17 deletions

21
vendor/github.com/go-git/go-billy/v5/osfs/os_js.go generated vendored Normal file
View File

@@ -0,0 +1,21 @@
// +build js
package osfs
import (
"github.com/go-git/go-billy/v5"
"github.com/go-git/go-billy/v5/helper/chroot"
"github.com/go-git/go-billy/v5/memfs"
)
// globalMemFs is the global memory fs
var globalMemFs = memfs.New()
// Default Filesystem representing the root of in-memory filesystem for a
// js/wasm environment.
var Default = memfs.New()
// New returns a new OS filesystem.
func New(baseDir string) billy.Filesystem {
return chroot.New(Default, Default.Join("/", baseDir))
}