mirror of
https://github.com/TECHNOFAB11/jsonnet-bundler.git
synced 2025-12-11 23:50:05 +01:00
fix: windows enhancements (#110)
* use filepath to check for known packages this fixes an issue using windows. without this patch, jb would delete the folder after installation since the path is not known * reduce temp directory length by hashing using this hash it is harder to reach the windows limit for filenames and directories * further reduce temp dir length * do not build binaries for windows/amd*
This commit is contained in:
parent
251792fbb2
commit
9e88f6d38d
3 changed files with 7 additions and 1 deletions
1
Makefile
1
Makefile
|
|
@ -18,6 +18,7 @@ cross: clean
|
||||||
-ldflags=$(LDFLAGS) \
|
-ldflags=$(LDFLAGS) \
|
||||||
-arch="amd64 arm64 arm" -os="linux" \
|
-arch="amd64 arm64 arm" -os="linux" \
|
||||||
-osarch="darwin/amd64" \
|
-osarch="darwin/amd64" \
|
||||||
|
-osarch="windows/amd64" \
|
||||||
./cmd/$(BIN)
|
./cmd/$(BIN)
|
||||||
|
|
||||||
static:
|
static:
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"compress/gzip"
|
"compress/gzip"
|
||||||
"context"
|
"context"
|
||||||
|
"crypto/sha256"
|
||||||
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
|
@ -176,7 +178,9 @@ func remoteResolveRef(ctx context.Context, remote string, ref string) (string, e
|
||||||
func (p *GitPackage) Install(ctx context.Context, name, dir, version string) (string, error) {
|
func (p *GitPackage) Install(ctx context.Context, name, dir, version string) (string, error) {
|
||||||
destPath := path.Join(dir, name)
|
destPath := path.Join(dir, name)
|
||||||
|
|
||||||
tmpDir, err := ioutil.TempDir(filepath.Join(dir, ".tmp"), fmt.Sprintf("jsonnetpkg-%s-%s", strings.Replace(name, "/", "-", -1), version))
|
pkgh := sha256.Sum256([]byte(fmt.Sprintf("jsonnetpkg-%s-%s", strings.Replace(name, "/", "-", -1), version)))
|
||||||
|
// using 16 bytes should be a good middle ground between length and collision resistance
|
||||||
|
tmpDir, err := ioutil.TempDir(filepath.Join(dir, ".tmp"), hex.EncodeToString(pkgh[:16]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", errors.Wrap(err, "failed to create tmp dir")
|
return "", errors.Wrap(err, "failed to create tmp dir")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -200,6 +200,7 @@ func checkLegacyNameTaken(legacyName string, pkgName string) (bool, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func known(deps map[string]deps.Dependency, p string) bool {
|
func known(deps map[string]deps.Dependency, p string) bool {
|
||||||
|
p = filepath.ToSlash(p)
|
||||||
for _, d := range deps {
|
for _, d := range deps {
|
||||||
k := d.Name()
|
k := d.Name()
|
||||||
if strings.HasPrefix(p, k) || strings.HasPrefix(k, p) {
|
if strings.HasPrefix(p, k) || strings.HasPrefix(k, p) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue