mirror of
https://github.com/TECHNOFAB11/jsonnet-bundler.git
synced 2025-12-12 08:00: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) \
|
||||
-arch="amd64 arm64 arm" -os="linux" \
|
||||
-osarch="darwin/amd64" \
|
||||
-osarch="windows/amd64" \
|
||||
./cmd/$(BIN)
|
||||
|
||||
static:
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ import (
|
|||
"bytes"
|
||||
"compress/gzip"
|
||||
"context"
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"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) {
|
||||
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 {
|
||||
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 {
|
||||
p = filepath.ToSlash(p)
|
||||
for _, d := range deps {
|
||||
k := d.Name()
|
||||
if strings.HasPrefix(p, k) || strings.HasPrefix(k, p) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue