35 lines
779 B
Go
35 lines
779 B
Go
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")
|
|
}
|