3 Commits

Author SHA1 Message Date
2ccef547a8 Update zpi version to 0.0.9
- Updated version to 0.0.9
- Updated URLs to point to zpi instead of zrep
- Updated initialization messages to refer to zpi
- Updated messages to reflect zpi instead of zrep
2024-04-06 18:43:49 +02:00
30ffb0f6bb Update zpi tool with new features and improvements:
- Updated tool name to "Zrep Package Installer"
- Modified installation directory prompt
- Renamed commands related to zrep to zpi
- Updated help messages and usage instructions
- Improved package management functionality
2024-04-06 00:24:26 +02:00
8569de68ec Update package manager name from zrep to zpi and adjust related text and commands accordingly. 2024-04-05 22:01:39 +02:00
2 changed files with 47 additions and 45 deletions

View File

@ -1,39 +1,39 @@
<img src="zrep-logo.png" width="150" align="left"> <img src="zrep-logo.png" width="150" align="left">
# Zsh Repository Tool (zrep) # Zrep Package Installer (zpi)
zrep is a powerful and user-friendly package manager for the Zsh shell. It allows you to easily install, manage, and share Zsh packages, such as plugins, themes, and scripts, directly from a central repository. zpi is a powerful and user-friendly package manager for the Zsh shell. It allows you to easily install, manage, and share Zsh packages, such as plugins, themes, and scripts, directly from a central repository.
## What is it? ## What is it?
`zrep` in and of itself is the command line tool that you use to install and manage scripts that are placed in `$fpath` used by Zsh. The packages are available on [the zrep website](https://zrep.kekepower.com) where you can, if you want to share your own scripts, register for an account. By sharing your scripts with the community, you are probably making somebody's day easier. `zpi` in and of itself is the command line tool that you use to install and manage scripts that are placed in `$fpath` used by Zsh. The packages are available on [the zrep website](https://zrep.kekepower.com) where you can, if you want to share your own scripts, register for an account. By sharing your scripts with the community, you are probably making somebody's day easier.
You can read more in the Wiki. You can read more in the Wiki.
## Key Features ## Key Features
- **Easy Installation**: zrep simplifies the process of installing Zsh packages. With a single command, you can install packages from the zrep repository. - **Easy Installation**: zpi simplifies the process of installing Zsh packages. With a single command, you can install packages from the zrep repository.
- **Package Management**: zrep provides a set of commands to manage your installed packages. You can list, enable, disable, update, and remove packages effortlessly. - **Package Management**: zpi provides a set of commands to manage your installed packages. You can list, enable, disable, update, and remove packages effortlessly.
- **Centralized Repository**: All packages are stored in a central repository, making it convenient to discover and share Zsh packages with the community. - **Centralized Repository**: All packages are stored in a central repository, making it convenient to discover and share Zsh packages with the community.
- **Automatic Setup**: zrep automatically sets up the necessary configuration files and directories, ensuring a smooth integration with your Zsh environment. - **Automatic Setup**: zpi automatically sets up the necessary configuration files and directories, ensuring a smooth integration with your Zsh environment.
- **Customizable**: zrep allows you to customize the installation directory and other settings through a configuration file. - **Customizable**: zpi allows you to customize the installation directory and other settings through a configuration file.
## Getting Started ## Getting Started
To start using zrep, simply run the `zrep init` command to initialize the tool. zrep will guide you through the setup process and create the required configuration files. To start using zpi, simply run the `zpi init` command to initialize the tool. zpi will guide you through the setup process and create the required configuration files.
Use the search function on **[the zrep website](https://zrep.kekepower.com)** to find useful scripts until a search function is added to the `zrep` script some time in the future. Use the search function on **[the zrep website](https://zrep.kekepower.com)** to find useful scripts until a search function is added to the `zpi` script some time in the future.
Once initialized, you can explore and install packages using commands like `zrep install <author/package>`, `zrep list`, and `zrep enable <author/package>`. Once initialized, you can explore and install packages using commands like `zpi install <author/package>`, `zpi list`, and `zpi enable <author/package>`.
## Contributing ## Contributing
zrep is an open-source project, and contributions are welcome! If you have any ideas, bug reports, or feature requests, please open an issue on the GitHub repository. zpi is an open-source project, and contributions are welcome! If you have any ideas, bug reports, or feature requests, please open an issue on the GitHub repository.
## License ## License
zrep is released under the MIT License. zpi is released under the MIT License.

68
zpi
View File

@ -2,8 +2,8 @@
setopt extendedglob setopt extendedglob
VERSION="0.0.8" # Fri-2024-04-05 VERSION="0.0.9" # Sat-2024-04-06
ZREP="Zsh Repository Tool" ZREP="Zrep Package Installer"
# Define the default path to .zreprc # Define the default path to .zreprc
ZREP_CONFIG="${HOME}/.zreprc" ZREP_CONFIG="${HOME}/.zreprc"
@ -109,7 +109,7 @@ function zrep_main_version_string() {
function zrep_version() { function zrep_version() {
zrep_msg info "\nCreated by kekePower - 2024" zrep_msg info "\nCreated by kekePower - 2024"
zrep_msg info "License: MIT" zrep_msg info "License: MIT"
zrep_msg info "https://git.kekepower.com/kekePower/zrep/" zrep_msg info "https://git.kekepower.com/kekePower/zpi/"
zrep_msg info "Please see '${base_colors[${current_theme[help]}]}${ZSH_SCRIPT:t} help${base_colors[end]}${base_colors[${current_theme[info]}]}' for more info${base_colors[end]}" zrep_msg info "Please see '${base_colors[${current_theme[help]}]}${ZSH_SCRIPT:t} help${base_colors[end]}${base_colors[${current_theme[info]}]}' for more info${base_colors[end]}"
exit exit
} }
@ -162,7 +162,7 @@ zrep_search() {
local encodedSearch=$(zrep_search_url_encode "${searchTerm}") local encodedSearch=$(zrep_search_url_encode "${searchTerm}")
# Use the global_repo_url from the config associative array # Use the global_repo_url from the config associative array
local response=$(curl -s -A "zrep ${VERSION} (curl)" "${config[global_repo_url]}/find.php?s=${encodedSearch}") local response=$(curl -s -A "${ZSH_SCRIPT:t} ${VERSION} (curl)" "${config[global_repo_url]}/find.php?s=${encodedSearch}")
# Determine if the JSON response is an object indicating "No scripts found" # Determine if the JSON response is an object indicating "No scripts found"
local jsonType=$(echo "$response" | jq -r 'type') local jsonType=$(echo "$response" | jq -r 'type')
@ -234,7 +234,7 @@ function zrep_init() {
if [[ ! -f ${ZREP_CONFIG} ]]; then if [[ ! -f ${ZREP_CONFIG} ]]; then
echo "${ZREP_CONFIG} not found. Creating it..." echo "${ZREP_CONFIG} not found. Creating it..."
# Prompt user for install directory # Prompt user for install directory
read "install_dir?Enter zrep installation directory [${HOME}/.zrep]: " read "install_dir?Enter zpi installation directory [${HOME}/.zrep]: "
install_dir=${install_dir:-"${HOME}/.zrep"} install_dir=${install_dir:-"${HOME}/.zrep"}
mkdir -p ${install_dir} mkdir -p ${install_dir}
read "downloader?Choose command to download packages [curl, wget, wget2]: " read "downloader?Choose command to download packages [curl, wget, wget2]: "
@ -297,7 +297,7 @@ if [[ -n \${addons[@]} ]]; then
autoload -Uz \$(basename \${addon}) autoload -Uz \$(basename \${addon})
done done
else else
echo "zrep: No addons enabled." echo "zpi: No addons enabled."
fi fi
EOF EOF
echo "File .zrep_addons created and configured." echo "File .zrep_addons created and configured."
@ -308,12 +308,12 @@ EOF
if [[ ! -d ${install_dir}/themes ]]; then if [[ ! -d ${install_dir}/themes ]]; then
echo "Installing the Classic theme to ${install_dir}/themes" echo "Installing the Classic theme to ${install_dir}/themes"
mkdir -p ${install_dir}/themes mkdir -p ${install_dir}/themes
zrep_global_downloader https://git.kekepower.com/kekePower/zrep/raw/branch/main/themes/classic -o ${install_dir}/themes/classic zrep_global_downloader https://git.kekepower.com/kekePower/zpi/raw/branch/main/themes/classic -o ${install_dir}/themes/classic
fi fi
echo "zrep initialization complete." echo "zpi initialization complete."
echo "You should copy 'zrep' to a path in you 'PATH' so that it's accessible." echo "You should copy 'zpi' to a path in you 'PATH' so that it's accessible."
echo "For example '${HOME}/bin'" echo "For example '${HOME}/bin'"
echo "Remember to 'source ${zshrc_file}' to load the 'zrep' settings." echo "Remember to 'source ${zshrc_file}' to load the 'zpi' settings."
} }
function zrep_installed_json() { function zrep_installed_json() {
@ -379,7 +379,7 @@ else
.[$author] = [{"script": $script, "version": $version}] .[$author] = [{"script": $script, "version": $version}]
end' "$installed_json" > "$installed_json.tmp" && mv "$installed_json.tmp" "$installed_json" end' "$installed_json" > "$installed_json.tmp" && mv "$installed_json.tmp" "$installed_json"
zrep_msg info " - Package '$script' by '$author' version $version installed/updated successfully." zrep_msg info "\n - Package '$author/$script' version $version installed/updated successfully."
} }
# Function to list installed packages from installed.json # Function to list installed packages from installed.json
@ -444,7 +444,7 @@ function zrep_load_config() {
zini "${ZREP_CONFIG}" zini "${ZREP_CONFIG}"
zrep_fpath ${config[main_zrep_install_dir]} zrep_load zrep_fpath ${config[main_zrep_install_dir]} zrep_load
else else
echo "${ZREP_CONFIG} not found. Run 'zrep init' to set up." echo "${ZREP_CONFIG} not found. Run 'zpi init' to set up."
exit 1 exit 1
fi fi
@ -463,7 +463,7 @@ function zrep_remove_package() {
if [[ -z "$installed_version" || "$installed_version" == "null" ]]; then if [[ -z "$installed_version" || "$installed_version" == "null" ]]; then
zrep_msg debug "\nError: Package '${package_name}' is not installed." zrep_msg debug "\nError: Package '${package_name}' is not installed."
zrep_msg info "Please see 'zrep list' for installed packages." zrep_msg info "Please see 'zpi list' for installed packages."
return 1 return 1
fi fi
@ -523,13 +523,13 @@ function zrep_check_if_installed() {
function zrep_global_downloader() { function zrep_global_downloader() {
case ${config[global_downloader]} in case ${config[global_downloader]} in
curl) curl)
dloader="curl -s -A \"zrep ${VERSION} (curl)\"" dloader="curl -s -A \"${ZSH_SCRIPT} ${VERSION} (curl)\""
;; ;;
wget) wget)
dloader="wget -q -U \"zrep ${VERSION} (wget)\"" dloader="wget -q -U \"${ZSH_SCRIPT} ${VERSION} (wget)\""
;; ;;
wget2) wget2)
dloader="wget2 -q -U \"zrep ${VERSION} (wget2)\"" dloader="wget2 -q -U \"${ZSH_SCRIPT} ${VERSION} (wget2)\""
;; ;;
*) *)
echo "Invalid Downloader." echo "Invalid Downloader."
@ -653,15 +653,15 @@ function zrep_download_package() {
case "${config[global_downloader]}" in case "${config[global_downloader]}" in
curl) curl)
downloader="curl" downloader="curl"
cmd="curl -L -A \"zrep ${VERSION} (curl)\" -s -o \"$ZipFile\" \"$DownloadURL\" -w \"%{http_code}\"" cmd="curl -L -A \"${ZSH_SCRIPT} ${VERSION} (curl)\" -s -o \"$ZipFile\" \"$DownloadURL\" -w \"%{http_code}\""
;; ;;
wget) wget)
downloader="wget" downloader="wget"
cmd="wget -L -U \"zrep ${VERSION} (wget)\" -q -O \"$ZipFile\" \"$DownloadURL\"" cmd="wget -L -U \"${ZSH_SCRIPT} ${VERSION} (wget)\" -q -O \"$ZipFile\" \"$DownloadURL\""
;; ;;
wget2) wget2)
downloader="wget2" downloader="wget2"
cmd="wget2 -L -U \"zrep ${VERSION} (wget2)\" -q -O \"$ZipFile\" \"$DownloadURL\"" cmd="wget2 -L -U \"${ZSH_SCRIPT} ${VERSION} (wget2)\" -q -O \"$ZipFile\" \"$DownloadURL\""
;; ;;
*) *)
zrep_msg debug "Unsupported or unspecified downloader: '${config[global_downloader]}'." zrep_msg debug "Unsupported or unspecified downloader: '${config[global_downloader]}'."
@ -715,19 +715,21 @@ function zrep_install_package() {
# Call zrep_check_if_installed to check if the package is already installed # Call zrep_check_if_installed to check if the package is already installed
if zrep_check_if_installed "${package}"; then if zrep_check_if_installed "${package}"; then
zrep_msg debug "\nPackage ${package} is already installed." zrep_msg debug "\nPackage ${package} is already installed."
zrep_msg info "Use 'zrep list' to see installed packages." zrep_msg info "Use 'zpi list' to see installed packages."
return 0 return 0
fi fi
zrep_parse_remote "${config[global_repo_url]}/getver.php\?p\=${package}" ${package}
fi fi
# If not installed, proceed with fetching the package information
# Using the new zrep API to get the package version
# zrep_parse_remote "${config[global_repo_url]}/getver.php\?p\=${package}" ${package}
local tmpDir="${config[main_zrep_install_dir]}/tmp" local tmpDir="${config[main_zrep_install_dir]}/tmp"
mkdir -p "${tmpDir}" mkdir -p "${tmpDir}"
author="${package%/*}"
script="${package#*/}"
local zipFile="${tmpDir}/${author}-${script}-${version}.zip" local zipFile="${tmpDir}/${author}-${script}-${version}.zip"
dlurl="${config[global_repo_url]}/download/${package}/${version}" dlurl="${config[global_repo_url]}/download/${package}/${version}"
zrep_download_package "${zipFile}" "${dlurl}" zrep_download_package "${zipFile}" "${dlurl}"
@ -850,25 +852,25 @@ function zrep_disable() {
echo ")" echo ")"
} > ${config[main_zrep_install_dir]}/.addons } > ${config[main_zrep_install_dir]}/.addons
zrep_msg info "\nPackage '${package_name} (${script})' has been disabled and removed from fpath." zrep_msg info "\nPackage '${package_name}' has been disabled and removed from fpath."
zrep_msg info "You may have to run 'source ~/.zrep_addons' to remove it from your shell." zrep_msg info "You may have to run 'source ~/.zrep_addons' to remove it from your shell."
} }
# Help function to display available options # Help function to display available options
function zrep_help() { function zrep_help() {
zrep_msg sub "\nUsage: zrep <command> [arguments]" zrep_msg sub "\nUsage: ${ZSH_SCRIPT:t} <command> [arguments]"
zrep_msg info "Available commands:" zrep_msg info "Available commands:"
if [[ ! -f ${ZREP_CONFIG} ]]; then if [[ ! -f ${ZREP_CONFIG} ]]; then
zrep_msg info " init: Initialize zrep" zrep_msg info " init: Initialize zpi"
fi fi
zrep_msg info " install (i) <author/package>:\t\t\tInstall a package" zrep_msg info " install (i) <author/package>:\t\t\tInstall a package"
zrep_msg info " remove (rm, delete, del) <author/package>:\tRemove a package" zrep_msg info " remove (rm, delete, del) <author/package>:\tRemove a package"
zrep_msg info " update (u) <author/package>:\t\t\tUpdate zrep package" zrep_msg info " update (u) <author/package>:\t\t\tUpdate zpi package"
zrep_msg info " enable <author/package>:\t\t\tEnable zrep package" zrep_msg info " enable <author/package>:\t\t\tEnable zpi package"
zrep_msg info " disable <author/package>:\t\t\tDisable zrep package" zrep_msg info " disable <author/package>:\t\t\tDisable zpi package"
zrep_msg info " search 'search term':\t\t\t\tSearch for authors, packages or description" zrep_msg info " search 'search term':\t\t\t\tSearch for authors, packages or description"
zrep_msg info " version:\t\t\t\t\tDisplay zrep version" zrep_msg info " version:\t\t\t\t\tDisplay zpi version"
zrep_msg info " list:\t\t\t\t\t\tList installed packages" zrep_msg info " list:\t\t\t\t\t\tList installed packages"
zrep_msg info " <author/package> help:\t\t\tDisplay help for package (if available)" zrep_msg info " <author/package> help:\t\t\tDisplay help for package (if available)"
@ -952,7 +954,7 @@ function main() {
# Parse the command argument to extract the package name # Parse the command argument to extract the package name
zrep_remove_package_name="${2:-}" zrep_remove_package_name="${2:-}"
if [[ -z "${zrep_remove_package_name}" ]]; then if [[ -z "${zrep_remove_package_name}" ]]; then
zrep_msg info "\nUsage: zrep ${1} author/package" zrep_msg info "\nUsage: zpi ${1} author/package"
else else
zrep_remove_package "${zrep_remove_package_name}" zrep_remove_package "${zrep_remove_package_name}"
fi fi