diff --git a/src/ckg.lua b/src/ckg.lua index 48f88e6..723dd24 100644 --- a/src/ckg.lua +++ b/src/ckg.lua @@ -85,7 +85,14 @@ local function install_single(name, list, installed) if installed[name] then return end local pkg = list[name] if not pkg then - error("Package not found: " .. name) + local cfg = load_config() + print("Package not found. Updating repositories...") + CKG.update() + list = fetch_package_lists(cfg) + pkg = list[name] + if not pkg then + error("Package still not found: " .. name) + end end if pkg.dependencies then @@ -129,7 +136,13 @@ function CKG.fetch(name) local list = fetch_package_lists(cfg) local pkg = list[name] if not pkg then - error("Package not found: " .. name) + print("Package not found. Updating repositories...") + CKG.update() + list = fetch_package_lists(cfg) + pkg = list[name] + if not pkg then + error("Package still not found: " .. name) + end end if not fs.exists(CACHE_DIR) then fs.makeDir(CACHE_DIR) end local cache_path = fs.combine(CACHE_DIR, name) @@ -253,4 +266,4 @@ Usage: ckg clear-repos Reset repositories to default ckg update Refresh package indexes ]]) -end +end \ No newline at end of file