forked from vieter-v/vieter
				
			Changed behavior for default_arch variable
							parent
							
								
									6479071fd7
								
							
						
					
					
						commit
						9d8491a77a
					
				|  | @ -72,10 +72,13 @@ pub fn (r &RepoGroupManager) add_pkg_from_path(repo string, pkg_path string) ?Re | ||||||
| 
 | 
 | ||||||
| // add_pkg_in_repo adds a package to a given repo. This function is responsible | // add_pkg_in_repo adds a package to a given repo. This function is responsible | ||||||
| // for inspecting the package architecture. If said architecture is 'any', the | // for inspecting the package architecture. If said architecture is 'any', the | ||||||
| // package is added to each arch-repository within the given repo. If none | // package is added to each arch-repository within the given repo. A package of | ||||||
| // exist, one is created for provided r.default_arch value. If the architecture | // architecture 'any' will always be added to the arch-repo defined by | ||||||
| // isn't 'any', the package is only added to the specific architecture. | // r.default_arch. If this arch-repo doesn't exist yet, it will be created. If | ||||||
|  | // the architecture isn't 'any', the package is only added to the specific | ||||||
|  | // architecture. | ||||||
| fn (r &RepoGroupManager) add_pkg_in_repo(repo string, pkg &package.Pkg) ?bool { | fn (r &RepoGroupManager) add_pkg_in_repo(repo string, pkg &package.Pkg) ?bool { | ||||||
|  | 	// A package without arch 'any' can be handled without any further checks | ||||||
| 	if pkg.info.arch != 'any' { | 	if pkg.info.arch != 'any' { | ||||||
| 		return r.add_pkg_in_arch_repo(repo, pkg.info.arch, pkg) | 		return r.add_pkg_in_arch_repo(repo, pkg.info.arch, pkg) | ||||||
| 	} | 	} | ||||||
|  | @ -84,15 +87,17 @@ fn (r &RepoGroupManager) add_pkg_in_repo(repo string, pkg &package.Pkg) ?bool { | ||||||
| 
 | 
 | ||||||
| 	mut arch_repos := []string{} | 	mut arch_repos := []string{} | ||||||
| 
 | 
 | ||||||
| 	// If this is the first package to be added to the repository, it won't | 	// If this is the first package that's added to the repo, the directory | ||||||
| 	// contain any arch-repos yet. | 	// won't exist yet | ||||||
| 	if os.exists(repo_dir) { | 	if os.exists(repo_dir) { | ||||||
| 		// We get a listing of all currently present arch-repos in the given repo | 		// We get a listing of all currently present arch-repos in the given repo | ||||||
| 		arch_repos = os.ls(repo_dir) ?.filter(os.is_dir(os.join_path_single(repo_dir, | 		arch_repos = os.ls(repo_dir) ?.filter(os.is_dir(os.join_path_single(repo_dir, | ||||||
| 			it))) | 			it))) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if arch_repos.len == 0 { | 	// The default_arch should always be updated when a package with arch 'any' | ||||||
|  | 	// is added. | ||||||
|  | 	if !arch_repos.contains(r.default_arch) { | ||||||
| 		arch_repos << r.default_arch | 		arch_repos << r.default_arch | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ pub: | ||||||
| 	api_key      string | 	api_key      string | ||||||
| 	data_dir     string | 	data_dir     string | ||||||
| 	repos_file   string | 	repos_file   string | ||||||
|  | 	default_arch string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // cmd returns the cli submodule that handles starting the server | // cmd returns the cli submodule that handles starting the server | ||||||
|  |  | ||||||
|  | @ -58,10 +58,6 @@ fn (mut app App) put_package(repo string) web.Result { | ||||||
| 		// Generate a random filename for the temp file | 		// Generate a random filename for the temp file | ||||||
| 		pkg_path = os.join_path_single(app.conf.download_dir, rand.uuid_v4()) | 		pkg_path = os.join_path_single(app.conf.download_dir, rand.uuid_v4()) | ||||||
| 
 | 
 | ||||||
| 		for os.exists(pkg_path) { |  | ||||||
| 			pkg_path = os.join_path_single(app.conf.download_dir, rand.uuid_v4()) |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		app.ldebug("Uploading $length bytes (${util.pretty_bytes(length.int())}) to '$pkg_path'.") | 		app.ldebug("Uploading $length bytes (${util.pretty_bytes(length.int())}) to '$pkg_path'.") | ||||||
| 
 | 
 | ||||||
| 		// This is used to time how long it takes to upload a file | 		// This is used to time how long it takes to upload a file | ||||||
|  |  | ||||||
|  | @ -20,6 +20,11 @@ pub mut: | ||||||
| 
 | 
 | ||||||
| // server starts the web server & starts listening for requests | // server starts the web server & starts listening for requests | ||||||
| pub fn server(conf Config) ? { | pub fn server(conf Config) ? { | ||||||
|  | 	// Prevent using 'any' as the default arch | ||||||
|  | 	if conf.default_arch == 'any' { | ||||||
|  | 		util.exit_with_message(1, "'any' is not allowed as the value for default_arch.") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	// Configure logger | 	// Configure logger | ||||||
| 	log_level := log.level_from_tag(conf.log_level) or { | 	log_level := log.level_from_tag(conf.log_level) or { | ||||||
| 		util.exit_with_message(1, 'Invalid log level. The allowed values are FATAL, ERROR, WARN, INFO & DEBUG.') | 		util.exit_with_message(1, 'Invalid log level. The allowed values are FATAL, ERROR, WARN, INFO & DEBUG.') | ||||||
|  | @ -39,7 +44,7 @@ pub fn server(conf Config) ? { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// This also creates the directories if needed | 	// This also creates the directories if needed | ||||||
| 	repo := repo.new(conf.data_dir, conf.pkg_dir, 'x86_64') or { | 	repo := repo.new(conf.data_dir, conf.pkg_dir, conf.default_arch) or { | ||||||
| 		logger.error(err.msg) | 		logger.error(err.msg) | ||||||
| 		exit(1) | 		exit(1) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								test.py
								
								
								
								
							
							
						
						
									
										4
									
								
								test.py
								
								
								
								
							|  | @ -46,7 +46,7 @@ def create_random_pkginfo(words, name_min_len, name_max_len): | ||||||
|         "pkgname": name, |         "pkgname": name, | ||||||
|         "pkgbase": name, |         "pkgbase": name, | ||||||
|         "pkgver": ver, |         "pkgver": ver, | ||||||
|         "arch": "x86_64" |         "arch": "any" | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return "\n".join(f"{key} = {value}" for key, value in data.items()) |     return "\n".join(f"{key} = {value}" for key, value in data.items()) | ||||||
|  | @ -97,7 +97,7 @@ async def upload_random_package(tar_path, sem): | ||||||
|     async with sem: |     async with sem: | ||||||
|         with open(tar_path, 'rb') as f: |         with open(tar_path, 'rb') as f: | ||||||
|             async with aiohttp.ClientSession() as s: |             async with aiohttp.ClientSession() as s: | ||||||
|                 async with s.post("http://localhost:8000/vieter2/publish", data=f.read(), headers={"x-api-key": "test"}) as r: |                 async with s.post("http://localhost:8000/vieter/publish", data=f.read(), headers={"x-api-key": "test"}) as r: | ||||||
|                     return await check_output(r) |                     return await check_output(r) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,5 +5,6 @@ data_dir = "data" | ||||||
| pkg_dir = "data/pkgs" | pkg_dir = "data/pkgs" | ||||||
| log_level = "DEBUG" | log_level = "DEBUG" | ||||||
| repos_file = "data/repos.json" | repos_file = "data/repos.json" | ||||||
|  | default_arch = "x86_64" | ||||||
| 
 | 
 | ||||||
| address = "http://localhost:8000" | address = "http://localhost:8000" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue