Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial PR for Contributing & Coding Standard #920

Merged
merged 29 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e8f0047
First Design: CONTRIBUTING
MickLesk Dec 6, 2024
7a7b0fa
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
9ea997f
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
482bd08
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
cf7eb92
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
bb3077a
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
d2728d2
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
7094920
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
6a0f22c
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
483dc98
Update CONTRIBUTING.md
MickLesk Dec 6, 2024
4bde4d7
Ideas for CONTRIBUTING.md (#768)
michelroegl-brunner Dec 10, 2024
fdedd55
Add files via upload
MickLesk Dec 19, 2024
2f095fc
fix var_tags
MickLesk Dec 19, 2024
3923184
add comments to AppName.sh
MickLesk Dec 19, 2024
a4d39c4
Rework Contributing to merge the tow existing Versions
michelroegl-brunner Dec 19, 2024
2ae6203
Remove coding_standards.md
michelroegl-brunner Dec 19, 2024
0aaea5c
Fix broken link
michelroegl-brunner Dec 19, 2024
784fc81
Fix broken link
michelroegl-brunner Dec 19, 2024
5e68a7e
UPDATE contributing
michelroegl-brunner Dec 19, 2024
d086288
UPDATE contributing
michelroegl-brunner Dec 19, 2024
2ddd79d
UPDATE contributing
michelroegl-brunner Dec 19, 2024
730abf5
Update
michelroegl-brunner Dec 19, 2024
b805a9e
UPDATE
michelroegl-brunner Dec 19, 2024
b0d76cc
Update AppName.md
MickLesk Dec 20, 2024
0e1f46b
UPDATE CONTRIBUTING.md
michelroegl-brunner Dec 20, 2024
4dc7a3d
UPDATE CONTRIBUTING.md
michelroegl-brunner Dec 20, 2024
acd26c4
Fixing some typos
remz1337 Dec 22, 2024
d14a7d9
Update
michelroegl-brunner Dec 29, 2024
a822531
Update Contributing
michelroegl-brunner Jan 10, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions .github/CONTRIBUTING.md

This file was deleted.

108 changes: 108 additions & 0 deletions .github/CONTRIBUTOR_GUIDE/CONTRIBUTING.md
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@

# Community Scripts Contribution Guide

## **Welcome to the communty-scripts Repository!**
📜 These documents outlines the essential coding standards for all our scripts and JSON files. Adhering to these standards ensures that our codebase remains consistent, readable, and maintainable. By following these guidelines, we can improve collaboration, reduce errors, and enhance the overall quality of our project.

michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
### Why Coding Standards Matter

Coding standards are crucial for several reasons:

1. **Consistency**: Consistent code is easier to read, understand, and maintain. It helps new team members quickly get up to speed and reduces the learning curve.
2. **Readability**: Clear and well-structured code is easier to debug and extend. It allows developers to quickly identify and fix issues.
3. **Maintainability**: Code that follows a standard structure is easier to refactor and update. It ensures that changes can be made with minimal risk of introducing new bugs.
4. **Collaboration**: When everyone follows the same standards, it becomes easier to collaborate on code. It reduces friction and misunderstandings during code reviews and merges.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

### Scope of These Documents

These documents covers the coding standards for the following types of files in our project:
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

- **`APP-install.sh` Scripts**: These scripts are responsible for the installation of applications and are located in the `/install` directory.
- **`APP.sh` Scripts**: These scripts handle the creation and updating of containers and are found in the `/ct` directory.
- **JSON Files**: These files store structured data and are located in the `/json` directory.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

Each section provides detailed guidelines on various aspects of coding, including shebang usage, comments, variable naming, function naming, indentation, error handling, command substitution, quoting, script structure, and logging. Additionally, examples are provided to illustrate the application of these standards.

By following the coding standards outlined in this document, we ensure that our scripts and JSON files are of high quality, making our project more robust and easier to manage. Please refer to this guide whenever you create or update scripts and JSON files to maintain a high standard of code quality across the project. 📚🔍
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this sentence can be dropped.
It is in the similar context as the "why coding standards are useful".

Additionally, I don't know why I need to "please refer to this guide" when I am opening a PR. This doc are the guidelines to follow to create a PR. If a PR is not matching these guidelines, the feedback will be in this direction.
Not sure if adding a link to a PR to this doc helps. Rather than a checkbox in the PR template like "Followed and applied Coding standards" may be enough.

Why removing this paragraph?
It doesn't really add new information on what Coding standards itself. Following the rule of keeping it crisp and less is more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, like above, on second tougth it seems a bit overengineered.


Let's work together to keep our codebase clean, efficient, and maintainable! 💪🚀


## Getting Started

Before contributing, please ensure that you have the following setup:

1. **Visual Studio Code** (recommended for script development)
2. **Recommended VS Code Extensions:**
- [Shell Syntax](https://marketplace.visualstudio.com/items?itemName=bmalehorn.shell-syntax)
- [ShellCheck](https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck)
- [Shell Format](https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format)
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

### Important Notes
- Use [AppName.sh](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/ct/AppName.sh) and [AppName-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh) as templates when creating new scripts.
- The call to `community-scripts/ProxmoxVE` should be adjusted to reflect the correct fork URL.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without more context it is unclear what the meaning of this sentence is (yes I know it is the call to build.func)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its better explained int App.md. Maybe remove it here

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes after going through the rest of the files that would make a lot of sense. It is not important here (yet)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea to start a new script from a template.
Why not going all in and providing the CLI commands for this?

If you plan to implement a new application script, use our templates to get a kickstart:

$ NEW_APP_NAME="my-script"
$ cp ct/AppName.sh ct/${NEW_APP_NAME}.sh
$ cp ...
$ sed ... (some git remote -v magic to get the fork path)

This way, folks can just copy / paste the commands and get going.

Additionally: Considering the CONTIRBUTING.md is the entry doc, this is the first time it is mentioned that we operate on a fork.
Maybe it is better to move this chapter to a

Guide: Create your own App Script

which starts with

  1. Fork this Repository
  2. Kickstart your app with your template
  3. ...

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There has been a proposal by @quantumryuu for this already, have a look here: https://github.com/community-scripts/ProxmoxVE/tree/new_script_testing/.github/CONTRIBUTOR_GUIDE/dev-scripts
I will start testing, experementing with this when the hollidays are over.

I also would love to have something simillar to this for Appname.sh and AppName-install.sh

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

About the AppName.sh/AppName-install.sh we could modify the scripts I proposed into asking things like "Author", "Source", "AppName" I guess.


---

# 🚀 The Application Script (ct/AppName.sh)

- You can find all coding standards, as well as the structure for this files [here](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/ct/AppName.md).
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
- These Scripts are responsible for container creation, setting the necessary variables and handles the update of the application.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

---

# 🛠 The Installation Script (install/AppName-install.sh)

- You can find all coding standards, as well as the structure for this files [here](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/install/AppName-install.md).
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
- These scripts are responsible for the installation of the application.

---

## 🚀 Building Your Own Scripts

Start with the [template script](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here i am a bit lost. Where do I start now to build my own script? Here or with the template of ct/AppName.sh and install/AppName-install.sh?


---

## 🤝 Contribution Process

### 1. Fork the Repository
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
Fork to your GitHub account

### 2. Clone Your Fork on your Pc
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
```bash
git clone https://github.com/yourUserName/ForkName
```

### 3. Create a New Branch
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
```bash
git switch -c your-feature-branch
```

### 4. Change Paths in build.func install.func and AppName.sh
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
You need to switch `https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main` to `https://raw.githubusercontent.com/[USER]/[REPOSITORY]/refs/head/[BRANCH]` to test your script in your repository. Before opening a Pull Request change all this back to point to the community-scripts Repository.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

### 4. Commit Changes (without build.func and install.func!)
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
```bash
git commit -m "Your commit message"
```

### 5. Push to Your Fork
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
```bash
git push origin your-feature-branch
```

### 6. Create a Pull Request
Open a PR from your feature branch to the main repository branch. You may only include your **AppName.sh**, **AppName-install.sh** and **AppName.json** files in the pull request.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

---

## 📚 Pages

- [Function-Overview](https://github.com/community-scripts/ProxmoxVE/wiki/Function_Overview)
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whats the purpose of this chapter?
What goes in here? What does not go in here?

I think all relevant pages are linked above in the respective context. I am suggesting to drop this chapter.

- [CT Template: AppName.sh](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/ct/AppName.sh)
- [Install Template: AppName-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh)
- [JSON Template: AppName.json](https://github.com/community-scripts/ProxmoxVE/blob/contributor_guide/.github/CONTRIBUTOR_GUIDE/json/AppName.json)

---

231 changes: 231 additions & 0 deletions .github/CONTRIBUTOR_GUIDE/ct/AppName.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
# **AppName<span></span>.sh Scripts**
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
`AppName.sh` scripts found in the `/ct` directory. These scripts are responsible for the installation of the desired Application. For this guide we take `/ct/snipeit.sh` as example.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved


## 1. **File Header**

### 1.1 **Shebang**
- Use `#!/usr/bin/env bash` as the shebang.

```bash
#!/usr/bin/env bash
```
### 1.2 **Import Functions**
- Import the build.func File.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
- When developing your own Script, change the link to your own repository.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

> [!CAUTION]
> Before opening a Pull Request, change the link to point to the community-scripts repo.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

Example for development:
```bash
source <(curl -s https://raw.githubusercontent.com/[USER]/[REPO]/refs/heads/[BRANCH]/misc/build.func)
```
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

Example for final Script:
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
```bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
```

### 1.3 **Metadata**
- Add clear comments for script metadata, including author, copyright, and license information.

Example:
```bash
# Copyright (c) 2021-2024 community-scripts ORG
# Author: [YourUserName]
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: [SOURCE_URL]
```

> [!NOTE]:
> - Add your username and source URL
> - For existing scripts, add "| Co-Author [YourUserName]" after the current author

---

## 2 **Variables and Function import**
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
> [!NOTE]
> You need to have all this set in your Script, otherwise it will not work!

michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
### 2.1 **Default Values**
- This sections sets the Default Values for the Container.
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
- `APP` needs to be set to the Application name and must represent the filenames of your scripts.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `APP` needs to be set to the Application name and must represent the filenames of your scripts.
- `APP` needs to be set to the application name and must be equal to the filenames of your scripts.

- `var_tags`: You can set Tags for the CT wich show up in the Proxmox UI. Don´t overdo it!
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

>[!NOTE]
>Description for all Default Values
>| Variable | Description | Notes |
>|----------|-------------|-------|
>| `APP` | Application name | Must match ct\AppName.sh |
>| `TAGS` | Proxmox display tags without Spaces, only ; | Limit the number |
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved
>| `var_cpu` | CPU cores | Number of cores |
>| `var_ram` | RAM | In MB |
>| `var_disk` | Disk capacity | In GB |
>| `var_os` | Operating system | alpine, debian, ubuntu |
>| `var_version` | OS version | e.g., 3.20, 11, 12, 20.04 |
>| `var_unprivileged` | Container type | 1 = Unprivileged, 0 = Privileged |
michelroegl-brunner marked this conversation as resolved.
Show resolved Hide resolved

Example:
```bash
APP="SnipeIT"
var_tags="asset-management;foss"
var_cpu="2"
var_ram="2048"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
```

## 2.2 **📋 App Output & Base Settings**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 2.2 **📋 App Output & Base Settings**
## 2.2 **📋 App output & base settings**


```bash
# App Output & Base Settings
header_info "$APP"
base_settings
```

- `header_info`: Generates ASCII header for APP
- `base_settings`: Allows overwriting variable values

## 2.3 **🛠 Core Functions**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 2.3 **🛠 Core Functions**
## 2.3 **🛠 Core functions**


```bash
# Core
variables
color
catch_errors
```

- `variables`: Processes input and prepares variables
- `color`: Sets icons, colors, and formatting
- `catch_errors`: Enables error handling

---

## 3 **Update Function**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3 **Update Function**
## 3 **Update function**


### 3.1 **Function Header**
- If applicable write a function wich updates the Application and the OS in the container.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- If applicable write a function wich updates the Application and the OS in the container.
- If applicable write a function that updates the application and the OS in the container.

- Each update function starts with a standardised Header:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Each update function starts with a standardised Header:
- Each update function starts with the same code:

```bash
function update_script() {
header_info
check_container_storage
check_container_resources
```

### 3.2 **Check APP**
- Befor doing anything updatewise, check if the App is installed in the Container.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 3.2 **Check APP**
- Befor doing anything updatewise, check if the App is installed in the Container.
### 3.2 **Check APP**
- Before doing anything update-wise, check if the app is installed in the container.


Example:
```bash
if [[ ! -d /opt/snipe-it ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
```
### 3.3 **Check Version**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 3.3 **Check Version**
### 3.3 **Check version**

- Befor updating, check if a new Version exists.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Befor updating, check if a new Version exists.
- Befoer updating, check if a new version exists.

- For this we use the `${APPLICATION}_version.txt` file created in `/opt` during the install.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- For this we use the `${APPLICATION}_version.txt` file created in `/opt` during the install.
- We use the `${APPLICATION}_version.txt` file created in `/opt` during the install to compare new versions against the currently installed version.


Example with a Github Release:
```bash
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating ${APP} to v${RELEASE}"
#DO UPDATE
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}
```
### 3.4 **Verbosity**
- Use the appropiate flag (**-q** in the examples) for a command to suppres its output.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Use the appropiate flag (**-q** in the examples) for a command to suppres its output.
- Use the appropriate flag (**-q** in the examples) for a command to suppress its output.

Example:
```bash
wget -q
unzip -q
```
- If a command dose not come with such a functionality use `&>/dev/null` to suppress its output.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- If a command dose not come with such a functionality use `&>/dev/null` to suppress its output.
- If a command does not come with this functionality use `&>/dev/null` to suppress it's output.


Example:
```bash
php artisan migrate --force &>/dev/null
php artisan config:clear &>/dev/null
```

### 3.5 **Backups**
- Backup userdata if nessesary.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Backup userdata if nessesary.
- Backup user data if necessary.

- Move all userdata back in the Directory when the update is finnished.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Move all userdata back in the Directory when the update is finnished.
- Move all user data back in the directory when the update is finished.

>[!NOTE]
>This is not meant to be a permantent backup
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
>This is not meant to be a permantent backup
>This is not meant to be a permanent backup


Example backup:
```bash
mv /opt/snipe-it /opt/snipe-it-backup
```
Example config restore:
```bash
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
```

### 3.6 **Cleanup**
- Do not forget to remove any temporary files/folders such as zip-files or temporary backups.
Example:
```bash
rm -rf /opt/v${RELEASE}.zip
rm -rf /opt/snipe-it-backup
```

### 3.7 **No update function**
- In case you can not provide a update function use the following code to provide user feedback.
```bash
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/snipeit ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Ther is currently no automatic update function for ${APP}."
exit
}
```

---

## 4 **End of the Script**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4 **End of the Script**
## 4 **End of the script**

- `start`: Launches Whiptail dialogue
- `build_container`: Collects and integrates user settings
- `description`: Sets LXC container description
- With `echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"` you can point the user to the IP:PORT/folder needed to access the App.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- With `echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"` you can point the user to the IP:PORT/folder needed to access the App.
- With `echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"` you can point the user to the IP:PORT/folder needed to access the app.


```bash
start
build_container
description

msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
```
---

## 5. **Best Practices Checklist**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 5. **Best Practices Checklist**
## 5. **Contribution checklist**

These do not seem to be best practices. These seem to be musts for contributions.


- [ ] Shebang is correctly set (`#!/usr/bin/env bash`).
- [ ] Correct link to *build.func*
- [ ] Metadata (author, license) is included at the top.
- [ ] Variables follow naming conventions.
- [ ] Update function exists.
- [ ] Update functions checks if App is installed an for new Version.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [ ] Update functions checks if App is installed an for new Version.
- [ ] Update functions checks if app is installed an for new version.

- [ ] Update function up temporary files.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand this

- [ ] Script ends with a helpfull message for the User to reach the App.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [ ] Script ends with a helpfull message for the User to reach the App.
- [ ] Script ends with a helpful message for the user to reach the application.


Loading
Loading