diff options
| author | dacctal <donotcontactmevia@email.invalid> | 2026-08-14 07:37:03 +0000 |
|---|---|---|
| committer | dacctal <donotcontactmevia@email.invalid> | 2026-08-14 07:37:03 +0000 |
| commit | 536b651f4086fe01d0bd1f743f54ef650524b122 (patch) | |
| tree | b63a9554ac3ca0d94dc2e9f7da583ad6ca0b358c /src/pkg.c | |
| parent | 4fa342bcfdb5ebcbe65cabe1fb9ac3a46ea4ddca (diff) | |
i made the install work (kinda)
Diffstat (limited to 'src/pkg.c')
| -rw-r--r-- | src/pkg.c | 19 |
1 files changed, 15 insertions, 4 deletions
@@ -32,8 +32,7 @@ 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)); - } else { - str name = {0}; + } else { str name = {0}; 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)); @@ -54,7 +53,7 @@ static void assign_pkg_version(package_t *pkg, str *new_arg_str) { if (str_find_char(new_arg_str, '@')) { pkg->version = str_from_after_delim(new_arg_str, '@'); pkg->name.len -= pkg->version.len + 1; - } else str_copy_cstr_into(&pkg->version, "HEAD");; + } else str_copy_cstr_into(&pkg->version, "master");; } package_t pkg_create(str *arg) { @@ -67,7 +66,8 @@ package_t pkg_create(str *arg) { str cwd = mstr(cwd_cstr); str destdir = get_destdir(&cwd, arg); - if (strncmp(arg->data, "http", 4) == 0 || strncmp(arg->data, "ssh", 3) == 0) { + if (strncmp(arg->data, "http", 4) == 0 + || strncmp(arg->data, "ssh", 3) == 0) { str_copy_into(&pkg.url, arg); pkg.name = str_from_after_delim(arg, '/'); } else if (str_equal_cstr(arg, ".")) { @@ -89,5 +89,16 @@ package_t pkg_create(str *arg) { abort(); } + pkg.src = get_pkgsrc(&pkg); + str_free(&cwd); + str_free(&destdir); + return pkg; } + +void pkg_free(package_t *pkg) { + str_free(&pkg->name); + str_free(&pkg->version); + str_free(&pkg->url); + str_free(&pkg->src); +} |
