chore: compile with -skip-unused and mbedtls
							parent
							
								
									dc517c23c5
								
							
						
					
					
						commit
						03edab3d23
					
				
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Makefile
								
								
								
								
							|  | @ -3,7 +3,7 @@ SRC_DIR := src | ||||||
| SOURCES != find '$(SRC_DIR)' -iname '*.v' | SOURCES != find '$(SRC_DIR)' -iname '*.v' | ||||||
| 
 | 
 | ||||||
| V_PATH ?= v | V_PATH ?= v | ||||||
| V := $(V_PATH) -showcc -gc boehm -W -d use_openssl | V := $(V_PATH) -showcc -gc boehm -W -skip-unused | ||||||
| 
 | 
 | ||||||
| all: vieter | all: vieter | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import web | ||||||
| import web.response { new_data_response, new_response } | import web.response { new_data_response, new_response } | ||||||
| 
 | 
 | ||||||
| // v1_poll_job_queue allows agents to poll for new build jobs. | // v1_poll_job_queue allows agents to poll for new build jobs. | ||||||
| ['/api/v1/jobs/poll'; auth; get] | ['/api/v1/jobs/poll'; auth; get; markused] | ||||||
| fn (mut app App) v1_poll_job_queue() web.Result { | fn (mut app App) v1_poll_job_queue() web.Result { | ||||||
| 	arch := app.query['arch'] or { | 	arch := app.query['arch'] or { | ||||||
| 		return app.json(.bad_request, new_response('Missing arch query arg.')) | 		return app.json(.bad_request, new_response('Missing arch query arg.')) | ||||||
|  | @ -21,7 +21,7 @@ fn (mut app App) v1_poll_job_queue() web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_queue_job allows queueing a new one-time build job for the given target. | // v1_queue_job allows queueing a new one-time build job for the given target. | ||||||
| ['/api/v1/jobs/queue'; auth; post] | ['/api/v1/jobs/queue'; auth; markused; post] | ||||||
| fn (mut app App) v1_queue_job() web.Result { | fn (mut app App) v1_queue_job() web.Result { | ||||||
| 	target_id := app.query['target'] or { | 	target_id := app.query['target'] or { | ||||||
| 		return app.json(.bad_request, new_response('Missing target query arg.')) | 		return app.json(.bad_request, new_response('Missing target query arg.')) | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ import models { BuildLog, BuildLogFilter } | ||||||
| 
 | 
 | ||||||
| // v1_get_logs returns all build logs in the database. A 'target' query param can | // v1_get_logs returns all build logs in the database. A 'target' query param can | ||||||
| // optionally be added to limit the list of build logs to that repository. | // optionally be added to limit the list of build logs to that repository. | ||||||
| ['/api/v1/logs'; auth; get] | ['/api/v1/logs'; auth; get; markused] | ||||||
| fn (mut app App) v1_get_logs() web.Result { | fn (mut app App) v1_get_logs() web.Result { | ||||||
| 	filter := models.from_params<BuildLogFilter>(app.query) or { | 	filter := models.from_params<BuildLogFilter>(app.query) or { | ||||||
| 		return app.json(.bad_request, new_response('Invalid query parameters.')) | 		return app.json(.bad_request, new_response('Invalid query parameters.')) | ||||||
|  | @ -22,7 +22,7 @@ fn (mut app App) v1_get_logs() web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_get_single_log returns the build log with the given id. | // v1_get_single_log returns the build log with the given id. | ||||||
| ['/api/v1/logs/:id'; auth; get] | ['/api/v1/logs/:id'; auth; get; markused] | ||||||
| fn (mut app App) v1_get_single_log(id int) web.Result { | fn (mut app App) v1_get_single_log(id int) web.Result { | ||||||
| 	log := app.db.get_build_log(id) or { return app.status(.not_found) } | 	log := app.db.get_build_log(id) or { return app.status(.not_found) } | ||||||
| 
 | 
 | ||||||
|  | @ -30,7 +30,7 @@ fn (mut app App) v1_get_single_log(id int) web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_get_log_content returns the actual build log file for the given id. | // v1_get_log_content returns the actual build log file for the given id. | ||||||
| ['/api/v1/logs/:id/content'; auth; get] | ['/api/v1/logs/:id/content'; auth; get; markused] | ||||||
| fn (mut app App) v1_get_log_content(id int) web.Result { | fn (mut app App) v1_get_log_content(id int) web.Result { | ||||||
| 	log := app.db.get_build_log(id) or { return app.status(.not_found) } | 	log := app.db.get_build_log(id) or { return app.status(.not_found) } | ||||||
| 	file_name := log.start_time.custom_format('YYYY-MM-DD_HH-mm-ss') | 	file_name := log.start_time.custom_format('YYYY-MM-DD_HH-mm-ss') | ||||||
|  | @ -50,7 +50,7 @@ fn parse_query_time(query string) !time.Time { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_post_log adds a new log to the database. | // v1_post_log adds a new log to the database. | ||||||
| ['/api/v1/logs'; auth; post] | ['/api/v1/logs'; auth; markused; post] | ||||||
| fn (mut app App) v1_post_log() web.Result { | fn (mut app App) v1_post_log() web.Result { | ||||||
| 	// Parse query params | 	// Parse query params | ||||||
| 	start_time_int := app.query['startTime'].int() | 	start_time_int := app.query['startTime'].int() | ||||||
|  | @ -121,7 +121,7 @@ fn (mut app App) v1_post_log() web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_delete_log allows removing a build log from the system. | // v1_delete_log allows removing a build log from the system. | ||||||
| ['/api/v1/logs/:id'; auth; delete] | ['/api/v1/logs/:id'; auth; delete; markused] | ||||||
| fn (mut app App) v1_delete_log(id int) web.Result { | fn (mut app App) v1_delete_log(id int) web.Result { | ||||||
| 	log := app.db.get_build_log(id) or { return app.status(.not_found) } | 	log := app.db.get_build_log(id) or { return app.status(.not_found) } | ||||||
| 	full_path := os.join_path(app.conf.data_dir, logs_dir_name, log.path()) | 	full_path := os.join_path(app.conf.data_dir, logs_dir_name, log.path()) | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import db | ||||||
| import models { Target, TargetArch, TargetFilter } | import models { Target, TargetArch, TargetFilter } | ||||||
| 
 | 
 | ||||||
| // v1_get_targets returns the current list of targets. | // v1_get_targets returns the current list of targets. | ||||||
| ['/api/v1/targets'; auth; get] | ['/api/v1/targets'; auth; get; markused] | ||||||
| fn (mut app App) v1_get_targets() web.Result { | fn (mut app App) v1_get_targets() web.Result { | ||||||
| 	filter := models.from_params<TargetFilter>(app.query) or { | 	filter := models.from_params<TargetFilter>(app.query) or { | ||||||
| 		return app.json(.bad_request, new_response('Invalid query parameters.')) | 		return app.json(.bad_request, new_response('Invalid query parameters.')) | ||||||
|  | @ -17,7 +17,7 @@ fn (mut app App) v1_get_targets() web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_get_single_target returns the information for a single target. | // v1_get_single_target returns the information for a single target. | ||||||
| ['/api/v1/targets/:id'; auth; get] | ['/api/v1/targets/:id'; auth; get; markused] | ||||||
| fn (mut app App) v1_get_single_target(id int) web.Result { | fn (mut app App) v1_get_single_target(id int) web.Result { | ||||||
| 	target := app.db.get_target(id) or { return app.status(.not_found) } | 	target := app.db.get_target(id) or { return app.status(.not_found) } | ||||||
| 
 | 
 | ||||||
|  | @ -25,7 +25,7 @@ fn (mut app App) v1_get_single_target(id int) web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_post_target creates a new target from the provided query string. | // v1_post_target creates a new target from the provided query string. | ||||||
| ['/api/v1/targets'; auth; post] | ['/api/v1/targets'; auth; markused; post] | ||||||
| fn (mut app App) v1_post_target() web.Result { | fn (mut app App) v1_post_target() web.Result { | ||||||
| 	mut params := app.query.clone() | 	mut params := app.query.clone() | ||||||
| 
 | 
 | ||||||
|  | @ -55,7 +55,7 @@ fn (mut app App) v1_post_target() web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_delete_target removes a given target from the server's list. | // v1_delete_target removes a given target from the server's list. | ||||||
| ['/api/v1/targets/:id'; auth; delete] | ['/api/v1/targets/:id'; auth; delete; markused] | ||||||
| fn (mut app App) v1_delete_target(id int) web.Result { | fn (mut app App) v1_delete_target(id int) web.Result { | ||||||
| 	app.db.delete_target(id) | 	app.db.delete_target(id) | ||||||
| 	app.job_queue.invalidate(id) | 	app.job_queue.invalidate(id) | ||||||
|  | @ -64,7 +64,7 @@ fn (mut app App) v1_delete_target(id int) web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // v1_patch_target updates a target's data with the given query params. | // v1_patch_target updates a target's data with the given query params. | ||||||
| ['/api/v1/targets/:id'; auth; patch] | ['/api/v1/targets/:id'; auth; markused; patch] | ||||||
| fn (mut app App) v1_patch_target(id int) web.Result { | fn (mut app App) v1_patch_target(id int) web.Result { | ||||||
| 	app.db.update_target(id, app.query) | 	app.db.update_target(id, app.query) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ import web.response { new_data_response, new_response } | ||||||
| 
 | 
 | ||||||
| // healthcheck just returns a string, but can be used to quickly check if the | // healthcheck just returns a string, but can be used to quickly check if the | ||||||
| // server is still responsive. | // server is still responsive. | ||||||
| ['/health'; get] | ['/health'; get; markused] | ||||||
| pub fn (mut app App) healthcheck() web.Result { | pub fn (mut app App) healthcheck() web.Result { | ||||||
| 	return app.json(.ok, new_response('Healthy.')) | 	return app.json(.ok, new_response('Healthy.')) | ||||||
| } | } | ||||||
|  | @ -18,7 +18,7 @@ pub fn (mut app App) healthcheck() web.Result { | ||||||
| // get_repo_file handles all Pacman-related routes. It returns both the | // get_repo_file handles all Pacman-related routes. It returns both the | ||||||
| // repository's archives, but also package archives or the contents of a | // repository's archives, but also package archives or the contents of a | ||||||
| // package's desc file. | // package's desc file. | ||||||
| ['/:repo/:arch/:filename'; get; head] | ['/:repo/:arch/:filename'; get; head; markused] | ||||||
| fn (mut app App) get_repo_file(repo string, arch string, filename string) web.Result { | fn (mut app App) get_repo_file(repo string, arch string, filename string) web.Result { | ||||||
| 	mut full_path := '' | 	mut full_path := '' | ||||||
| 
 | 
 | ||||||
|  | @ -48,7 +48,7 @@ fn (mut app App) get_repo_file(repo string, arch string, filename string) web.Re | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // put_package handles publishing a package to a repository. | // put_package handles publishing a package to a repository. | ||||||
| ['/:repo/publish'; auth; post] | ['/:repo/publish'; auth; markused; post] | ||||||
| fn (mut app App) put_package(repo string) web.Result { | fn (mut app App) put_package(repo string) web.Result { | ||||||
| 	// api is a reserved keyword for api routes & should never be allowed to be | 	// api is a reserved keyword for api routes & should never be allowed to be | ||||||
| 	// a repository. | 	// a repository. | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ module server | ||||||
| import web | import web | ||||||
| 
 | 
 | ||||||
| // delete_package tries to remove the given package. | // delete_package tries to remove the given package. | ||||||
| ['/:repo/:arch/:pkg'; auth; delete] | ['/:repo/:arch/:pkg'; auth; delete; markused] | ||||||
| fn (mut app App) delete_package(repo string, arch string, pkg string) web.Result { | fn (mut app App) delete_package(repo string, arch string, pkg string) web.Result { | ||||||
| 	res := app.repo.remove_pkg_from_arch_repo(repo, arch, pkg, true) or { | 	res := app.repo.remove_pkg_from_arch_repo(repo, arch, pkg, true) or { | ||||||
| 		app.lerror('Error while deleting package: $err.msg()') | 		app.lerror('Error while deleting package: $err.msg()') | ||||||
|  | @ -23,7 +23,7 @@ fn (mut app App) delete_package(repo string, arch string, pkg string) web.Result | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // delete_arch_repo tries to remove the given arch-repo. | // delete_arch_repo tries to remove the given arch-repo. | ||||||
| ['/:repo/:arch'; auth; delete] | ['/:repo/:arch'; auth; delete; markused] | ||||||
| fn (mut app App) delete_arch_repo(repo string, arch string) web.Result { | fn (mut app App) delete_arch_repo(repo string, arch string) web.Result { | ||||||
| 	res := app.repo.remove_arch_repo(repo, arch) or { | 	res := app.repo.remove_arch_repo(repo, arch) or { | ||||||
| 		app.lerror('Error while deleting arch-repo: $err.msg()') | 		app.lerror('Error while deleting arch-repo: $err.msg()') | ||||||
|  | @ -43,7 +43,7 @@ fn (mut app App) delete_arch_repo(repo string, arch string) web.Result { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // delete_repo tries to remove the given repo. | // delete_repo tries to remove the given repo. | ||||||
| ['/:repo'; auth; delete] | ['/:repo'; auth; delete; markused] | ||||||
| fn (mut app App) delete_repo(repo string) web.Result { | fn (mut app App) delete_repo(repo string) web.Result { | ||||||
| 	res := app.repo.remove_repo(repo) or { | 	res := app.repo.remove_repo(repo) or { | ||||||
| 		app.lerror('Error while deleting repo: $err.msg()') | 		app.lerror('Error while deleting repo: $err.msg()') | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import net.http | ||||||
| 
 | 
 | ||||||
| // Method attributes that should be ignored when parsing, as they're used | // Method attributes that should be ignored when parsing, as they're used | ||||||
| // elsewhere. | // elsewhere. | ||||||
| const attrs_to_ignore = ['auth'] | const attrs_to_ignore = ['auth', 'markused'] | ||||||
| 
 | 
 | ||||||
| // Parsing function attributes for methods and path. | // Parsing function attributes for methods and path. | ||||||
| fn parse_attrs(name string, attrs []string) !([]http.Method, string) { | fn parse_attrs(name string, attrs []string) !([]http.Method, string) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue