forked from vieter-v/vieter
				
			Updated CI Dockerfile; fixed formatting & vet
							parent
							
								
									6194a3f408
								
							
						
					
					
						commit
						27f59c6664
					
				| 
						 | 
					@ -24,9 +24,10 @@ RUN curl --fail \
 | 
				
			||||||
FROM busybox:1.35.0
 | 
					FROM busybox:1.35.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV PATH=/bin \
 | 
					ENV PATH=/bin \
 | 
				
			||||||
    REPO_DIR=/data/repo \
 | 
					    VIETER_REPO_DIR=/data/repo \
 | 
				
			||||||
    PKG_DIR=/data/pkgs \
 | 
					    VIETER_PKG_DIR=/data/pkgs \
 | 
				
			||||||
    DOWNLOAD_DIR=/data/downloads
 | 
					    VIETER_DOWNLOAD_DIR=/data/downloads \
 | 
				
			||||||
 | 
					    VIETER_REPOS_FILE=/data/repos.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY --from=builder /app/dumb-init /app/vieter /bin/
 | 
					COPY --from=builder /app/dumb-init /app/vieter /bin/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										3
									
								
								Makefile
								
								
								
								
							| 
						 | 
					@ -13,11 +13,14 @@ vieter: $(SOURCES)
 | 
				
			||||||
	$(V) -g -o vieter $(SRC_DIR)
 | 
						$(V) -g -o vieter $(SRC_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Debug build using gcc
 | 
					# Debug build using gcc
 | 
				
			||||||
 | 
					# The debug build can't use the boehm garbage collector, as that is
 | 
				
			||||||
 | 
					# multi-threaded and causes issues when running vieter inside gdb.
 | 
				
			||||||
.PHONY: debug
 | 
					.PHONY: debug
 | 
				
			||||||
debug: dvieter
 | 
					debug: dvieter
 | 
				
			||||||
dvieter: $(SOURCES)
 | 
					dvieter: $(SOURCES)
 | 
				
			||||||
	$(V_PATH) -showcc -keepc -cg -o dvieter $(SRC_DIR)
 | 
						$(V_PATH) -showcc -keepc -cg -o dvieter $(SRC_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Run the debug build inside gdb
 | 
				
			||||||
.PHONY: gdb
 | 
					.PHONY: gdb
 | 
				
			||||||
gdb: dvieter
 | 
					gdb: dvieter
 | 
				
			||||||
	 VIETER_API_KEY=test \
 | 
						 VIETER_API_KEY=test \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,6 @@ import docker
 | 
				
			||||||
import encoding.base64
 | 
					import encoding.base64
 | 
				
			||||||
import rand
 | 
					import rand
 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import json
 | 
					import json
 | 
				
			||||||
import server
 | 
					import server
 | 
				
			||||||
import env
 | 
					import env
 | 
				
			||||||
| 
						 | 
					@ -16,7 +15,7 @@ fn build() ? {
 | 
				
			||||||
	conf := env.load<env.BuildConfig>() ?
 | 
						conf := env.load<env.BuildConfig>() ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// We get the repos list from the Vieter instance
 | 
						// We get the repos list from the Vieter instance
 | 
				
			||||||
	mut req := http.new_request(http.Method.get, '${conf.address}/api/repos', '') ?
 | 
						mut req := http.new_request(http.Method.get, '$conf.address/api/repos', '') ?
 | 
				
			||||||
	req.add_custom_header('X-Api-Key', conf.api_key) ?
 | 
						req.add_custom_header('X-Api-Key', conf.api_key) ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	res := req.do() ?
 | 
						res := req.do() ?
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,8 +22,8 @@ pub:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct BuildConfig {
 | 
					pub struct BuildConfig {
 | 
				
			||||||
pub:
 | 
					pub:
 | 
				
			||||||
	api_key  string
 | 
						api_key string
 | 
				
			||||||
	address  string
 | 
						address string
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fn get_env_var(field_name string) ?string {
 | 
					fn get_env_var(field_name string) ?string {
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,10 @@ fn get_env_var(field_name string) ?string {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// load attempts to create the given type from environment variables.
 | 
					// load<T> attempts to create the given type from environment variables. For
 | 
				
			||||||
 | 
					// each field, the corresponding env var is its name in uppercase prepended
 | 
				
			||||||
 | 
					// with the hardcoded prefix. If this one isn't present, it looks for the env
 | 
				
			||||||
 | 
					// var with the file_suffix suffix.
 | 
				
			||||||
pub fn load<T>() ?T {
 | 
					pub fn load<T>() ?T {
 | 
				
			||||||
	res := T{}
 | 
						res := T{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ fn write_repos(path string, repos []GitRepo) ? {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
['/api/repos'; get]
 | 
					['/api/repos'; get]
 | 
				
			||||||
pub fn (mut app App) get_repos() web.Result {
 | 
					fn (mut app App) get_repos() web.Result {
 | 
				
			||||||
	if !app.is_authorized() {
 | 
						if !app.is_authorized() {
 | 
				
			||||||
		return app.text('Unauthorized.')
 | 
							return app.text('Unauthorized.')
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -59,7 +59,7 @@ pub fn (mut app App) get_repos() web.Result {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
['/api/repos'; post]
 | 
					['/api/repos'; post]
 | 
				
			||||||
pub fn (mut app App) post_repo() web.Result {
 | 
					fn (mut app App) post_repo() web.Result {
 | 
				
			||||||
	if !app.is_authorized() {
 | 
						if !app.is_authorized() {
 | 
				
			||||||
		return app.text('Unauthorized.')
 | 
							return app.text('Unauthorized.')
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -98,7 +98,7 @@ pub fn (mut app App) post_repo() web.Result {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
['/api/repos'; delete]
 | 
					['/api/repos'; delete]
 | 
				
			||||||
pub fn (mut app App) delete_repo() web.Result {
 | 
					fn (mut app App) delete_repo() web.Result {
 | 
				
			||||||
	if !app.is_authorized() {
 | 
						if !app.is_authorized() {
 | 
				
			||||||
		return app.text('Unauthorized.')
 | 
							return app.text('Unauthorized.')
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,6 +19,7 @@ pub mut:
 | 
				
			||||||
	git_mutex shared util.Dummy
 | 
						git_mutex shared util.Dummy
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// server starts the web server & starts listening for requests
 | 
				
			||||||
pub fn server() ? {
 | 
					pub fn server() ? {
 | 
				
			||||||
	conf := env.load<env.ServerConfig>() ?
 | 
						conf := env.load<env.ServerConfig>() ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,12 +15,15 @@ pub struct Dummy {
 | 
				
			||||||
	x int
 | 
						x int
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// exit_with_message exits the program with a given status code after having
 | 
				
			||||||
 | 
					// first printed a specific message to STDERR
 | 
				
			||||||
[noreturn]
 | 
					[noreturn]
 | 
				
			||||||
pub fn exit_with_message(code int, msg string) {
 | 
					pub fn exit_with_message(code int, msg string) {
 | 
				
			||||||
	eprintln(msg)
 | 
						eprintln(msg)
 | 
				
			||||||
	exit(code)
 | 
						exit(code)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// reader_to_file writes the contents of a BufferedReader to a file
 | 
				
			||||||
pub fn reader_to_file(mut reader io.BufferedReader, length int, path string) ? {
 | 
					pub fn reader_to_file(mut reader io.BufferedReader, length int, path string) ? {
 | 
				
			||||||
	mut file := os.create(path) ?
 | 
						mut file := os.create(path) ?
 | 
				
			||||||
	defer {
 | 
						defer {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue