summaryrefslogtreecommitdiff
path: root/pkg/btrfs/Makefile
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-06-01 09:56:56 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-06-01 09:56:56 -0600
commit437bf733021a6aa3b90042a12a35b887b8ed45a2 (patch)
treef9215e2d1453dde5691f27069104ccd97eb73da5 /pkg/btrfs/Makefile
parentb9fa008b4911a534ff49d191539b57d60cc04663 (diff)
lib: eagerly unmarshal items
Diffstat (limited to 'pkg/btrfs/Makefile')
-rw-r--r--pkg/btrfs/Makefile9
1 files changed, 8 insertions, 1 deletions
diff --git a/pkg/btrfs/Makefile b/pkg/btrfs/Makefile
index fc6e9fd..b29e033 100644
--- a/pkg/btrfs/Makefile
+++ b/pkg/btrfs/Makefile
@@ -9,10 +9,17 @@ files += btrfsitem/items.txt
btrfsitem/items_gen.go: btrfsitem/items.txt $(MAKEFILE_LIST)
{ \
echo 'package $(@D)'; \
- echo 'import "lukeshu.com/btrfs-tools/pkg/btrfs/internal"'; \
+ echo 'import ('; \
+ echo '"reflect"'; \
+ echo; \
+ echo '"lukeshu.com/btrfs-tools/pkg/btrfs/internal"'; \
+ echo ')'; \
echo 'const ('; \
sed -E 's,(.*)=(.*) (.*),\1_KEY=internal.\1_KEY,' $<; \
echo ')'; \
+ echo 'var keytype2gotype = map[Type]reflect.Type{'; \
+ sed -E 's|(.*)=(.*) (.*)|\1_KEY: reflect.TypeOf(\3{}),|' $<; \
+ echo '}'; \
sed -E 's,(.*)=(.*) (.*),\3,' $< | LC_COLLATE=C sort -u | sed 's,.*,func (&) isItem() {},'; \
} | gofmt >$@
files += btrfsitem/items_gen.go