add --keep-dist

This commit is contained in:
Mikaël Cluseau
2026-07-17 11:33:07 +02:00
parent 8d56e5c436
commit e58e8f758e
4 changed files with 17 additions and 11 deletions
+3 -3
View File
@@ -11,7 +11,7 @@ func TestMerge(t *testing.T) {
t.Errorf("got %q", v) t.Errorf("got %q", v)
} }
if v := unparse(genericMerge(parse(` if v := unparse(genericMerge(parse(`
a: t a: t
b: t b: t
m: m:
@@ -32,8 +32,8 @@ m:
b1: t b1: t
c1: s c1: s
` { ` {
t.Errorf("got\n%s", v) t.Errorf("got\n%s", v)
} }
} }
func parse(s string) (r interface{}) { func parse(s string) (r interface{}) {
+6 -1
View File
@@ -86,7 +86,12 @@ func updateCache() {
existing := []string{} existing := []string{}
for _, dir := range []string{distDir, cacheDir} { cleanDirs := []string{cacheDir}
if !*keepDist {
cleanDirs = append(cleanDirs, distDir)
}
for _, dir := range cleanDirs {
fs.WalkDir(os.DirFS(dir), ".", func(path string, d fs.DirEntry, err error) error { fs.WalkDir(os.DirFS(dir), ".", func(path string, d fs.DirEntry, err error) error {
if err != nil { if err != nil {
log.Printf("update cache: walking %s failed: %v", dir, err) log.Printf("update cache: walking %s failed: %v", dir, err)
+2 -1
View File
@@ -8,7 +8,8 @@ import (
) )
var ( var (
dataDir = flag.String("data", "/var/lib/direktil", "Data dir") dataDir = flag.String("data", "/var/lib/direktil", "Data dir")
keepDist = flag.Bool("keep-dist", false, "Keep dist files during cache cleanup (still removes assembled erofs)")
) )
func configFilePath() string { func configFilePath() string {
+6 -6
View File
@@ -2,23 +2,23 @@ package utf16
import ( import (
"encoding/binary" "encoding/binary"
"fmt" "fmt"
"unicode/utf8" "unicode/utf8"
) )
func FromUTF8(data []byte) (res []byte) { func FromUTF8(data []byte) (res []byte) {
endian := binary.LittleEndian endian := binary.LittleEndian
res = make([]byte, (len(data)+1)*2) res = make([]byte, (len(data)+1)*2)
res = res[:2] res = res[:2]
endian.PutUint16(res, 0xfeff) endian.PutUint16(res, 0xfeff)
for len(data) > 0 { for len(data) > 0 {
r, size := utf8.DecodeRune(data) r, size := utf8.DecodeRune(data)
if r > 65535 { if r > 65535 {
panic(fmt.Errorf("r=0x%x > 0xffff", r)) panic(fmt.Errorf("r=0x%x > 0xffff", r))
} }
slen := len(res) slen := len(res)
res = res[:slen+2] res = res[:slen+2]