Compare commits

...

6 Commits

Author SHA1 Message Date
73c94f34f6 Modify getpkg/src/main.cpp
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 55s
Build-Test-Publish / build (linux/arm64) (push) Successful in 1m23s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Successful in 6s
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Successful in 7s
2025-06-30 23:47:08 +12:00
af4cbbcab0 Update 2 files
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 54s
Build-Test-Publish / build (linux/arm64) (push) Successful in 1m23s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Successful in 7s
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Successful in 7s
2025-06-30 23:13:51 +12:00
a415eb0f91 Modify buildtestpublish_all.sh
Some checks failed
Build-Test-Publish / build (linux/amd64) (push) Failing after 53s
Build-Test-Publish / build (linux/arm64) (push) Failing after 1m6s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Has been skipped
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Has been skipped
2025-06-30 23:09:07 +12:00
83d6cf1603 Modify dehydrate/test.sh
Some checks failed
Build-Test-Publish / build (linux/amd64) (push) Failing after 52s
Build-Test-Publish / build (linux/arm64) (push) Failing after 1m6s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Has been skipped
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Has been skipped
2025-06-30 23:03:59 +12:00
fbaa3a4089 Modify dehydrate/test.sh
Some checks failed
Build-Test-Publish / build (linux/amd64) (push) Failing after 53s
Build-Test-Publish / build (linux/arm64) (push) Failing after 1m6s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Has been skipped
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Has been skipped
2025-06-30 23:02:06 +12:00
0c767e065c Modify dehydrate/test.sh
Some checks failed
Build-Test-Publish / build (linux/amd64) (push) Failing after 53s
Build-Test-Publish / build (linux/arm64) (push) Failing after 1m18s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Has been skipped
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Has been skipped
2025-06-30 22:56:30 +12:00
5 changed files with 103 additions and 18 deletions

View File

@ -109,7 +109,7 @@ function buildtestpublish() {
# Add to projects list
PROJECTS+=("$TOOLNAME")
#cd "$dir" || echo "Failed to cd to $dir"
cd "$dir" || echo "Failed to cd to $dir"
subtitle "🔨 BUILDING $TOOLNAME_UPPER 🔨"
if dothis build "$dir" "$TOOLNAME"; then

View File

@ -3,7 +3,7 @@ set -euo pipefail
# Get script directory - handle different execution contexts
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
PROJECT="$(basename "$(dirname "${SCRIPT_DIR}")")"
PROJECT="$(basename "${SCRIPT_DIR}")"
# Debug output for CI
echo "${PROJECT} build script running from: ${SCRIPT_DIR}"

View File

@ -8,8 +8,10 @@ PROJECT="dehydrate"
# Handle running locally or in Gitea runner
if [ -n "${GITEA_CONTAINER_NAME:-}" ]; then
echo "Running in Gitea CI environment"
OUTPUT_DIR="${GITHUB_WORKSPACE}/${PROJECT}/output"
TEST_DIR="${GITHUB_WORKSPACE}/${PROJECT}/test_temp"
echo "GITHUB_WORKSPACE: ${GITHUB_WORKSPACE}"
echo "Current directory: $(pwd)"
OUTPUT_DIR="${GITHUB_WORKSPACE}/dehydrate/output"
TEST_DIR="${GITHUB_WORKSPACE}/dehydrate/test_temp"
else
OUTPUT_DIR="${SCRIPT_DIR}/output"
TEST_DIR="${SCRIPT_DIR}/test_temp"
@ -57,6 +59,10 @@ echo -e "${YELLOW}Running dehydrate tests...${NC}\n"
# Debug output
echo "Looking for dehydrate at: $DEHYDRATE"
echo "Workspace structure:"
ls -la "${GITHUB_WORKSPACE}" 2>/dev/null || echo "Workspace not found"
echo "Dehydrate directory contents:"
ls -la "${GITHUB_WORKSPACE}/dehydrate" 2>/dev/null || echo "Dehydrate directory not found"
echo "Output directory contents:"
ls -la "$OUTPUT_DIR" 2>/dev/null || echo "Output directory not found"
@ -64,6 +70,18 @@ ls -la "$OUTPUT_DIR" 2>/dev/null || echo "Output directory not found"
if [ ! -f "$DEHYDRATE" ]; then
echo -e "${RED}Error: dehydrate binary not found at $DEHYDRATE${NC}"
echo "Please run ./build.sh first to build dehydrate"
if [ -n "${GITEA_CONTAINER_NAME:-}" ]; then
echo "Checking if build directory exists..."
BUILD_DIR="${GITHUB_WORKSPACE}/dehydrate/build"
if [ -d "$BUILD_DIR" ]; then
echo "Build directory exists, checking contents:"
ls -la "$BUILD_DIR"
else
echo "Build directory $BUILD_DIR does not exist"
fi
fi
exit 1
fi

View File

@ -3,7 +3,7 @@ set -euo pipefail
# Get script directory - handle different execution contexts
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
PROJECT="$(basename "$(dirname "${SCRIPT_DIR}")")"
PROJECT="$(basename "${SCRIPT_DIR}")"
# Debug output for CI
echo "${PROJECT} build script running from: ${SCRIPT_DIR}"

View File

@ -1150,6 +1150,85 @@ void show_help() {
std::cout << " ~/.local/bin/getpkg/ Installed tool binaries" << std::endl;
}
int autocomplete_command(int argc, char* argv[]) {
std::vector<std::string> args(argv + 2, argv + argc);
// If no arguments, return all commands
if (args.empty()) {
std::cout << "install\n";
std::cout << "uninstall\n";
std::cout << "publish\n";
std::cout << "unpublish\n";
std::cout << "update\n";
std::cout << "version\n";
std::cout << "create\n";
std::cout << "hash\n";
std::cout << "list\n";
std::cout << "clean\n";
std::cout << "help\n";
return 0;
}
const std::string& subcommand = args[0];
// Handle autocompletion for specific commands
if (subcommand == "install") {
// For install, we could suggest popular packages or recently published ones
// For now, just return empty (no specific completions)
return 0;
} else if (subcommand == "uninstall") {
// For uninstall, list installed tools
std::filesystem::path configDir = std::filesystem::path(std::getenv("HOME")) / ".config" / "getpkg";
if (std::filesystem::exists(configDir)) {
for (const auto& entry : std::filesystem::directory_iterator(configDir)) {
if (entry.path().extension() == ".json") {
std::string toolName = entry.path().stem().string();
std::cout << toolName << "\n";
}
}
}
return 0;
} else if (subcommand == "publish") {
// For publish, suggest architecture suffixes after tool name
if (args.size() >= 2) {
// If we have tool_name already, suggest architectures
std::cout << "x86_64\n";
std::cout << "aarch64\n";
std::cout << "universal\n";
}
return 0;
} else if (subcommand == "unpublish") {
// For unpublish, list installed tools (similar to uninstall)
std::filesystem::path configDir = std::filesystem::path(std::getenv("HOME")) / ".config" / "getpkg";
if (std::filesystem::exists(configDir)) {
for (const auto& entry : std::filesystem::directory_iterator(configDir)) {
if (entry.path().extension() == ".json") {
std::string toolName = entry.path().stem().string();
std::cout << toolName << "\n";
// Also suggest with architecture suffixes
std::cout << toolName << ":x86_64\n";
std::cout << toolName << ":aarch64\n";
std::cout << toolName << ":universal\n";
}
}
}
return 0;
} else if (subcommand == "create") {
// For create, no specific completions (tool name and directory are user-defined)
return 0;
} else if (subcommand == "hash") {
// For hash, suggest file extensions
if (args.size() >= 2) {
std::cout << "*.tgz\n";
std::cout << "*.tar.gz\n";
}
return 0;
}
// No specific completions for other commands
return 0;
}
} // end anonymous namespace
int main(int argc, char* argv[]) {
@ -1169,19 +1248,7 @@ int main(int argc, char* argv[]) {
} else if (command == "update") {
return update_tool(argc, argv);
} else if (command == "autocomplete") {
std::vector<std::string> args(argv + 2, argv + argc);
if (args.empty()) std::cout << R"(install
uninstall
publish
unpublish
update
version
create
hash
list
clean
help
)";
return autocomplete_command(argc, argv);
} else if (command == "version") {
std::cout << dropshell::VERSION << std::endl;
} else if (command == "create") {