feat(vault): initialize fresh instances with public example notes

This commit is contained in:
eezd committed 2026-10-27 13:41:10 +08:00
1 parent 9ee7402c8e
commit 10fd6d8efb
24 files changed
+438 -14

No files matched your search

+34
View File
@@ -0,0 +1,34 @@
package main
import (
"fmt"
"io/fs"
"rawmark/deploy"
"rawmark/internal/auth"
"rawmark/internal/store"
"rawmark/internal/vault"
)
// Keep bootstrap state out of user preferences so resetting settings cannot restore deleted examples.
const examplesSetting = "bootstrap.examples"
func initializeExamples(v *vault.Vault, st *store.Store) error {
_, done, err := st.Setting(examplesSetting)
if err != nil || done {
return err
}
setUp, err := auth.New(st).IsSetUp()
if err != nil {
return err
}
if !setUp {
examples, err := fs.Sub(deploy.Examples, "data/vault")
if err != nil {
return err
}
if err := v.SeedExamples(examples); err != nil {
return fmt.Errorf("初始化示例笔记失败: %w", err)
}
}
return st.SetSetting(examplesSetting, "1")
}