From cec5ecce7f936e118fb2bca41006fa8daa390f59 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 9 Apr 2022 17:41:41 +0200 Subject: [PATCH] Each repo now has its own subdir in pkg_dir --- src/build/cli.v | 4 ++-- src/repo/repo.v | 6 ++++-- src/server/routes.v | 8 ++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/build/cli.v b/src/build/cli.v index 7cdcf83..0131396 100644 --- a/src/build/cli.v +++ b/src/build/cli.v @@ -5,8 +5,8 @@ import env pub struct Config { pub: - api_key string - address string + api_key string + address string base_image string = 'archlinux:base-devel' } diff --git a/src/repo/repo.v b/src/repo/repo.v index 228b17e..9c2b0ec 100644 --- a/src/repo/repo.v +++ b/src/repo/repo.v @@ -12,7 +12,7 @@ mut: pub: // Where to store repositories' files repos_dir string [required] - // Where packages are stored; each architecture gets its own subdirectory + // Where packages are stored; each repository gets its own subdirectory pkg_dir string [required] // The default architecture to use for a repository. In reality, this value // is only required when a package with architecture "any" is added as the @@ -56,10 +56,12 @@ pub fn (r &RepoGroupManager) add_pkg_from_path(repo string, pkg_path string) ?Re // If the add was successful, we move the file to the packages directory if added { - dest_path := os.real_path(os.join_path_single(r.pkg_dir, pkg.filename())) + repo_pkg_path := os.real_path(os.join_path_single(r.pkg_dir, repo)) + dest_path := os.join_path_single(repo_pkg_path, pkg.filename()) // Only move the file if it's not already in the package directory if dest_path != os.real_path(pkg_path) { + os.mkdir_all(repo_pkg_path) ? os.mv(pkg_path, dest_path) ? } } diff --git a/src/server/routes.v b/src/server/routes.v index f259af4..c449d7d 100644 --- a/src/server/routes.v +++ b/src/server/routes.v @@ -33,11 +33,11 @@ fn (mut app App) get_repo_file(repo string, arch string, filename string) web.Re full_path += '.tar.gz' } } else if filename.contains('.pkg') { - full_path = os.join_path_single(app.repo.pkg_dir, filename) + full_path = os.join_path(app.repo.pkg_dir, repo, filename) - // Default behavior is to return the desc file for the package, if present. - // This can then also be used by the build system to properly check whether - // a package is present in an arch-repo. + // Default behavior is to return the desc file for the package, if present. + // This can then also be used by the build system to properly check whether + // a package is present in an arch-repo. } else { full_path = os.join_path(app.repo.repos_dir, repo, arch, filename, 'desc') }