diff options
| author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-10-05 16:47:32 +0200 | 
|---|---|---|
| committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-10-05 16:47:32 +0200 | 
| commit | ada6a68b4f25c912705542a6b03aae7ffffb5e99 (patch) | |
| tree | 63ffb7d4c2f6c8ce194f90f6b3568b9c08286bf9 /pkg/config | |
| parent | 78af329f2c7bc1739bcd36baf45ab95aaff43434 (diff) | |
| download | cerrado-ada6a68b4f25c912705542a6b03aae7ffffb5e99.tar.gz cerrado-ada6a68b4f25c912705542a6b03aae7ffffb5e99.tar.bz2 cerrado-ada6a68b4f25c912705542a6b03aae7ffffb5e99.zip | |
feat: Make syntax highlight configurable
Now cerrado has configurable theme through "syntax-highlight".
Diffstat (limited to 'pkg/config')
| -rw-r--r-- | pkg/config/config.go | 50 | ||||
| -rw-r--r-- | pkg/config/config_test.go | 9 | 
2 files changed, 38 insertions, 21 deletions
| diff --git a/pkg/config/config.go b/pkg/config/config.go index 902ff0d..812a06e 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -30,12 +30,13 @@ type (  	// configuration represents file configuration.  	// fields needs to be exported to cmp to work  	configuration struct { -		Scan         *scan -		RootReadme   string -		ListenAddr   string -		Passphrase   string -		AESKey       string -		Repositories []*GitRepositoryConfiguration +		Scan            *scan +		RootReadme      string +		ListenAddr      string +		Passphrase      string +		SyntaxHighlight string +		AESKey          string +		Repositories    []*GitRepositoryConfiguration  	}  	// This is a per repository configuration. @@ -52,11 +53,12 @@ type (  	// This holds all the function necessary to ask for configuration  	// information.  	ConfigurationRepository struct { -		rootReadme   string -		listenAddr   string -		passphrase   string -		aesKey       string -		repositories []*GitRepositoryConfiguration +		rootReadme      string +		listenAddr      string +		passphrase      string +		aesKey          string +		syntaxHighlight string +		repositories    []*GitRepositoryConfiguration  	}  ) @@ -72,11 +74,12 @@ func LoadConfigurationRepository(configPath string) (*ConfigurationRepository, e  	}  	repo := &ConfigurationRepository{ -		rootReadme:   config.RootReadme, -		listenAddr:   config.ListenAddr, -		repositories: config.Repositories, -		passphrase:   config.Passphrase, -		aesKey:       config.AESKey, +		aesKey:          config.AESKey, +		listenAddr:      config.ListenAddr, +		passphrase:      config.Passphrase, +		repositories:    config.Repositories, +		rootReadme:      config.RootReadme, +		syntaxHighlight: config.SyntaxHighlight,  	}  	if config.Scan.Path != "" { @@ -87,7 +90,6 @@ func LoadConfigurationRepository(configPath string) (*ConfigurationRepository, e  	}  	return repo, nil -  }  // GetRootReadme returns root read path @@ -95,6 +97,10 @@ func (c *ConfigurationRepository) GetRootReadme() string {  	return c.rootReadme  } +func (c *ConfigurationRepository) GetSyntaxHighlight() string { +	return c.syntaxHighlight +} +  func (c *ConfigurationRepository) GetListenAddr() string {  	return c.listenAddr  } @@ -186,6 +192,11 @@ func parse(r io.Reader) (*configuration, error) {  		return nil, err  	} +	err = setSyntaxHighlight(block, &config.SyntaxHighlight) +	if err != nil { +		return nil, err +	} +  	err = setRepositories(block, &config.Repositories)  	if err != nil {  		return nil, err @@ -289,6 +300,11 @@ func setAESKey(block scfg.Block, listenAddr *string) error {  	return setString(scanDir, listenAddr)  } +func setSyntaxHighlight(block scfg.Block, listenAddr *string) error { +	scanDir := block.Get("syntax-highlight") +	return setString(scanDir, listenAddr) +} +  func setListenAddr(block scfg.Block, listenAddr *string) error {  	scanDir := block.Get("listen-addr")  	return setString(scanDir, listenAddr) diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index 0970cfa..9080351 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -105,6 +105,7 @@ repository /srv/git/cerrado.git {  listen-addr unix://var/run/cerrado/cerrado.sock  passphrase $2a$14$VnB/ZcB1DUDkMnosRA6Y7.dj8h5eroslDxTeXlLwfQX/x86mh6WAq  aes-key 8XHptZxSWCGs1m7QzztX5zNQ7D9NiQevVX0DaUTNMbDpRwFzoJiB0U7K6O/kqIt01jJVgzBUfiR8ES46ZLLb4w== +syntax-highlight monokailight  scan "/srv/git" {  	public true @@ -123,9 +124,10 @@ repository /srv/git/cerrado.git {  					Public: true,  					Path:   "/srv/git",  				}, -				ListenAddr: "unix://var/run/cerrado/cerrado.sock", -				Passphrase: "$2a$14$VnB/ZcB1DUDkMnosRA6Y7.dj8h5eroslDxTeXlLwfQX/x86mh6WAq", -				AESKey:     "8XHptZxSWCGs1m7QzztX5zNQ7D9NiQevVX0DaUTNMbDpRwFzoJiB0U7K6O/kqIt01jJVgzBUfiR8ES46ZLLb4w==", +				ListenAddr:      "unix://var/run/cerrado/cerrado.sock", +				Passphrase:      "$2a$14$VnB/ZcB1DUDkMnosRA6Y7.dj8h5eroslDxTeXlLwfQX/x86mh6WAq", +				AESKey:          "8XHptZxSWCGs1m7QzztX5zNQ7D9NiQevVX0DaUTNMbDpRwFzoJiB0U7K6O/kqIt01jJVgzBUfiR8ES46ZLLb4w==", +				SyntaxHighlight: "monokailight",  				Repositories: []*GitRepositoryConfiguration{  					{  						Name:        "linux.git", @@ -158,6 +160,5 @@ repository /srv/git/cerrado.git {  				t.Errorf("Wrong result given - wanted + got\n %s", diff)  			}  		}) -  	}  } | 
