moved to gitea

This commit is contained in:
2026-04-05 15:09:32 -05:00
parent 2bb4c6fe2c
commit 3745d459a3
42 changed files with 5038 additions and 6 deletions

View File

@@ -0,0 +1,89 @@
#!/bin/sh
# shmake_library.sh - External library addition for shmake
# Author: Emilia Marigold - 2026
download_library()
{
check_project_root
if [ $# -lt 1 ]; then
printf "Usage: %s library [url]\n" "$SCRIPT_NAME"
exit 1
fi
LIBRARY_URL="$1"
LIBRARY_DIR="external_code/shared_libraries/source_code"
printf "Adding library from '%s' to %s...\n" "$LIBRARY_URL" "$LIBRARY_DIR"
LIBRARY_NAME=$(printf "%s" "$LIBRARY_URL" | sed 's|.*/||' | sed 's|.git$||')
if [ -d "$LIBRARY_DIR/$LIBRARY_NAME" ]; then
printf "Warning: '%s' already exists in %s\n" "$LIBRARY_NAME" "$LIBRARY_DIR"
printf "Overwrite? [y/N]: "
read -r overwrite
case "$overwrite" in
y|Y)
rm -rf "$LIBRARY_DIR/$LIBRARY_NAME"
;;
*)
printf "Aborted.\n" && exit 0
;;
esac
fi
case "$LIBRARY_URL" in
*.git)
printf "Detected Git repository. Using git clone (shallow)...\n"
if command -v git >/dev/null 2>&1; then
mkdir -p "$LIBRARY_DIR"
git clone "$LIBRARY_URL" "$LIBRARY_DIR/$LIBRARY_NAME"
if [ $? -eq 0 ]; then
printf "Library '%s' cloned successfully!\n" "$LIBRARY_NAME"
printf "%s\n" "$LIBRARY_URL" >> "shmake_config/project_external_libraries.config"
else
printf "Error: Git clone failed.\n"
exit 1
fi
else
printf "Error: 'git' not found. Please install git.\n"
exit 1
fi
;;
*)
printf "Detected file download. Trying wget/curl...\n"
if command -v wget >/dev/null 2>&1; then
printf "Using wget...\n"
mkdir -p "$LIBRARY_DIR"
wget "$LIBRARY_URL" -O "$LIBRARY_DIR/${LIBRARY_NAME}.tar.gz" 2>/dev/null
if [ $? -eq 0 ]; then
tar -xzf "$LIBRARY_DIR/${LIBRARY_NAME}.tar.gz" -C "$LIBRARY_DIR" 2>/dev/null
rm "$LIBRARY_DIR/${LIBRARY_NAME}.tar.gz"
printf "Library '%s' downloaded successfully!\n" "$LIBRARY_NAME"
printf "%s\n" "$LIBRARY_URL" >> "shmake_config/project_external_libraries.config"
else
printf "Error: wget download failed.\n"
exit 1
fi
elif command -v curl >/dev/null 2>&1; then
printf "Using curl...\n"
mkdir -p "$LIBRARY_DIR"
curl -L "$LIBRARY_URL" -o "$LIBRARY_DIR/${LIBRARY_NAME}.tar.gz" 2>/dev/null
if [ $? -eq 0 ]; then
tar -xzf "$LIBRARY_DIR/${LIBRARY_NAME}.tar.gz" -C "$LIBRARY_DIR" 2>/dev/null
rm "$LIBRARY_DIR/${LIBRARY_NAME}.tar.gz"
printf "Library '%s' downloaded successfully!\n" "$LIBRARY_NAME"
printf "%s\n" "$LIBRARY_URL" >> "shmake_config/project_external_libraries.config"
else
printf "Error: curl download failed.\n"
exit 1
fi
else
printf "Error: Neither 'wget' nor 'curl' found. Please install one.\n"
exit 1
fi
;;
esac
}