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