forked from vieter-v/vieter
				
			Added Dockerfile & beginning of vweb server
							parent
							
								
									9a09db0485
								
							
						
					
					
						commit
						65f113cdee
					
				|  | @ -0,0 +1,3 @@ | |||
| * | ||||
| 
 | ||||
| !vieter/ | ||||
|  | @ -0,0 +1,3 @@ | |||
| *.c | ||||
| data/ | ||||
| vieter/vieter | ||||
|  | @ -0,0 +1,15 @@ | |||
| FROM thevlang/vlang:alpine-dev AS builder | ||||
| 
 | ||||
| WORKDIR /src | ||||
| COPY vieter ./vieter | ||||
| 
 | ||||
| RUN v -prod vieter | ||||
| 
 | ||||
| 
 | ||||
| FROM alpine:3.15.0 | ||||
| 
 | ||||
| ENV REPO_DIR=/data | ||||
| 
 | ||||
| COPY --from=builder /src/vieter/vieter /usr/local/bin/ | ||||
| 
 | ||||
| ENTRYPOINT [ "/usr/local/bin/vieter" ] | ||||
|  | @ -0,0 +1,7 @@ | |||
| .PHONY: run | ||||
| run: | ||||
| 	API_KEY=test REPO_DIR=data v run vieter | ||||
| 
 | ||||
| .PHONY: fmt | ||||
| fmt: | ||||
| 	v fmt -w vieter | ||||
|  | @ -1,11 +0,0 @@ | |||
| module main | ||||
| 
 | ||||
| import fibonacci | ||||
| 
 | ||||
| fn main() { | ||||
| 	println('Hello, world!') | ||||
| 
 | ||||
| 	for i in 1 .. 35 { | ||||
| 		println('$i - ${fibonacci.fib(i)}') | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,37 @@ | |||
| module main | ||||
| 
 | ||||
| import vweb | ||||
| import os | ||||
| 
 | ||||
| const port = 8000 | ||||
| 
 | ||||
| struct App { | ||||
| 	vweb.Context | ||||
| 	api_key  string [required] | ||||
| 	repo_dir string [required] | ||||
| } | ||||
| 
 | ||||
| [noreturn] | ||||
| fn exit_with_message(code int, msg string) { | ||||
| 	eprintln(msg) | ||||
| 	exit(code) | ||||
| } | ||||
| 
 | ||||
| fn main() { | ||||
| 	key := os.getenv_opt('API_KEY') or { exit_with_message(1, 'No API key was provided.') } | ||||
| 	repo_dir := os.getenv_opt('REPO_DIR') or { | ||||
| 		exit_with_message(1, 'No repo directory was configured.') | ||||
| 	} | ||||
| 
 | ||||
| 	// We create the upload directory during startup | ||||
| 	if !os.is_dir(repo_dir) { | ||||
| 		os.mkdir_all(repo_dir) or { exit_with_message(2, 'Failed to create repo directory.') } | ||||
| 
 | ||||
| 		println('Repo directory created.') | ||||
| 	} | ||||
| 
 | ||||
| 	vweb.run(&App{ | ||||
| 		api_key: key | ||||
| 		repo_dir: repo_dir | ||||
| 	}, port) | ||||
| } | ||||
		Loading…
	
		Reference in New Issue