Skip to content

Commit 6a672ca

Browse files
committed
more
1 parent 9bda7ba commit 6a672ca

63 files changed

Lines changed: 1034 additions & 317 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SAI Software Management Suite Makefile
22

3-
.PHONY: help install install-dev test test-cov lint format type-check security clean build publish docker docs pre-commit
3+
.PHONY: help install install-dev test test-cov lint format type-check security clean build publish docker docs pre-commit validate-providers validate-providers-verbose
44

55
# Default target
66
help:
@@ -35,6 +35,9 @@ help:
3535
@echo "Documentation:"
3636
@echo " docs Generate documentation"
3737
@echo " docs-serve Serve documentation locally"
38+
@echo ""
39+
@echo "Validation Commands:"
40+
@echo " validate-providers Validate provider files against schema"
3841

3942
# Installation
4043
install:
@@ -144,6 +147,15 @@ version:
144147
dev: format lint type-check test
145148
@echo "Development cycle complete!"
146149

150+
# Provider Validation
151+
validate-providers:
152+
@echo "Validating provider files against schema..."
153+
./scripts/validate_providers.sh
154+
155+
validate-providers-verbose:
156+
@echo "Validating provider files against schema (verbose)..."
157+
./scripts/validate_providers.sh --verbose
158+
147159
# All Quality Checks
148-
quality: lint type-check security test-cov
160+
quality: lint type-check security test-cov validate-providers
149161
@echo "All quality checks passed!"

providers/apk.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "Package manager for Alpine Linux"
88
type: "package_manager"
99
platforms: ["alpine"]
10+
executable: "apk" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop", "restart", "enable", "disable", "status", "logs"]
1112

1213
actions:

providers/apt.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "Package manager for Debian and Ubuntu systems"
88
type: "package_manager"
99
platforms: ["debian", "ubuntu"]
10+
executable: "apt-get" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop", "restart", "enable", "disable", "status", "logs"]
1112

1213
actions:

providers/choco.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "The package manager for Windows"
88
type: "package_manager"
99
platforms: ["windows"]
10+
executable: "choco" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop", "restart", "enable", "disable", "status", "logs"]
1112

1213
actions:

providers/dnf.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "Next-generation package manager for RPM-based systems"
88
type: "package_manager"
99
platforms: ["fedora", "rhel", "centos", "rocky", "alma"]
10+
executable: "dnf" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop", "restart", "enable", "disable", "status", "logs"]
1112

1213
actions:

providers/docker.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,17 @@ provider:
77
description: "Container platform for building, shipping, and running applications"
88
type: "container"
99
platforms: ["linux", "macos", "windows"]
10+
executable: "docker" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "start", "stop", "restart", "status", "logs", "info", "list"]
1112

1213
actions:
1314
install:
1415
description: "Pull and create Docker container"
1516
steps:
1617
- name: "pull-image"
17-
command: "docker pull {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, "version") or 'latest'}}"
18+
command: "docker pull {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, 'version') or 'latest'}}"
1819
- name: "create-container"
19-
command: "docker create --name {{container_name}} -p {{sai_port(saidata) or '80'}}:{{sai_port(saidata) or '80'}} {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, "version") or 'latest'}}"
20+
command: "docker create --name {{container_name}} -p {{sai_port(saidata) or '80'}}:{{sai_port(saidata) or '80'}} {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, 'version') or 'latest'}}"
2021
timeout: 600
2122
validation:
2223
command: "docker ps -a | grep {{container_name}}"
@@ -35,7 +36,7 @@ actions:
3536
command: "docker rm {{container_name}}"
3637
ignore_failure: true
3738
- name: "remove-image"
38-
command: "docker rmi {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, "version") or 'latest'}}"
39+
command: "docker rmi {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, 'version') or 'latest'}}"
3940
ignore_failure: true
4041
variables:
4142
container_name: "{{sai_package(saidata, 'docker')}}-container"
@@ -48,9 +49,9 @@ actions:
4849
- name: "remove-container"
4950
command: "docker rm {{container_name}}"
5051
- name: "pull-new-image"
51-
command: "docker pull {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, "version") or 'latest'}}"
52+
command: "docker pull {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, 'version') or 'latest'}}"
5253
- name: "create-new-container"
53-
command: "docker create --name {{container_name}} -p {{sai_port(saidata) or '80'}}:{{sai_port(saidata) or '80'}} {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, "version") or 'latest'}}"
54+
command: "docker create --name {{container_name}} -p {{sai_port(saidata) or '80'}}:{{sai_port(saidata) or '80'}} {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, 'version') or 'latest'}}"
5455
- name: "start-container"
5556
command: "docker start {{container_name}}"
5657
timeout: 600
@@ -96,7 +97,7 @@ actions:
9697

9798
info:
9899
description: "Show Docker image information"
99-
template: "docker inspect {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, "version") or 'latest'}}"
100+
template: "docker inspect {{sai_package(saidata) or saidata.metadata.name}}:{{sai_package(saidata, 0, 'version') or 'latest'}}"
100101

101102
list:
102103
description: "List Docker containers"

providers/emerge.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "Source-based package manager for Gentoo Linux"
88
type: "package_manager"
99
platforms: ["gentoo"]
10+
executable: "emerge" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop", "restart", "enable", "disable", "status", "logs"]
1112

1213
actions:

providers/flatpak.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "Universal application distribution framework for Linux"
88
type: "package_manager"
99
platforms: ["linux"]
10+
executable: "flatpak" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop"]
1112

1213
actions:

providers/guix.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "Transactional package manager and system configuration tool"
88
type: "package_manager"
99
platforms: ["guix", "linux"]
10+
executable: "guix" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop", "restart", "enable", "disable", "status", "logs"]
1112

1213
actions:

providers/helm.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ provider:
77
description: "The package manager for Kubernetes"
88
type: "package_manager"
99
platforms: ["linux", "macos", "windows"]
10+
executable: "helm" # Main executable for availability detection
1011
capabilities: ["install", "uninstall", "upgrade", "search", "info", "list", "version", "start", "stop", "restart", "status", "logs"]
1112

1213
actions:

0 commit comments

Comments
 (0)