diff options
| author | dacctal <donotcontactmevia@email.invalid> | 2026-08-17 13:31:42 +0000 |
|---|---|---|
| committer | dacctal <donotcontactmevia@email.invalid> | 2026-08-17 13:31:42 +0000 |
| commit | 7db56ed3f9d1fcb8b6780b7c30ad93904625a0a3 (patch) | |
| tree | 91c6e60d239c89ce29ea23b1dd9b8fcf66ce16d7 /src/pkg.c | |
| parent | 536b651f4086fe01d0bd1f743f54ef650524b122 (diff) | |
fundamentals are working and beautiful
Diffstat (limited to 'src/pkg.c')
| -rw-r--r-- | src/pkg.c | 25 |
1 files changed, 15 insertions, 10 deletions
@@ -31,22 +31,26 @@ static str get_destdir(str *cwd, str *arg) { str result = {0}; if (str_first(arg) == '.' && arg->len == 1) { - result = str_format("%.*s/%.*s", str_fmt(&config.inst_dirs.src), str_fmt(cwd)); + result = str_format("%.*s/%.*s", + str_fmt(&config.inst_dirs.src), str_fmt(cwd)); } else { str name = {0}; - if (str_find_char(arg, '/') != 0) name = str_from_after_delim(arg, '/'); + if (str_find_char(arg, '/') != 0) + name = str_from_after_delim(arg, '/'); else str_copy_into(&name, arg); - result = str_format("%.*s/%.*s", str_fmt(&config.inst_dirs.src), str_fmt(&name)); + result = str_format("%.*s/%.*s", + str_fmt(&config.inst_dirs.src), str_fmt(&name)); str_free(&name); } return result; } -static str get_pkgsrc(package_t *pkg) { - if (pkg->is_local == 1) - return str_format("%.*s/%.*s", str_fmt(&config.inst_dirs.src), str_fmt(&pkg->name)); - else - return str_format("%.*s/%.*s/%.*s", str_fmt(&config.inst_dirs.src), - str_fmt(&pkg->name), str_fmt(&pkg->version)); +static void set_pkgsrc(package_t *pkg) { + pkg->root = str_format("%.*s/%.*s", + str_fmt(&config.inst_dirs.src), str_fmt(&pkg->name)); + if (pkg->is_local) pkg->src = pkg->root; + else pkg->src = str_format("%.*s/%.*s/%.*s", + str_fmt(&config.inst_dirs.src), str_fmt(&pkg->name), + str_fmt(&pkg->version)); } static void assign_pkg_version(package_t *pkg, str *new_arg_str) { @@ -89,7 +93,7 @@ package_t pkg_create(str *arg) { abort(); } - pkg.src = get_pkgsrc(&pkg); + set_pkgsrc(&pkg); str_free(&cwd); str_free(&destdir); @@ -101,4 +105,5 @@ void pkg_free(package_t *pkg) { str_free(&pkg->version); str_free(&pkg->url); str_free(&pkg->src); + str_free(&pkg->root); } |
