feature: add version command and check-update

This commit is contained in:
2025-07-22 01:40:54 -07:00
parent 7c54475771
commit ebb92ea7f0

42
mc
View File

@@ -1,6 +1,11 @@
#!/usr/bin/env bash
args=("$@")
CYAN="\033[1;96m"
RED="\033[0;91m"
GREEN="\033[0;92m"
RESET='\033[0m'
readonly base_url="https://api.my-mc.link/"
readonly headers=( -H "Accept: application/json" -H "Content-Type: application/json" -H "x-my-mc-auth: ${MY_MC_API_KEY}" )
@@ -39,8 +44,45 @@ declare -rA commands=(
[mod-list]='mod-list GET'
[backup]='backup FUNC'
[connect]='connect FUNC'
[check-update]='check_update FUNC'
[version]='version FUNC'
)
function version() {
local message="$(mc console version | jq -r '.message')"
if [[ $message =~ ([0-9]+\.[0-9]+\.[0-9]+) ]]; then
local version="${BASH_REMATCH[0]}"
fi
echo "$version"
}
function check_update() {
local version="${1:-$(version)}"
local url_base="$(mc website | jq -r '.message')"
local mods="$(curl -sS ${url_base}/mods.json | jq -c '.'))"
local -a result=("MOD\tID\tAVAILABLE\n")
local item id name latest available has_version available_versions
while read -r item; do
name="$(jq -r '.name' <<<"$item")"
id="$(jq -r '.id' <<<"$item")"
available_versions="$(curl -sS -X GET "https://api.modrinth.com/v2/project/$id" | jq -r '.game_versions')"
has_version="$(jq "contains([\"$version\"])" <<<"$available_versions")"
if [[ "$has_version" == "true" ]]; then
available="${GREEN}true${RESET}";
else
available="${RED}false${RESET}";
fi
result+=("$name\t$id\t$available\n")
done < <(jq -c '.[]' <<<"$mods")
echo -e "${result[*]}" | column -t -s $'\t'
}
function connect() {
if [[ ! $(which docker) ]]; then echo "docker is required"; exit 1; fi
docker run --rm \