diff --git a/zrep b/zrep index e6b9e2e..12efcad 100755 --- a/zrep +++ b/zrep @@ -130,7 +130,7 @@ function zrep_find_string() { function zrep_check_for_deps() { # Array of required external programs - local required_programs=('jq' 'curl') + local required_programs=('jq' "${config[global_downloader]}") # Iterate over the array for program in "${required_programs[@]}"; do @@ -149,14 +149,21 @@ function zrep_init() { local zrep_addons="${HOME}/.zrep_addons" local install_dir - zrep_check_for_deps - # Check if .zreprc exists if [[ ! -f ${ZREP_CONFIG} ]]; then echo "${ZREP_CONFIG} not found. Creating it..." # Prompt user for install directory read "install_dir?Enter zrep installation directory [${HOME}/.zrep]: " install_dir=${install_dir:-"${HOME}/.zrep"} + read "downloader?Choose command to download packages [curl, wget, wget2]: " + if [[ ${downloader} != "curl" || ${downloader} != "wget" || ${downloader} != "wget2" ]]; then + echo "Invalid choice: '$downloader'. Try again." + read "downloader?Choose command to download packages [curl, wget, wget2] " + if [[ ${downloader} != "curl" || ${downloader} != "wget" || ${downloader} != "wget2" ]]; then + echo "Invalid choice: '$downloader'. Exiting." + exit + fi + fi # Write to .zreprc cat > "${ZREP_CONFIG}" <: Install a package" - zrep_msg info " remove (rm, delete, del) : Remove a package" - zrep_msg info " update (u) : Update zrep package" - zrep_msg info " enable : Enable zrep package" - zrep_msg info " disable : Disable zrep package" - zrep_msg info " version: Display zrep version" - zrep_msg info " list: List installed packages" - zrep_msg info " help: Display help for pacakage (if available)" + zrep_msg info " install (i) :\t\t\tInstall a package" + zrep_msg info " remove (rm, delete, del) :\tRemove a package" + zrep_msg info " update (u) :\t\t\tUpdate zrep package" + zrep_msg info " enable :\t\t\tEnable zrep package" + zrep_msg info " disable :\t\t\tDisable zrep package" + zrep_msg info " version:\t\t\t\t\tDisplay zrep version" + zrep_msg info " list:\t\t\t\t\t\tList installed packages" + zrep_msg info " help:\t\t\tDisplay help for pacakage (if available)" } +function zrep_package_info() { + local package_name="${1}" + zrep_installed_json # Ensure installed.json is loaded and available + + # Parse the package name to extract author and script + local author="${package_name%/*}" + local script="${package_name#*/}" + local first_letter="${author:0:1:l}" # Get the first letter of the author's name to construct the URL + + # Check if the package is installed and get its version + if zrep_check_if_installed "${package_name}"; then + local installed_version="${installed_version}" # This variable is set by zrep_check_if_installed + local package_dir="${config[main_zrep_install_dir]}/${first_letter}/${author}/${script}" + local zrep_url="${config[global_repo_url]}/${first_letter}/${author}/${script}" + + # Display package information + zrep_msg info "\nAuthor/Package:\t\t${author}/${script}" + zrep_msg info "Version installed:\t${installed_version}" + zrep_msg info "Location on disk:\t${package_dir}" + zrep_msg info "zrep URL:\t\t${zrep_url}" + else + zrep_msg debug "\nPackage '${package_name}' is not installed." + fi +} + function zrep_read_usage() { local package_name="${1}" # Parse the package name to extract author and script @@ -730,11 +800,9 @@ function main() { case "${1}" in init) zrep_init + zrep_check_for_deps exit ;; - check) - zrep_check_for_updates - ;; install | i) zrep_install_package ${2} ;; @@ -765,6 +833,9 @@ function main() { disable) zrep_disable ${2} ;; + info) + zrep_package_info ${2} + ;; *) zrep_help ;;