314 lines
9.2 KiB
Text
314 lines
9.2 KiB
Text
# PUBLIC DOMAIN - NO LICENSE, NO WARRANTY
|
|
# Copyright 2025 TimeHexOn & foxhop & russell@unturf
|
|
# https://www.permacomputer.com
|
|
|
|
# Makefile for ai.unturf.com Language Examples
|
|
# This Makefile contains commands for building and testing language example implementations
|
|
# Each language demonstrates usage of Hermes AI, Qwen Coder, and TTS endpoints
|
|
|
|
# Docker image prefix
|
|
IMAGE_PREFIX := ai-unturf
|
|
|
|
# Languages directory (now in public/)
|
|
LANGUAGES_DIR := public/languages
|
|
|
|
# Test endpoints
|
|
MODEL_ENDPOINT_1 := https://hermes.ai.unturf.com/v1
|
|
MODEL_ENDPOINT_2 := https://qwen.ai.unturf.com/v1
|
|
TTS_ENDPOINT_1 := https://speech.ai.unturf.com/v1
|
|
|
|
# Docker run environment variables
|
|
DOCKER_ENV := -e MODEL_ENDPOINT_1=$(MODEL_ENDPOINT_1) -e MODEL_ENDPOINT_2=$(MODEL_ENDPOINT_2) -e TTS_ENDPOINT_1=$(TTS_ENDPOINT_1)
|
|
|
|
.PHONY: help
|
|
help:
|
|
@echo "Language Examples Makefile Commands:"
|
|
@echo ""
|
|
@echo " make languages-list - List all language directories"
|
|
@echo " make languages-build-python - Build Docker image for Python"
|
|
@echo " make languages-test-python - Test Python implementation"
|
|
@echo " make languages-run-python - Run Python container interactively"
|
|
@echo " make languages-stop-python - Stop Python container"
|
|
@echo " make languages-clean-python - Remove Python container and image"
|
|
@echo ""
|
|
@echo " make languages-build-all - Build all language Docker images"
|
|
@echo " make languages-test-all - Test all language implementations"
|
|
@echo " make languages-stop-all - Stop all language containers"
|
|
@echo " make languages-clean-all - Remove all language containers and images"
|
|
@echo ""
|
|
@echo " Supported languages: python, go, rust, ruby, commonlisp, scheme, bash, and more"
|
|
@echo ""
|
|
@echo "Test Endpoints (via environment variables):"
|
|
@echo " MODEL_ENDPOINT_1: $(MODEL_ENDPOINT_1)"
|
|
@echo " MODEL_ENDPOINT_2: $(MODEL_ENDPOINT_2)"
|
|
@echo " TTS_ENDPOINT_1: $(TTS_ENDPOINT_1)"
|
|
|
|
.PHONY: languages-list
|
|
languages-list:
|
|
@echo "Available language directories:"
|
|
@ls -1 $(LANGUAGES_DIR)/
|
|
|
|
# Python language targets
|
|
.PHONY: languages-build-python
|
|
languages-build-python:
|
|
docker build -t $(IMAGE_PREFIX)-python $(LANGUAGES_DIR)/python/requests/
|
|
|
|
.PHONY: languages-test-python
|
|
languages-test-python:
|
|
@echo "Testing Python implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-python
|
|
|
|
.PHONY: languages-run-python
|
|
languages-run-python:
|
|
docker run -it --rm --name test-python $(IMAGE_PREFIX)-python
|
|
|
|
.PHONY: languages-stop-python
|
|
languages-stop-python:
|
|
docker stop test-python || true
|
|
docker rm test-python || true
|
|
|
|
.PHONY: languages-clean-python
|
|
languages-clean-python: languages-stop-python
|
|
docker rmi $(IMAGE_PREFIX)-python || true
|
|
|
|
# Go language targets
|
|
.PHONY: languages-build-go
|
|
languages-build-go:
|
|
docker build -t $(IMAGE_PREFIX)-go $(LANGUAGES_DIR)/go/http/
|
|
|
|
.PHONY: languages-test-go
|
|
languages-test-go:
|
|
@echo "Testing Go implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-go
|
|
|
|
.PHONY: languages-run-go
|
|
languages-run-go:
|
|
docker run -it --rm --name test-go $(IMAGE_PREFIX)-go
|
|
|
|
.PHONY: languages-stop-go
|
|
languages-stop-go:
|
|
docker stop test-go || true
|
|
docker rm test-go || true
|
|
|
|
.PHONY: languages-clean-go
|
|
languages-clean-go: languages-stop-go
|
|
docker rmi $(IMAGE_PREFIX)-go || true
|
|
|
|
# JavaScript/Node.js language targets
|
|
.PHONY: languages-build-js
|
|
languages-build-js:
|
|
docker build -t $(IMAGE_PREFIX)-js $(LANGUAGES_DIR)/javascript/nodejs/
|
|
|
|
.PHONY: languages-test-js
|
|
languages-test-js:
|
|
@echo "Testing JavaScript implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-js
|
|
|
|
.PHONY: languages-run-js
|
|
languages-run-js:
|
|
docker run -it --rm --name test-js $(IMAGE_PREFIX)-js
|
|
|
|
.PHONY: languages-stop-js
|
|
languages-stop-js:
|
|
docker stop test-js || true
|
|
docker rm test-js || true
|
|
|
|
.PHONY: languages-clean-js
|
|
languages-clean-js: languages-stop-js
|
|
docker rmi $(IMAGE_PREFIX)-js || true
|
|
|
|
# Rust language targets
|
|
.PHONY: languages-build-rust
|
|
languages-build-rust:
|
|
docker build -t $(IMAGE_PREFIX)-rust $(LANGUAGES_DIR)/rust/
|
|
|
|
.PHONY: languages-test-rust
|
|
languages-test-rust:
|
|
@echo "Testing Rust implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-rust
|
|
|
|
.PHONY: languages-run-rust
|
|
languages-run-rust:
|
|
docker run -it --rm --name test-rust $(IMAGE_PREFIX)-rust
|
|
|
|
.PHONY: languages-stop-rust
|
|
languages-stop-rust:
|
|
docker stop test-rust || true
|
|
docker rm test-rust || true
|
|
|
|
.PHONY: languages-clean-rust
|
|
languages-clean-rust: languages-stop-rust
|
|
docker rmi $(IMAGE_PREFIX)-rust || true
|
|
|
|
# Ruby language targets
|
|
.PHONY: languages-build-ruby
|
|
languages-build-ruby:
|
|
docker build -t $(IMAGE_PREFIX)-ruby $(LANGUAGES_DIR)/ruby/http/
|
|
|
|
.PHONY: languages-test-ruby
|
|
languages-test-ruby:
|
|
@echo "Testing Ruby implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-ruby
|
|
|
|
.PHONY: languages-run-ruby
|
|
languages-run-ruby:
|
|
docker run -it --rm --name test-ruby $(IMAGE_PREFIX)-ruby
|
|
|
|
.PHONY: languages-stop-ruby
|
|
languages-stop-ruby:
|
|
docker stop test-ruby || true
|
|
docker rm test-ruby || true
|
|
|
|
.PHONY: languages-clean-ruby
|
|
languages-clean-ruby: languages-stop-ruby
|
|
docker rmi $(IMAGE_PREFIX)-ruby || true
|
|
|
|
# C language targets
|
|
.PHONY: languages-build-c
|
|
languages-build-c:
|
|
docker build -t $(IMAGE_PREFIX)-c $(LANGUAGES_DIR)/c/curl/
|
|
|
|
.PHONY: languages-test-c
|
|
languages-test-c:
|
|
@echo "Testing C implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-c
|
|
|
|
.PHONY: languages-run-c
|
|
languages-run-c:
|
|
docker run -it --rm --name test-c $(IMAGE_PREFIX)-c
|
|
|
|
.PHONY: languages-stop-c
|
|
languages-stop-c:
|
|
docker stop test-c || true
|
|
docker rm test-c || true
|
|
|
|
.PHONY: languages-clean-c
|
|
languages-clean-c: languages-stop-c
|
|
docker rmi $(IMAGE_PREFIX)-c || true
|
|
|
|
# C++ language targets
|
|
.PHONY: languages-build-cpp
|
|
languages-build-cpp:
|
|
docker build -t $(IMAGE_PREFIX)-cpp $(LANGUAGES_DIR)/cpp/libcurl/
|
|
|
|
.PHONY: languages-test-cpp
|
|
languages-test-cpp:
|
|
@echo "Testing C++ implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-cpp
|
|
|
|
.PHONY: languages-run-cpp
|
|
languages-run-cpp:
|
|
docker run -it --rm --name test-cpp $(IMAGE_PREFIX)-cpp
|
|
|
|
.PHONY: languages-stop-cpp
|
|
languages-stop-cpp:
|
|
docker stop test-cpp || true
|
|
docker rm test-cpp || true
|
|
|
|
.PHONY: languages-clean-cpp
|
|
languages-clean-cpp: languages-stop-cpp
|
|
docker rmi $(IMAGE_PREFIX)-cpp || true
|
|
|
|
# Bash language targets
|
|
.PHONY: languages-build-bash
|
|
languages-build-bash:
|
|
docker build -t $(IMAGE_PREFIX)-bash $(LANGUAGES_DIR)/bash/
|
|
|
|
.PHONY: languages-test-bash
|
|
languages-test-bash:
|
|
@echo "Testing Bash implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-bash
|
|
|
|
.PHONY: languages-run-bash
|
|
languages-run-bash:
|
|
docker run -it --rm --name test-bash $(IMAGE_PREFIX)-bash
|
|
|
|
.PHONY: languages-stop-bash
|
|
languages-stop-bash:
|
|
docker stop test-bash || true
|
|
docker rm test-bash || true
|
|
|
|
.PHONY: languages-clean-bash
|
|
languages-clean-bash: languages-stop-bash
|
|
docker rmi $(IMAGE_PREFIX)-bash || true
|
|
|
|
# Common Lisp language targets
|
|
.PHONY: languages-build-commonlisp
|
|
languages-build-commonlisp:
|
|
docker build -t $(IMAGE_PREFIX)-commonlisp $(LANGUAGES_DIR)/commonlisp/
|
|
|
|
.PHONY: languages-test-commonlisp
|
|
languages-test-commonlisp:
|
|
@echo "Testing Common Lisp implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-commonlisp
|
|
|
|
.PHONY: languages-run-commonlisp
|
|
languages-run-commonlisp:
|
|
docker run -it --rm --name test-commonlisp $(IMAGE_PREFIX)-commonlisp
|
|
|
|
.PHONY: languages-stop-commonlisp
|
|
languages-stop-commonlisp:
|
|
docker stop test-commonlisp || true
|
|
docker rm test-commonlisp || true
|
|
|
|
.PHONY: languages-clean-commonlisp
|
|
languages-clean-commonlisp: languages-stop-commonlisp
|
|
docker rmi $(IMAGE_PREFIX)-commonlisp || true
|
|
|
|
# Scheme language targets
|
|
.PHONY: languages-build-scheme
|
|
languages-build-scheme:
|
|
docker build -t $(IMAGE_PREFIX)-scheme $(LANGUAGES_DIR)/scheme/
|
|
|
|
.PHONY: languages-test-scheme
|
|
languages-test-scheme:
|
|
@echo "Testing Scheme implementation..."
|
|
docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-scheme
|
|
|
|
.PHONY: languages-run-scheme
|
|
languages-run-scheme:
|
|
docker run -it --rm --name test-scheme $(IMAGE_PREFIX)-scheme
|
|
|
|
.PHONY: languages-stop-scheme
|
|
languages-stop-scheme:
|
|
docker stop test-scheme || true
|
|
docker rm test-scheme || true
|
|
|
|
.PHONY: languages-clean-scheme
|
|
languages-clean-scheme: languages-stop-scheme
|
|
docker rmi $(IMAGE_PREFIX)-scheme || true
|
|
|
|
# Build all language implementations
|
|
.PHONY: languages-build-all
|
|
languages-build-all:
|
|
@echo "Building all language implementations..."
|
|
@for lang in $(LANGUAGES); do \
|
|
echo "Building $$lang..."; \
|
|
docker build -t $(IMAGE_PREFIX)-$$lang languages/$$lang/ || echo "Failed to build $$lang"; \
|
|
done
|
|
|
|
# Test all language implementations
|
|
.PHONY: languages-test-all
|
|
languages-test-all:
|
|
@echo "Testing all language implementations..."
|
|
@for lang in $(LANGUAGES); do \
|
|
echo "Testing $$lang..."; \
|
|
docker run --rm $(IMAGE_PREFIX)-$$lang || echo "Failed to test $$lang"; \
|
|
done
|
|
|
|
# Stop all language containers
|
|
.PHONY: languages-stop-all
|
|
languages-stop-all:
|
|
@echo "Stopping all language containers..."
|
|
@for lang in $(LANGUAGES); do \
|
|
docker stop test-$$lang 2>/dev/null || true; \
|
|
docker rm test-$$lang 2>/dev/null || true; \
|
|
done
|
|
|
|
# Clean all language containers and images
|
|
.PHONY: languages-clean-all
|
|
languages-clean-all: languages-stop-all
|
|
@echo "Removing all language images..."
|
|
@for lang in $(LANGUAGES); do \
|
|
docker rmi $(IMAGE_PREFIX)-$$lang 2>/dev/null || true; \
|
|
done
|