forked from vieter-v/vieter
Moved routes into own file
parent
09d1b5458f
commit
dc98c910c4
|
@ -4,7 +4,6 @@ import web
|
||||||
import os
|
import os
|
||||||
import log
|
import log
|
||||||
import io
|
import io
|
||||||
import repo
|
|
||||||
|
|
||||||
const port = 8000
|
const port = 8000
|
||||||
|
|
||||||
|
@ -51,40 +50,6 @@ fn reader_to_file(mut reader io.BufferedReader, length int, path string) ? {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
['/pkgs/:pkg'; put]
|
|
||||||
fn (mut app App) put_package(pkg string) web.Result {
|
|
||||||
full_path := os.join_path_single(app.repo_dir, pkg)
|
|
||||||
|
|
||||||
if os.exists(full_path) {
|
|
||||||
app.lwarn("Tried to upload duplicate package '$pkg'")
|
|
||||||
|
|
||||||
return app.text('File already exists.')
|
|
||||||
}
|
|
||||||
|
|
||||||
if length := app.req.header.get(.content_length) {
|
|
||||||
reader_to_file(mut app.reader, length.int(), full_path) or {
|
|
||||||
app.lwarn("Failed to upload package '$pkg'")
|
|
||||||
|
|
||||||
return app.text('Failed to upload file.')
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
app.lwarn("Tried to upload package '$pkg' without specifying a Content-Length.")
|
|
||||||
return app.text("Content-Type header isn't set.")
|
|
||||||
}
|
|
||||||
|
|
||||||
repo.add_package(os.join_path_single(app.repo_dir, db_name), full_path) or {
|
|
||||||
app.linfo("Failed to add package '$pkg' to database.")
|
|
||||||
|
|
||||||
os.rm(full_path) or { println('Failed to remove $full_path') }
|
|
||||||
|
|
||||||
return app.text('Failed to add package to repo.')
|
|
||||||
}
|
|
||||||
|
|
||||||
app.linfo("Uploaded package '$pkg'.")
|
|
||||||
|
|
||||||
return app.text('Package added successfully.')
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// Configure logger
|
// Configure logger
|
||||||
log_level_str := os.getenv_opt('LOG_LEVEL') or { 'WARN' }
|
log_level_str := os.getenv_opt('LOG_LEVEL') or { 'WARN' }
|
||||||
|
@ -99,9 +64,6 @@ fn main() {
|
||||||
|
|
||||||
logger.set_full_logpath(log_file)
|
logger.set_full_logpath(log_file)
|
||||||
logger.log_to_console_too()
|
logger.log_to_console_too()
|
||||||
// logger.set
|
|
||||||
logger.debug('Logger set up.')
|
|
||||||
logger.flush()
|
|
||||||
|
|
||||||
defer {
|
defer {
|
||||||
logger.info('Flushing log file')
|
logger.info('Flushing log file')
|
||||||
|
@ -121,7 +83,7 @@ fn main() {
|
||||||
exit_with_message(2, "Failed to create repo directory '$repo_dir'.")
|
exit_with_message(2, "Failed to create repo directory '$repo_dir'.")
|
||||||
}
|
}
|
||||||
|
|
||||||
println("Repo directory '$repo_dir' created.")
|
logger.info("Created repo directory '$repo_dir'")
|
||||||
}
|
}
|
||||||
|
|
||||||
web.run(&App{
|
web.run(&App{
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
module main
|
||||||
|
|
||||||
|
import web
|
||||||
|
import os
|
||||||
|
import repo
|
||||||
|
|
||||||
|
['/pkgs/:pkg'; put]
|
||||||
|
fn (mut app App) put_package(pkg string) web.Result {
|
||||||
|
full_path := os.join_path_single(app.repo_dir, pkg)
|
||||||
|
|
||||||
|
if os.exists(full_path) {
|
||||||
|
app.lwarn("Tried to upload duplicate package '$pkg'")
|
||||||
|
|
||||||
|
return app.text('File already exists.')
|
||||||
|
}
|
||||||
|
|
||||||
|
if length := app.req.header.get(.content_length) {
|
||||||
|
app.ldebug("Uploading $length bytes to package '$pkg'")
|
||||||
|
reader_to_file(mut app.reader, length.int(), full_path) or {
|
||||||
|
app.lwarn("Failed to upload package '$pkg'")
|
||||||
|
|
||||||
|
return app.text('Failed to upload file.')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
app.lwarn("Tried to upload package '$pkg' without specifying a Content-Length.")
|
||||||
|
return app.text("Content-Type header isn't set.")
|
||||||
|
}
|
||||||
|
|
||||||
|
repo.add_package(os.join_path_single(app.repo_dir, db_name), full_path) or {
|
||||||
|
app.linfo("Failed to add package '$pkg' to database.")
|
||||||
|
|
||||||
|
os.rm(full_path) or { println('Failed to remove $full_path') }
|
||||||
|
|
||||||
|
return app.text('Failed to add package to repo.')
|
||||||
|
}
|
||||||
|
|
||||||
|
app.linfo("Uploaded package '$pkg'.")
|
||||||
|
|
||||||
|
return app.text('Package added successfully.')
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue