34 lines
878 B
Bash
Executable File
34 lines
878 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# GoldenChart Desktop 설치 파일명 ↔ semver 일치 검사 (부분 문자열 오매칭 방지)
|
|
set -euo pipefail
|
|
|
|
desktop_installer_matches_version() {
|
|
local file_name="$1"
|
|
local version="$2"
|
|
[[ -n "$file_name" && -n "$version" ]] || return 1
|
|
local escaped="${version//./\\.}"
|
|
[[ "$file_name" =~ GoldenChart[_-]${escaped}([_.-]|\.(dmg|exe)$) ]]
|
|
}
|
|
|
|
desktop_extract_version_from_name() {
|
|
local file_name="$1"
|
|
if [[ "$file_name" =~ GoldenChart[_-]([0-9]+\.[0-9]+\.[0-9]+) ]]; then
|
|
echo "${BASH_REMATCH[1]}"
|
|
fi
|
|
}
|
|
|
|
if [[ "${BASH_SOURCE[0]:-}" == "${0:-}" ]]; then
|
|
case "${1:-}" in
|
|
match)
|
|
desktop_installer_matches_version "${2:-}" "${3:-}"
|
|
;;
|
|
extract)
|
|
desktop_extract_version_from_name "${2:-}"
|
|
;;
|
|
*)
|
|
echo "Usage: $0 match <file> <version> | extract <file>" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|