From 684787bcb72aece2aa914597a3bc8788432e66f7 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Sun, 13 Jul 2025 21:23:34 +0100 Subject: Add flags --- pkg/config/site.go | 12 ++++++++++++ pkg/site/site.go | 22 ++++++++++++++++++++++ pkg/upload/upload.go | 5 +++++ 3 files changed, 39 insertions(+) (limited to 'pkg') diff --git a/pkg/config/site.go b/pkg/config/site.go index ffd5ddc..4b36f1a 100644 --- a/pkg/config/site.go +++ b/pkg/config/site.go @@ -6,8 +6,20 @@ import ( "github.com/pelletier/go-toml/v2" ) +type SiteFlag uint + +const ( + FlagDisable SiteFlag = 1 << iota + FlagTLS + FlagIndex + FlagPassword + FlagReadOnly +) + type SiteConfig struct { Host string + + Flags SiteFlag } func ReadSiteConfig(filePath string, dst *SiteConfig) error { diff --git a/pkg/site/site.go b/pkg/site/site.go index 37dca5f..3daf5e7 100644 --- a/pkg/site/site.go +++ b/pkg/site/site.go @@ -8,6 +8,7 @@ import ( "path" "path/filepath" "regexp" + "strings" "time" "github.com/LMBishop/scrapbook/pkg/config" @@ -136,6 +137,9 @@ func (s *Site) EvaluateSiteStatus() string { if err != nil || !stat.IsDir() { return "inactive" } + if s.SiteConfig.Flags&config.FlagDisable != 0 { + return "inactive" + } return "live" } @@ -145,6 +149,24 @@ func (s *Site) EvaluateSiteStatusReason() string { if err != nil || !stat.IsDir() { return "This site is inacessible because no version is active" } + if s.SiteConfig.Flags&config.FlagDisable != 0 { + return "This site is inacessible because it is disabled" + } return "This site is live" } + +func (s *Site) ConvertFlagsToString() string { + var bits []string + bitNames := []string{"D", "T", "I", "P", "R"} + + for i := 0; i < len(bitNames); i++ { + if s.SiteConfig.Flags&(1<