feat(index): add exclude index config (#41)

This commit is contained in:
Kristian 2026-05-21 23:40:19 +02:00 committed by GitHub
parent 18d4e79741
commit 38b4cb815f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 64 additions and 14 deletions

View file

@ -11,9 +11,11 @@ import (
) )
type initializeCommand struct { type initializeCommand struct {
VaultName string `json:"vaultName"` VaultName string `json:"vaultName"`
VaultPath string `json:"vaultPath"` VaultPath string `json:"vaultPath"`
TemplateDirectory string `json:"templateDirectory"` TemplateDirectory string `json:"templateDirectory"`
ExcludeIndexFiles []string `json:"excludeIndexFiles"`
OverrideDefaultIgnores bool `json:"overrideDefaultIgnores"`
} }
type InitializeHandler struct { type InitializeHandler struct {
@ -32,7 +34,12 @@ func (h InitializeHandler) Handle(ctx context.Context, raw json.RawMessage) (any
return nil, err return nil, err
} }
store := store.NewVaultStore(cmd.VaultName, cmd.VaultPath, cmd.TemplateDirectory) store := store.NewVaultStore(
cmd.VaultName,
cmd.VaultPath,
cmd.TemplateDirectory,
cmd.ExcludeIndexFiles,
cmd.OverrideDefaultIgnores)
err := persistence.InitializeDBContext(store.Config.VaultName()) err := persistence.InitializeDBContext(store.Config.VaultName())
if err != nil { if err != nil {

View file

@ -8,10 +8,11 @@ import (
"slices" "slices"
"strings" "strings"
filehandling "github.com/KristianJBorgwarth/dendrite.daemon/core/file_handling" "github.com/KristianJBorgwarth/dendrite.daemon/core/file_handling"
"github.com/KristianJBorgwarth/dendrite.daemon/core/models" "github.com/KristianJBorgwarth/dendrite.daemon/core/models"
"github.com/KristianJBorgwarth/dendrite.daemon/persistence" "github.com/KristianJBorgwarth/dendrite.daemon/persistence"
"github.com/KristianJBorgwarth/dendrite.daemon/persistence/repositories" "github.com/KristianJBorgwarth/dendrite.daemon/persistence/repositories"
"github.com/KristianJBorgwarth/dendrite.daemon/persistence/store"
) )
type IIndexRebuilder interface { type IIndexRebuilder interface {
@ -136,7 +137,7 @@ func (r *indexRebuilder) readFiles(vault string) ([]*filehandling.File, error) {
} }
func (r *indexRebuilder) IsValidDirectory(path string) bool { func (r *indexRebuilder) IsValidDirectory(path string) bool {
ignoredDirs := []string{".git", ".templates", "temp"} ignoredDirs := store.GetVaultStore().GetExcludeIndexFiles()
for part := range strings.SplitSeq(path, string(filepath.Separator)) { for part := range strings.SplitSeq(path, string(filepath.Separator)) {
if slices.Contains(ignoredDirs, part) { if slices.Contains(ignoredDirs, part) {
return false return false

BIN
dendrite

Binary file not shown.

View file

@ -1,13 +1,28 @@
package persistenceconfig package persistenceconfig
type VaultConfiguration struct { type VaultConfiguration struct {
name string name string
path string path string
templateDirectory string templateDirectory string
exludeIndexFiles []string
defaultExcludes []string
overrideDefaultIgnores bool
} }
func NewVaultConfiguration(vaultName, vaultPath, templateDirectory string) *VaultConfiguration { func NewVaultConfiguration(
return &VaultConfiguration{name: vaultName, path: vaultPath, templateDirectory: templateDirectory} vaultName,
vaultPath,
templateDirectory string,
excludeIndexFiles []string,
overrideDefaultIgnores bool,
) *VaultConfiguration {
return &VaultConfiguration{
name: vaultName,
path: vaultPath,
templateDirectory: templateDirectory,
exludeIndexFiles: excludeIndexFiles,
defaultExcludes: []string{".git", ".templates"},
}
} }
func (vc *VaultConfiguration) VaultName() string { func (vc *VaultConfiguration) VaultName() string {
@ -21,3 +36,15 @@ func (vc *VaultConfiguration) VaultPath() string {
func (vc *VaultConfiguration) TemplateDirectory() string { func (vc *VaultConfiguration) TemplateDirectory() string {
return vc.templateDirectory return vc.templateDirectory
} }
func (vc *VaultConfiguration) ExcludeIndexFiles() []string {
return vc.exludeIndexFiles
}
func (vc *VaultConfiguration) GetExcludeIndexFiles() []string {
defaultIgnores := []string{".git", ".templates"}
if vc.overrideDefaultIgnores {
return vc.exludeIndexFiles
}
return append(defaultIgnores, vc.exludeIndexFiles...)
}

View file

@ -12,11 +12,23 @@ type VaultStore struct {
var vaultStore *VaultStore var vaultStore *VaultStore
func NewVaultStore(vaultName, vaultPath, templateDir string) *VaultStore { func NewVaultStore(
vaultName,
vaultPath,
templateDir string,
exludeIndexFiles []string,
overrideDefaultIgnores bool,
) *VaultStore {
if vaultStore != nil { if vaultStore != nil {
return vaultStore return vaultStore
} }
vaultStore = &VaultStore{Config: persistenceconfig.NewVaultConfiguration(vaultName, vaultPath, templateDir)} vaultStore = &VaultStore{Config: persistenceconfig.NewVaultConfiguration(
vaultName,
vaultPath,
templateDir,
exludeIndexFiles,
overrideDefaultIgnores,
)}
return vaultStore return vaultStore
} }
@ -44,3 +56,6 @@ func (vs *VaultStore) fileTypeCheck(templateName string) string {
return templateName return templateName
} }
func (vs *VaultStore) GetExcludeIndexFiles() []string {
return vs.Config.GetExcludeIndexFiles()
}

View file

@ -46,7 +46,7 @@ func NewDBFixture() *DBFixture {
DB: dbContext.DB, DB: dbContext.DB,
DBPath: dbPath, DBPath: dbPath,
TestContext: context.Background(), TestContext: context.Background(),
VaultStore: store.NewVaultStore("testVault", vaultPath, path.Join(vaultPath, "templates")), VaultStore: store.NewVaultStore("testVault", vaultPath, path.Join(vaultPath, "templates"), []string{}, false),
} }
} }