aboutsummaryrefslogtreecommitdiff
path: root/src/install_pkg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/install_pkg.c')
-rw-r--r--src/install_pkg.c83
1 files changed, 56 insertions, 27 deletions
diff --git a/src/install_pkg.c b/src/install_pkg.c
index 8831499..c0809e8 100644
--- a/src/install_pkg.c
+++ b/src/install_pkg.c
@@ -7,65 +7,94 @@
#include "build.h"
#include "fetch_src.h"
#include "install_pkg.h"
-// #include "copy_install.h"
-// #include "link_install.h"
#include "lua_state.h"
#include "name_from_url.h"
#include "vars.h"
void install_pkg(Pkg pkg) {
+ if (is_directory(pkg.src)) {
+ if (!is_forced) {
+ if (is_verbose) printf(
+ "%s %s is already installed.\n",
+ print_skipped, pkg.name
+ );
+ return;
+ } else {
+ if (is_verbose) printf(
+ "%s %s is already installed.\n",
+ print_warning, pkg.name
+ );
+ }
+ }
+
if (!pkg.is_local) {
- printf("%sfetching %s%s%s\n", print_pkgit, green, pkg.name, color_reset);
+ printf(
+ "%s fetching %s%s%s\n",
+ print_pkgit, green, pkg.name, color_reset
+ );
fetch_src(pkg);
if (is_verbose)
- printf("%sfetched %s%s%s\n", print_pkgit, green, pkg.name, color_reset);
+ printf(
+ "%s fetched %s%s%s\n",
+ print_pkgit, green, pkg.name, color_reset
+ );
}
- printf("%sbuilding %s%s%s\n", print_pkgit, green, pkg.name, color_reset);
+ printf(
+ "%s building %s%s%s\n",
+ print_pkgit, green, pkg.name, color_reset
+ );
build(pkg);
if (is_verbose)
- printf("%sbuilt %s%s%s\n", print_pkgit, green, pkg.name, color_reset);
+ printf(
+ "%s built %s%s%s\n",
+ print_pkgit, green, pkg.name, color_reset
+ );
- printf("%sinstalling %s%s%s\n", print_pkgit, green, pkg.name, color_reset);
+ printf(
+ "%s installing %s%s%s\n",
+ print_pkgit, green, pkg.name, color_reset
+ );
bool install_success = false;
- if (!install_success && repo_install(pkg.name))
+ if (!install_success && repo_install(pkg.name, pkg.target))
install_success = true;
if (!install_success && bldit_install(pkg.target))
install_success = true;
- if (!install_success && config_install(pkg.src))
+ if (!install_success && config_install(pkg.src, pkg.target))
install_success = true;
if (!install_success) {
- printf("%sno install function availible for package: %s\n", print_error,
- pkg.name);
+ printf(
+ "%s no install function availible for package: %s\n",
+ print_error, pkg.name
+ );
return;
}
- // is_auto_installed = true;
- // if (is_auto_installed) {
- // if (is_symlink_install) {
- // link_install(pkg.src);
- // } else {
- // copy_install(pkg.src);
- // }
- // }
- printf("%sinstalled %s%s%s\n", print_success, green, pkg.name, color_reset);
+ printf(
+ "%s installed %s%s%s\n",
+ print_success, green, pkg.name, color_reset
+ );
bool repo_exists = false;
for (size_t i = 0; i < cached_repos_count; i++) {
- char *repo_name = name_from_url(cached_repos[i].source_value);
- if (strcmp(repo_name, pkg.name) == 0) {
- repo_exists = true;
- }
+ char *repo_name = name_from_url(cached_repos[i].source_key);
+ if (strcmp(repo_name, pkg.name) == 0) { repo_exists = true; }
free(repo_name);
}
if (!repo_exists) {
- printf("%sadding %s%s%s\n", print_pkgit, green, pkg.name, color_reset);
+ printf(
+ "%s adding %s%s%s\n",
+ print_pkgit, green, pkg.name, color_reset
+ );
if (pkg.url && strlen(pkg.url) > 0) {
add_repo(pkg.url, pkg.name);
}
- printf("%sadded %s%s%s\n", print_pkgit, green, pkg.name, color_reset);
+ printf(
+ "%s added %s%s%s\n",
+ print_pkgit, green, pkg.name, color_reset
+ );
} else {
if (is_verbose)
- printf("%srepo already exists, done\n", print_pkgit);
+ printf("%s repo already exists, done\n", print_pkgit);
}
} \ No newline at end of file