forked from vieter-v/vieter
				
			Moved config structs to more logical location
							parent
							
								
									2aa2aa143c
								
							
						
					
					
						commit
						c656e672e2
					
				| 
						 | 
				
			
			@ -3,7 +3,6 @@ module build
 | 
			
		|||
import docker
 | 
			
		||||
import encoding.base64
 | 
			
		||||
import time
 | 
			
		||||
import env
 | 
			
		||||
import net.http
 | 
			
		||||
import git
 | 
			
		||||
import json
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +61,7 @@ fn create_build_image() ?string {
 | 
			
		|||
	return image.id
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn build(conf env.BuildConfig) ? {
 | 
			
		||||
fn build(conf Config) ? {
 | 
			
		||||
	// We get the repos list from the Vieter instance
 | 
			
		||||
	mut req := http.new_request(http.Method.get, '$conf.address/api/repos', '') ?
 | 
			
		||||
	req.add_custom_header('X-Api-Key', conf.api_key) ?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,12 @@ module build
 | 
			
		|||
import cli
 | 
			
		||||
import env
 | 
			
		||||
 | 
			
		||||
pub struct Config {
 | 
			
		||||
pub:
 | 
			
		||||
	api_key string
 | 
			
		||||
	address string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// cmd returns the cli submodule that handles the build process
 | 
			
		||||
pub fn cmd() cli.Command {
 | 
			
		||||
	return cli.Command{
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +16,7 @@ pub fn cmd() cli.Command {
 | 
			
		|||
		description: 'Run the build process.'
 | 
			
		||||
		execute: fn (cmd cli.Command) ? {
 | 
			
		||||
			config_file := cmd.flags.get_string('config-file') ?
 | 
			
		||||
			conf := env.load<env.BuildConfig>(config_file) ?
 | 
			
		||||
			conf := env.load<Config>(config_file) ?
 | 
			
		||||
 | 
			
		||||
			build(conf) ?
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										19
									
								
								src/env.v
								
								
								
								
							
							
						
						
									
										19
									
								
								src/env.v
								
								
								
								
							| 
						 | 
				
			
			@ -10,23 +10,6 @@ const prefix = 'VIETER_'
 | 
			
		|||
// instead
 | 
			
		||||
const file_suffix = '_FILE'
 | 
			
		||||
 | 
			
		||||
pub struct ServerConfig {
 | 
			
		||||
pub:
 | 
			
		||||
	log_level    string = "WARN"
 | 
			
		||||
	log_file     string = "vieter.log"
 | 
			
		||||
	pkg_dir      string
 | 
			
		||||
	download_dir string
 | 
			
		||||
	api_key      string
 | 
			
		||||
	repo_dir     string
 | 
			
		||||
	repos_file   string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct BuildConfig {
 | 
			
		||||
pub:
 | 
			
		||||
	api_key string
 | 
			
		||||
	address string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn get_env_var(field_name string) ?string {
 | 
			
		||||
	env_var_name := '$env.prefix$field_name.to_upper()'
 | 
			
		||||
	env_file_name := '$env.prefix$field_name.to_upper()$env.file_suffix'
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +56,7 @@ pub fn load<T>(path string) ?T {
 | 
			
		|||
			s := doc.value(field.name)
 | 
			
		||||
 | 
			
		||||
			// We currently only support strings
 | 
			
		||||
			if s.type_name() == "string" {
 | 
			
		||||
			if s.type_name() == 'string' {
 | 
			
		||||
				res.$(field.name) = s.string()
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,17 @@ module server
 | 
			
		|||
import cli
 | 
			
		||||
import env
 | 
			
		||||
 | 
			
		||||
struct Config {
 | 
			
		||||
pub:
 | 
			
		||||
	log_level    string = 'WARN'
 | 
			
		||||
	log_file     string = 'vieter.log'
 | 
			
		||||
	pkg_dir      string
 | 
			
		||||
	download_dir string
 | 
			
		||||
	api_key      string
 | 
			
		||||
	repo_dir     string
 | 
			
		||||
	repos_file   string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// cmd returns the cli submodule that handles starting the server
 | 
			
		||||
pub fn cmd() cli.Command {
 | 
			
		||||
	return cli.Command{
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +21,7 @@ pub fn cmd() cli.Command {
 | 
			
		|||
		description: 'Start the Vieter server'
 | 
			
		||||
		execute: fn (cmd cli.Command) ? {
 | 
			
		||||
			config_file := cmd.flags.get_string('config-file') ?
 | 
			
		||||
			conf := env.load<env.ServerConfig>(config_file) ?
 | 
			
		||||
			conf := env.load<Config>(config_file) ?
 | 
			
		||||
 | 
			
		||||
			server(conf) ?
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@ import web
 | 
			
		|||
import os
 | 
			
		||||
import log
 | 
			
		||||
import repo
 | 
			
		||||
import env
 | 
			
		||||
import util
 | 
			
		||||
 | 
			
		||||
const port = 8000
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +11,7 @@ const port = 8000
 | 
			
		|||
struct App {
 | 
			
		||||
	web.Context
 | 
			
		||||
pub:
 | 
			
		||||
	conf env.ServerConfig [required; web_global]
 | 
			
		||||
	conf Config [required; web_global]
 | 
			
		||||
pub mut:
 | 
			
		||||
	repo repo.Repo [required; web_global]
 | 
			
		||||
	// This is used to claim the file lock on the repos file
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +19,7 @@ pub mut:
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// server starts the web server & starts listening for requests
 | 
			
		||||
pub fn server(conf env.ServerConfig) ? {
 | 
			
		||||
pub fn server(conf Config) ? {
 | 
			
		||||
	// Configure logger
 | 
			
		||||
	log_level := log.level_from_tag(conf.log_level) or {
 | 
			
		||||
		util.exit_with_message(1, 'Invalid log level. The allowed values are FATAL, ERROR, WARN, INFO & DEBUG.')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue