mirror of
https://github.com/RetroPie/RetroPie-Setup.git
synced 2025-04-02 10:51:41 -04:00
131 lines
3.8 KiB
Bash
131 lines
3.8 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# This file is part of The RetroPie Project
|
|
#
|
|
# The RetroPie Project is the legal property of its developers, whose names are
|
|
# too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
|
|
#
|
|
# See the LICENSE.md file at the top-level directory of this distribution and
|
|
# at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
|
|
#
|
|
|
|
rp_module_id="mehstation"
|
|
rp_module_desc="mehstation emulator frontend"
|
|
rp_module_licence="MIT https://raw.githubusercontent.com/remeh/mehstation/master/LICENSE"
|
|
rp_module_repo="git https://github.com/remeh/mehstation master"
|
|
rp_module_section="exp"
|
|
rp_module_flags="frontend nobin"
|
|
|
|
function _get_database_mehstation() {
|
|
echo "$configdir/all/mehstation/database.db"
|
|
}
|
|
|
|
function _add_system_mehstation() {
|
|
local db="$(_get_database_mehstation)"
|
|
[[ ! -f "$db" ]] && return 0
|
|
|
|
local fullname="$1"
|
|
local name="$2"
|
|
local path="$3"
|
|
local extensions="$4"
|
|
local command="$5"
|
|
local platform="$6"
|
|
local theme="$7"
|
|
|
|
command="${command//%ROM%/%exec%}"
|
|
extensions="${extensions// /,}"
|
|
NAME="$fullname" COMMAND="$command" DIR="$path" EXTS="$extensions" "/opt/retropie/supplementary/mehstation/bin/mehtadata" -db="$db" -new-platform
|
|
}
|
|
|
|
function _del_system_mehstation() {
|
|
local db="$(_get_database_mehstation)"
|
|
[[ ! -f "$db" ]] && return 0
|
|
|
|
local fullname="$1"
|
|
local name="$2"
|
|
|
|
PLATFORM_NAME="$fullname" "/opt/retropie/supplementary/mehstation/bin/mehtadata" -db="$db" -del-platform
|
|
}
|
|
|
|
function _add_rom_mehstation() {
|
|
local db="$(_get_database_mehstation)"
|
|
[[ ! -f "$db" ]] && return 0
|
|
|
|
local system_name="$1"
|
|
local system_fullname="$2"
|
|
local path="$3"
|
|
local name="$4"
|
|
local desc="$5"
|
|
local image="$6"
|
|
|
|
NAME="$4" FILEPATH="$path" PLATFORM_NAME="$system_fullname" DESCRIPTION="$desc" "/opt/retropie/supplementary/mehstation/bin/mehtadata" -db="$db" -new-exec
|
|
|
|
RESOURCE="$image" FILEPATH="$path" PLATFORM_NAME="$system_fullname" TYPE="cover" "/opt/retropie/supplementary/mehstation/bin/mehtadata" -db="$db" -new-res
|
|
}
|
|
|
|
function depends_mehstation() {
|
|
local depends=(
|
|
cmake automake libfreeimage-dev libopenal-dev libpango1.0-dev
|
|
libsndfile1-dev libudev-dev libasound2-dev libjpeg-dev
|
|
libtiff5-dev libwebp-dev libsqlite3-dev libavutil-dev libavcodec-dev
|
|
libavformat-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev
|
|
libsdl2-image-dev sqlite3 golang
|
|
)
|
|
getDepends "${depends[@]}"
|
|
}
|
|
|
|
function sources_mehstation() {
|
|
gitPullOrClone
|
|
GOPATH="$md_build/mehtadata" go get github.com/remeh/mehtadata
|
|
}
|
|
|
|
function build_mehstation() {
|
|
cd mehtadata
|
|
GOPATH="$md_build/mehtadata" go build
|
|
cd ..
|
|
|
|
cmake .
|
|
make clean
|
|
make
|
|
|
|
md_ret_require=(
|
|
"$md_build/mehstation"
|
|
"$md_build/mehtadata/bin/mehtadata"
|
|
)
|
|
}
|
|
|
|
function install_mehstation() {
|
|
mkdir -p "$md_inst"/{bin,share/mehstation}
|
|
cp mehstation mehtadata/bin/mehtadata "$md_inst/bin/"
|
|
cp -R res "$md_inst/share/"
|
|
}
|
|
|
|
|
|
function configure_mehstation() {
|
|
# move / symlink the configuration
|
|
moveConfigDir "$home/.config/mehstation" "$md_conf_root/all/mehstation"
|
|
|
|
local db="$md_conf_root/all/mehstation/database.db"
|
|
|
|
if [[ ! -f "$db" ]]; then
|
|
local sql
|
|
while read -r sql; do
|
|
sudo -u "$__user" SCHEMA="$sql" "$md_inst/bin/mehtadata" -db="$db" -init
|
|
done < <(find "$md_inst/share/res" -name "*.sql" | sort)
|
|
fi
|
|
|
|
cat >/usr/bin/mehstation <<_EOF_
|
|
#!/bin/bash
|
|
pushd "$md_inst/share" >/dev/null
|
|
"$md_inst/bin/mehstation" "\$@"
|
|
popd
|
|
_EOF_
|
|
chmod +x "/usr/bin/mehstation"
|
|
|
|
local id
|
|
for id in "${__mod_id[@]}"; do
|
|
if rp_isInstalled "$id" && [[ -n "${__mod_info[$id/section]}" ]] && ! hasFlag "${__mod_info[$id/flags]}" "frontend"; then
|
|
rp_callModule "$id" configure
|
|
fi
|
|
done
|
|
}
|