diff --git a/Contributing.md b/Contributing.md new file mode 100644 index 0000000..2a9e6ac --- /dev/null +++ b/Contributing.md @@ -0,0 +1,17 @@ +# Contribute to zrep + +I am one person and I love what I'm doing. At the moment, I can handle what needs to be done but I'm expecting things to change. + +In time, what I will be looking for are + +- Editors - A role that is a power user below Administrator + - This role entails taking responsibility of + - issues from registered users + - looking at abuse reports, enable or disable scripts + - zrep issues +- Moderators - A role that will have access to a limited set of Administrator functions + - This role entails + - basic issue tracking + - first line abuse tracking +- Contributions, bug fixes and more to [zrep](https://git.kekepower.com/kekePower/zrep) +- Helpdesk to help with the [issue tracker](https://github.com/kekePower/zrep/issues) diff --git a/Create-Your-Script.md b/Create-Your-Script.md new file mode 100644 index 0000000..8555b40 --- /dev/null +++ b/Create-Your-Script.md @@ -0,0 +1,33 @@ +# How to create your own script + +The scripts used in `zrep` are using the `autoload` function of Zsh. This means that your script have to be in `$fpath` to be found by Zsh. +This is where `zrep` comes in. + +`zrep` is created to handle the installation and management of scripts. + +## Create your script + +Zsh has a [certain way it works](Zsh-Autoload.md) and this influences how your scripts should be created. + +The script should only contain one main function that has the same name as the file. + +Example: +- my_script + - function my_script() + +Based on my research, it is possible to have functions within the main function, so it should be possible to create complex and very interesting scripts for the community. + +`zrep` depends on one file to display help information to the user. +Using `zrep author/package help` will display the information in the file `USAGE`. + +The file `README.md` is used on the web page when people visit your package page. This file is optional, but highly recommended. + +In other words, the file structure you should aim for is: +- script_name +- USAGE +- README.md + +Once you've [registered for an account](https://zrep.kekepower.com/register/), you can then add your scripts and files. +They will then be packaged, uploaded to the repository and made available to the community. + +On [your zrep account](Your-zrep-Account.md) page, you will have access to statistics and other goodies. diff --git a/Home.md b/Home.md index 6b39d6f..1144c7e 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,6 @@ # zrep - Zsh Repository Tool -Welcome to the official Wiki for `zrep`, a comprehensive Zsh Repository Tool designed to enhance your Zsh experience. Developed with flexibility and ease of use in mind, `zrep` allows for the efficient management of Zsh functions, scripts, and addons. +Welcome to the official Wiki for [zrep](https://git.kekepower.com/kekePower/zrep), a comprehensive Zsh Repository Tool designed to enhance your Zsh experience. Developed with flexibility and ease of use in mind, `zrep` allows for the efficient management of Zsh functions, scripts, and addons. `zrep` is meant to be used on a per user basis and not globally. This means that you, the user, have full control over what is installed and activated. @@ -13,44 +13,23 @@ Welcome to the official Wiki for `zrep`, a comprehensive Zsh Repository Tool des ## Getting Started -### Installation +### Create your own scripts -1. Clone the `zrep` repository to your local machine. -2. Run the script with `zrep init` to initialize the installation process. +To create you own scripts, follow this How-to. +**[Create Your Script](Create-Your-Script.md)** -### Configuration - -Upon first run, `zrep` will prompt you to specify the installation directory, defaulting to `$HOME/.zrep` if left unspecified. This path will be used to store scripts, functions, and configuration files. - -### `.zreprc` Configuration - -The `.zreprc` file located in your home directory (`$HOME/.zreprc`) contains all configurable settings for `zrep`. Initially, this file will include the installation directory path. You can edit this file to adjust `zrep` settings to your liking. +### [Installation](Installing-zrep.md) ## Usage -### Basic Commands - -- `zrep init`: Initializes `zrep`, setting up necessary directories and configuration files. -- `zrep install `: Installs a specified package. -- `zrep remove `: Removes a specified package. -- `zrep enable `: Enables a package, adding it to your `fpath`. -- `zrep disable `: Disables a package, removing it from your `fpath`. -- `zrep list`: Lists all installed packages along with their status (active/inactive). -- `zrep help`: Show the included usage information for package. - -### Advanced Features - -- **Color Customization:** Customize console output colors by editing the `colors` associative array within the script. -- **Package Management:** Leverage `zrep` to manage external Zsh scripts and functions efficiently, keeping your shell environment clean and organized. +### [How to use zrep](Using-zrep.md) ## Contributing -Contributions to `zrep` are welcome! Whether it's adding new features, improving existing ones, or fixing bugs, your help is appreciated. Please follow the standard GitHub pull request process to submit your contributions. +### [Contribute to zrep](Contributing.md) + ## License -`zrep` is licensed under the MIT License. See the LICENSE file for more details. +`zrep` is licensed under the [MIT License](https://git.kekepower.com/kekePower/zrep/src/branch/main/LICENSE). ---- - -For more detailed information on each command and feature, please refer to the corresponding sections of this Wiki or the `zrep` script comments. \ No newline at end of file diff --git a/Installing-zrep.md b/Installing-zrep.md new file mode 100644 index 0000000..ef30a5d --- /dev/null +++ b/Installing-zrep.md @@ -0,0 +1,15 @@ +# zrep - Zsh Repository Tool + +### Installation + +1. Clone the `zrep` [repository](https://git.kekepower.com/kekePower/zrep) to your local machine. +2. Run the script with `zrep init` to initialize the installation process. + +### Configuration + +Upon first run, `zrep` will prompt you to specify the installation directory, defaulting to `$HOME/.zrep` if left unspecified. This path will be used to store scripts, functions, and configuration files. + +### `.zreprc` Configuration + +The `.zreprc` file located in your home directory (`$HOME/.zreprc`) contains all configurable settings for `zrep`. Initially, this file will include the installation directory path. You can edit this file to adjust `zrep` settings to your liking. + diff --git a/Using-zrep.md b/Using-zrep.md new file mode 100644 index 0000000..1fc7d6d --- /dev/null +++ b/Using-zrep.md @@ -0,0 +1,14 @@ +# zrep - Zsh Repository Tool + +## Usage + +### Basic Commands + +- `zrep init`: Initializes `zrep`, setting up necessary directories and configuration files. +- `zrep install `: Installs a specified package. +- `zrep remove `: Removes a specified package. +- `zrep enable `: Enables a package, adding it to your `fpath`. +- `zrep disable `: Disables a package, removing it from your `fpath`. +- `zrep list`: Lists all installed packages along with their status (active/inactive). +- `zrep help`: Show the included usage information for package. + diff --git a/Your-zrep-Account.md b/Your-zrep-Account.md new file mode 100644 index 0000000..fdb6f45 --- /dev/null +++ b/Your-zrep-Account.md @@ -0,0 +1,7 @@ +# Your zrep Account + +Begin by [registering for an account](https://zrep.kekepower.com/register/) + +After registration, you will receive an email asking you to verify your email address. Until you've done this, you will not be able to do anything on your account. + +Once verified, you will be able to add your scripts, view statistics for your scripts, update or delete. diff --git a/Zsh-Autoload.md b/Zsh-Autoload.md new file mode 100644 index 0000000..e4c0a26 --- /dev/null +++ b/Zsh-Autoload.md @@ -0,0 +1,11 @@ +# Zsh and autoload + +The main function behind `zrep` is Zsh's autoload feature. It searches through a variable called `fpath` and anything in this path can be loaded and used. + +`autoload` loads the contents of the files, so it usually contains a function. It is the function that gets executed by Zsh when the command is used, not the file itself. + +As far as I know, Zsh allows for nested functions, meaning you can have functions within functions. +You can see an example in my [update-dynamic-ip](/source/kekePower/update-dynamic-ip) script. + +Zsh lazy loads the files in `fpath` and this means that it's not in memory until you actually executes the function. +This means that it won't have an effect on your shell in terms of speed or memory usage.