diff --git a/.vale.ini b/.vale.ini index a4632f5..8f19642 100644 --- a/.vale.ini +++ b/.vale.ini @@ -2,4 +2,4 @@ StylesPath = vale/styles MinAlertLevel = suggestion Packages = Google, proselint [*] -BasedOnStyles = Vale, Google, proselint \ No newline at end of file +BasedOnStyles = Vale, Google, proselint, Readability \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e5ce730 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.exclude": { + "**/.git": false + } +} diff --git a/README.md b/README.md index 7d88f60..1056c41 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,14 @@ yarn lint This will check the documentation for any issues or inconsistencies based on the defined linting rules. +## Update runpodctl docs + +The CLI reference documentation for runpodctl are configured by using the `runpodctl-docs.py` file. + +```bash +python3 runpodctl-docs.py +``` + ## Creating a New Version Versioning is crucial for tracking changes and releases. diff --git a/runpodctl-docs.py b/runpodctl-docs.py new file mode 100644 index 0000000..910d3a2 --- /dev/null +++ b/runpodctl-docs.py @@ -0,0 +1,70 @@ +import os +import subprocess +import glob +from datetime import datetime + + +# Function to run shell commands +def run_command(command): + process = subprocess.Popen( + command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) + out, err = process.communicate() + if process.returncode != 0: + print(f"Error: {err}") + return out.decode().strip() + + +# Function to generate metadata header +def generate_metadata_header(title, slug): + current_time = datetime.utcnow().strftime( + "%a %b %d %Y %H:%M:%S GMT+0000 (Coordinated Universal Time)" + ) + return f'---\ntitle: "{title}"\nslug: {slug}\nexcerpt: "{title}"\ncategory: "References"\nhidden: false\nmetadata: \n image: []\n robots: "index"\ncreatedAt: "{current_time}"\nupdatedAt: "{current_time}"\n---\n\n' + + +# 1. Check if Git module already exists and add if not +print("Checking for existing Git module...") +module_path = "runpodctl" +if not os.path.exists(module_path): + print("Adding Git module...") + run_command("gh repo clone runpod/runpodctl runpodctl") +else: + print("Git module already exists. Skipping addition.") + +# 2. Move Markdown files +print("Moving Markdown files...") +source_dir = "runpodctl/doc/" +target_dir = "v1.0/References/runpodctl/" +os.makedirs(target_dir, exist_ok=True) +for md_file in glob.glob(f"{source_dir}*.md"): + os.rename(md_file, f"{target_dir}{os.path.basename(md_file)}") + +# 3. Update each Markdown file +print("Editing Markdown files...") +for md_file in glob.glob(f"{target_dir}*.md"): + title = ( + os.path.basename(md_file) + .replace("runpodctl", "") + .replace(".md", "") + .replace("-", " ") + .replace("_", " ") + .strip() + .title() + ) + if title == "": + title = "Runpodctl" + slug = os.path.basename(md_file).replace(".md", "").replace("_", "-") + with open(md_file, "r") as file: + lines = file.readlines() + with open(md_file, "w") as file: + file.write(generate_metadata_header(title, slug)) + for line in lines: + if "###### Auto generated by" not in line: + file.write(line) + +# 4. Clean up +print("Cleaning up...") +run_command("rm -rf runpodctl") + +print("Script completed.") diff --git a/v1.0/References/runpodctl/runpodctl.md b/v1.0/References/runpodctl/runpodctl.md new file mode 100644 index 0000000..5a7dc41 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl.md @@ -0,0 +1,39 @@ +--- +title: "Runpodctl" +slug: runpodctl +excerpt: "Runpodctl" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl + +runpodctl for runpod.io + +### Synopsis + +runpodctl is a CLI tool to manage your pods for runpod.io + +### Options + +``` + -h, --help help for runpodctl +``` + +### SEE ALSO + +* [runpodctl config](runpodctl_config.md) - CLI Config +* [runpodctl create](runpodctl_create.md) - create a resource +* [runpodctl get](runpodctl_get.md) - get resource +* [runpodctl receive](runpodctl_receive.md) - receive file(s), or folder +* [runpodctl remove](runpodctl_remove.md) - remove a resource +* [runpodctl send](runpodctl_send.md) - send file(s), or folder +* [runpodctl start](runpodctl_start.md) - start a resource +* [runpodctl stop](runpodctl_stop.md) - stop a resource +* [runpodctl version](runpodctl_version.md) - runpodctl version + diff --git a/v1.0/References/runpodctl/runpodctl_config.md b/v1.0/References/runpodctl/runpodctl_config.md new file mode 100644 index 0000000..dd1865d --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_config.md @@ -0,0 +1,37 @@ +--- +title: "Config" +slug: runpodctl-config +excerpt: "Config" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl config + +CLI Config + +### Synopsis + +RunPod CLI Config Settings + +``` +runpodctl config [flags] +``` + +### Options + +``` + --apiKey string runpod api key + --apiUrl string runpod api url + -h, --help help for config +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io + diff --git a/v1.0/References/runpodctl/runpodctl_create.md b/v1.0/References/runpodctl/runpodctl_create.md new file mode 100644 index 0000000..53e9c18 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_create.md @@ -0,0 +1,33 @@ +--- +title: "Create" +slug: runpodctl-create +excerpt: "Create" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl create + +create a resource + +### Synopsis + +create a resource in runpod.io + +### Options + +``` + -h, --help help for create +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io +* [runpodctl create pod](runpodctl_create_pod.md) - start a pod +* [runpodctl create pods](runpodctl_create_pods.md) - create a group of pods + diff --git a/v1.0/References/runpodctl/runpodctl_create_pod.md b/v1.0/References/runpodctl/runpodctl_create_pod.md new file mode 100644 index 0000000..8d33d24 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_create_pod.md @@ -0,0 +1,51 @@ +--- +title: "Create Pod" +slug: runpodctl-create-pod +excerpt: "Create Pod" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl create pod + +start a pod + +### Synopsis + +start a pod from runpod.io + +``` +runpodctl create pod [flags] +``` + +### Options + +``` + --args string container arguments + --communityCloud create in community cloud + --containerDiskSize int container disk size in GB (default 20) + --cost float32 $/hr price ceiling, if not defined, pod will be created with lowest price available + --env strings container arguments + --gpuCount int number of GPUs for the pod (default 1) + --gpuType string gpu type id, e.g. 'NVIDIA GeForce RTX 3090' + -h, --help help for pod + --imageName string container image name + --mem int minimum system memory needed (default 20) + --name string any pod name for easy reference + --ports strings ports to expose; max only 1 http and 1 tcp allowed; e.g. '8888/http' + --secureCloud create in secure cloud + --templateId string templateId to use with the pod + --vcpu int minimum vCPUs needed (default 1) + --volumePath string container volume path (default "/runpod") + --volumeSize int persistent volume disk size in GB (default 1) +``` + +### SEE ALSO + +* [runpodctl create](runpodctl_create.md) - create a resource + diff --git a/v1.0/References/runpodctl/runpodctl_create_pods.md b/v1.0/References/runpodctl/runpodctl_create_pods.md new file mode 100644 index 0000000..44c2c49 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_create_pods.md @@ -0,0 +1,51 @@ +--- +title: "Create Pods" +slug: runpodctl-create-pods +excerpt: "Create Pods" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl create pods + +create a group of pods + +### Synopsis + +create a group of pods on runpod.io + +``` +runpodctl create pods [flags] +``` + +### Options + +``` + --args string container arguments + --communityCloud create in community cloud + --containerDiskSize int container disk size in GB (default 20) + --cost float32 $/hr price ceiling, if not defined, pod will be created with lowest price available + --env strings container arguments + --gpuCount int number of GPUs for the pod (default 1) + --gpuType string gpu type id, e.g. 'NVIDIA GeForce RTX 3090' + -h, --help help for pods + --imageName string container image name + --mem int minimum system memory needed (default 20) + --name string any pod name for easy reference + --podCount int number of pods to create with the same name (default 1) + --ports strings ports to expose; max only 1 http and 1 tcp allowed; e.g. '8888/http' + --secureCloud create in secure cloud + --vcpu int minimum vCPUs needed (default 1) + --volumePath string container volume path (default "/runpod") + --volumeSize int persistent volume disk size in GB (default 1) +``` + +### SEE ALSO + +* [runpodctl create](runpodctl_create.md) - create a resource + diff --git a/v1.0/References/runpodctl/runpodctl_get.md b/v1.0/References/runpodctl/runpodctl_get.md new file mode 100644 index 0000000..7e5f654 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_get.md @@ -0,0 +1,33 @@ +--- +title: "Get" +slug: runpodctl-get +excerpt: "Get" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl get + +get resource + +### Synopsis + +get resources for pods + +### Options + +``` + -h, --help help for get +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io +* [runpodctl get cloud](runpodctl_get_cloud.md) - get all cloud gpus +* [runpodctl get pod](runpodctl_get_pod.md) - get all pods + diff --git a/v1.0/References/runpodctl/runpodctl_get_cloud.md b/v1.0/References/runpodctl/runpodctl_get_cloud.md new file mode 100644 index 0000000..f6f32e9 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_get_cloud.md @@ -0,0 +1,40 @@ +--- +title: "Get Cloud" +slug: runpodctl-get-cloud +excerpt: "Get Cloud" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl get cloud + +get all cloud gpus + +### Synopsis + +get all cloud gpus available on runpod.io + +``` +runpodctl get cloud [gpuCount] [flags] +``` + +### Options + +``` + -c, --community show listings from community cloud only + --disk int minimum disk size in GB you need + -h, --help help for cloud + --mem int minimum sys memory size in GB you need + -s, --secure show listings from secure cloud only + --vcpu int minimum vCPUs you need +``` + +### SEE ALSO + +* [runpodctl get](runpodctl_get.md) - get resource + diff --git a/v1.0/References/runpodctl/runpodctl_get_pod.md b/v1.0/References/runpodctl/runpodctl_get_pod.md new file mode 100644 index 0000000..26a92c7 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_get_pod.md @@ -0,0 +1,36 @@ +--- +title: "Get Pod" +slug: runpodctl-get-pod +excerpt: "Get Pod" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl get pod + +get all pods + +### Synopsis + +get all pods or specify pod id + +``` +runpodctl get pod [podId] [flags] +``` + +### Options + +``` + -a, --allfields include all fields in output + -h, --help help for pod +``` + +### SEE ALSO + +* [runpodctl get](runpodctl_get.md) - get resource + diff --git a/v1.0/References/runpodctl/runpodctl_receive.md b/v1.0/References/runpodctl/runpodctl_receive.md new file mode 100644 index 0000000..e9e9fe1 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_receive.md @@ -0,0 +1,35 @@ +--- +title: "Receive" +slug: runpodctl-receive +excerpt: "Receive" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl receive + +receive file(s), or folder + +### Synopsis + +receive file(s), or folder from pod or any computer + +``` +runpodctl receive [code] [flags] +``` + +### Options + +``` + -h, --help help for receive +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io + diff --git a/v1.0/References/runpodctl/runpodctl_remove.md b/v1.0/References/runpodctl/runpodctl_remove.md new file mode 100644 index 0000000..20ca4e1 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_remove.md @@ -0,0 +1,33 @@ +--- +title: "Remove" +slug: runpodctl-remove +excerpt: "Remove" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl remove + +remove a resource + +### Synopsis + +remove a resource in runpod.io + +### Options + +``` + -h, --help help for remove +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io +* [runpodctl remove pod](runpodctl_remove_pod.md) - remove a pod +* [runpodctl remove pods](runpodctl_remove_pods.md) - remove all pods using name + diff --git a/v1.0/References/runpodctl/runpodctl_remove_pod.md b/v1.0/References/runpodctl/runpodctl_remove_pod.md new file mode 100644 index 0000000..28d3dfd --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_remove_pod.md @@ -0,0 +1,35 @@ +--- +title: "Remove Pod" +slug: runpodctl-remove-pod +excerpt: "Remove Pod" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl remove pod + +remove a pod + +### Synopsis + +remove a pod from runpod.io + +``` +runpodctl remove pod [podId] [flags] +``` + +### Options + +``` + -h, --help help for pod +``` + +### SEE ALSO + +* [runpodctl remove](runpodctl_remove.md) - remove a resource + diff --git a/v1.0/References/runpodctl/runpodctl_remove_pods.md b/v1.0/References/runpodctl/runpodctl_remove_pods.md new file mode 100644 index 0000000..ca5eee4 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_remove_pods.md @@ -0,0 +1,36 @@ +--- +title: "Remove Pods" +slug: runpodctl-remove-pods +excerpt: "Remove Pods" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl remove pods + +remove all pods using name + +### Synopsis + +remove all pods using name from runpod.io + +``` +runpodctl remove pods [name] [flags] +``` + +### Options + +``` + -h, --help help for pods + --podCount int number of pods to remove with the same name (default 1) +``` + +### SEE ALSO + +* [runpodctl remove](runpodctl_remove.md) - remove a resource + diff --git a/v1.0/References/runpodctl/runpodctl_send.md b/v1.0/References/runpodctl/runpodctl_send.md new file mode 100644 index 0000000..c776645 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_send.md @@ -0,0 +1,36 @@ +--- +title: "Send" +slug: runpodctl-send +excerpt: "Send" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl send + +send file(s), or folder + +### Synopsis + +send file(s), or folder to pod or any computer + +``` +runpodctl send [filename(s) or folder] [flags] +``` + +### Options + +``` + --code string codephrase used to connect + -h, --help help for send +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io + diff --git a/v1.0/References/runpodctl/runpodctl_start.md b/v1.0/References/runpodctl/runpodctl_start.md new file mode 100644 index 0000000..b695744 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_start.md @@ -0,0 +1,32 @@ +--- +title: "Start" +slug: runpodctl-start +excerpt: "Start" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl start + +start a resource + +### Synopsis + +start a resource in runpod.io + +### Options + +``` + -h, --help help for start +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io +* [runpodctl start pod](runpodctl_start_pod.md) - start a pod + diff --git a/v1.0/References/runpodctl/runpodctl_start_pod.md b/v1.0/References/runpodctl/runpodctl_start_pod.md new file mode 100644 index 0000000..7fddba4 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_start_pod.md @@ -0,0 +1,36 @@ +--- +title: "Start Pod" +slug: runpodctl-start-pod +excerpt: "Start Pod" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl start pod + +start a pod + +### Synopsis + +start a pod from runpod.io + +``` +runpodctl start pod [podId] [flags] +``` + +### Options + +``` + --bid float32 bid per gpu for spot price + -h, --help help for pod +``` + +### SEE ALSO + +* [runpodctl start](runpodctl_start.md) - start a resource + diff --git a/v1.0/References/runpodctl/runpodctl_stop.md b/v1.0/References/runpodctl/runpodctl_stop.md new file mode 100644 index 0000000..78f4bc1 --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_stop.md @@ -0,0 +1,32 @@ +--- +title: "Stop" +slug: runpodctl-stop +excerpt: "Stop" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl stop + +stop a resource + +### Synopsis + +stop a resource in runpod.io + +### Options + +``` + -h, --help help for stop +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io +* [runpodctl stop pod](runpodctl_stop_pod.md) - stop a pod + diff --git a/v1.0/References/runpodctl/runpodctl_stop_pod.md b/v1.0/References/runpodctl/runpodctl_stop_pod.md new file mode 100644 index 0000000..874168c --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_stop_pod.md @@ -0,0 +1,35 @@ +--- +title: "Stop Pod" +slug: runpodctl-stop-pod +excerpt: "Stop Pod" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl stop pod + +stop a pod + +### Synopsis + +stop a pod from runpod.io + +``` +runpodctl stop pod [podId] [flags] +``` + +### Options + +``` + -h, --help help for pod +``` + +### SEE ALSO + +* [runpodctl stop](runpodctl_stop.md) - stop a resource + diff --git a/v1.0/References/runpodctl/runpodctl_version.md b/v1.0/References/runpodctl/runpodctl_version.md new file mode 100644 index 0000000..a3e555b --- /dev/null +++ b/v1.0/References/runpodctl/runpodctl_version.md @@ -0,0 +1,35 @@ +--- +title: "Version" +slug: runpodctl-version +excerpt: "Version" +category: "References" +hidden: false +metadata: + image: [] + robots: "index" +createdAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +updatedAt: "Fri Dec 29 2023 18:27:25 GMT+0000 (Coordinated Universal Time)" +--- + +## runpodctl version + +runpodctl version + +### Synopsis + +runpodctl version + +``` +runpodctl version [flags] +``` + +### Options + +``` + -h, --help help for version +``` + +### SEE ALSO + +* [runpodctl](runpodctl.md) - runpodctl for runpod.io + diff --git a/vale/styles/Readability/Readability/FleschKincaid.yml b/vale/styles/Readability/Readability/FleschKincaid.yml new file mode 100644 index 0000000..e078f00 --- /dev/null +++ b/vale/styles/Readability/Readability/FleschKincaid.yml @@ -0,0 +1,8 @@ +extends: metric +message: "Try to keep the Flesch–Kincaid grade level (%s) below 8." +link: https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests + +formula: | + (0.39 * (words / sentences)) + (11.8 * (syllables / words)) - 15.59 + +condition: "> 8" \ No newline at end of file