Initial commit
This commit is contained in:
commit
325f0477ad
7 changed files with 276 additions and 0 deletions
36
.SRCINFO
Normal file
36
.SRCINFO
Normal file
|
@ -0,0 +1,36 @@
|
|||
pkgbase = karaokemugen
|
||||
pkgdesc = Karaoke playlist manager/player app used in parties or events.
|
||||
pkgver = 3.2.2
|
||||
pkgrel = 1
|
||||
url = https://mugen.karaokes.moe/
|
||||
install = karaokemugen.install
|
||||
arch = any
|
||||
license = MIT
|
||||
makedepends = git
|
||||
makedepends = npm
|
||||
makedepends = typescript
|
||||
makedepends = yarn
|
||||
makedepends = nodejs>=12
|
||||
makedepends = python2
|
||||
depends = mpv
|
||||
depends = ffmpeg
|
||||
depends = postgresql
|
||||
depends = electron
|
||||
optdepends = sudo: for using karaokemugen-install script
|
||||
provides = karaokemugen
|
||||
conflicts = karaokemugen
|
||||
source = karaokemugen::git+https://lab.shelter.moe/karaokemugen/karaokemugen-app.git#tag=v3.2.2
|
||||
source = karaokemugen-lib::git+https://lab.shelter.moe/karaokemugen/lib.git
|
||||
source = install.sh
|
||||
source = run.sh
|
||||
source = icon256.png
|
||||
source = karaokemugen.desktop
|
||||
md5sums = SKIP
|
||||
md5sums = SKIP
|
||||
md5sums = 4ad5390b139dc5b5e78e6eef8411e90b
|
||||
md5sums = 0d0d432f35c56a962f9d386f391c6036
|
||||
md5sums = 5e9a33a42fef7572b7e0fa504c586f32
|
||||
md5sums = 10561eed906a5efeed427f90501b4f49
|
||||
|
||||
pkgname = karaokemugen
|
||||
|
86
PKGBUILD
Normal file
86
PKGBUILD
Normal file
|
@ -0,0 +1,86 @@
|
|||
# Maintainer: leonekmi <usingarchbtw@leonekmi.fr>
|
||||
pkgname=karaokemugen
|
||||
pkgver=3.2.2
|
||||
pkgrel=1
|
||||
pkgdesc="Karaoke playlist manager/player app used in parties or events."
|
||||
arch=('any')
|
||||
url="https://mugen.karaokes.moe/"
|
||||
license=('MIT')
|
||||
groups=()
|
||||
depends=('mpv' 'ffmpeg' 'postgresql' 'electron') # Warning : to be replaced with electron8 when Electron 9 will be pushed to [community]
|
||||
makedepends=('git' 'npm' 'typescript' 'yarn' 'nodejs>=12' 'python2')
|
||||
optdepends=('sudo: for using karaokemugen-install script')
|
||||
provides=("${pkgname%-git}")
|
||||
conflicts=("${pkgname%-git}")
|
||||
replaces=()
|
||||
backup=()
|
||||
options=()
|
||||
install=${pkgname%-git}.install
|
||||
source=('karaokemugen::git+https://lab.shelter.moe/karaokemugen/karaokemugen-app.git#tag=v3.2.2'
|
||||
'karaokemugen-lib::git+https://lab.shelter.moe/karaokemugen/lib.git'
|
||||
'install.sh'
|
||||
'run.sh'
|
||||
'icon256.png'
|
||||
'karaokemugen.desktop')
|
||||
noextract=()
|
||||
md5sums=('SKIP'
|
||||
'SKIP'
|
||||
'4ad5390b139dc5b5e78e6eef8411e90b'
|
||||
'0d0d432f35c56a962f9d386f391c6036'
|
||||
'5e9a33a42fef7572b7e0fa504c586f32'
|
||||
'10561eed906a5efeed427f90501b4f49')
|
||||
|
||||
prepare() {
|
||||
cd "$srcdir/${pkgname}"
|
||||
git submodule init
|
||||
git config submodule.src/lib.url $srcdir/${pkgname}-lib
|
||||
git submodule update
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$srcdir/${pkgname}"
|
||||
|
||||
# Prepare dependencies
|
||||
export HOME="$srcdir/$pkgname-home"
|
||||
export XDG_CACHE_HOME="$srcdir/$pkgname-cache"
|
||||
export npm_config_devdir="$srcdir/$pkgname-npm-dev"
|
||||
export npm_config_cache="$srcdir/$pkgname-npm-cache"
|
||||
yarn global add electron-builder
|
||||
yarn install
|
||||
yarn installFrontend
|
||||
yarn installSystemPanel
|
||||
# Build and package with electron-builder
|
||||
export NODE_ENV='production'
|
||||
electronDist=$(dirname $(realpath $(which electron)))
|
||||
electronVer=$(electron --version | tail -c +2)
|
||||
yarn build
|
||||
yarn buildFrontend
|
||||
yarn buildSystemPanel
|
||||
"$(yarn global dir)/node_modules/.bin/electron-builder" --linux --x64 -c.electronDist=$electronDist -c.electronVersion=$electronVer --dir
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir/${pkgname}"
|
||||
|
||||
# Application itself
|
||||
install -dm755 "$pkgdir/usr/lib/${pkgname}"
|
||||
cp -dr --no-preserve=ownership packages/linux-unpacked/resources/* "$pkgdir/usr/lib/${pkgname}/"
|
||||
install -dm 755 "$pkgdir/usr/lib/${pkgname}/asar"
|
||||
mv "$pkgdir/usr/lib/${pkgname}/app.asar" "$pkgdir/usr/lib/${pkgname}/asar"
|
||||
chmod -R 755 "$pkgdir/usr/lib/${pkgname}/"
|
||||
|
||||
# License
|
||||
install -dm755 "$pkgdir/usr/share/licenses/${pkgname}"
|
||||
install -m644 LICENSE.md "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
|
||||
|
||||
# Runtimes
|
||||
install -dm755 "$pkgdir/usr/bin/"
|
||||
install -m755 "$srcdir/run.sh" "$pkgdir/usr/bin/karaokemugen"
|
||||
install -m755 "$srcdir/install.sh" "$pkgdir/usr/bin/karaokemugen-install"
|
||||
|
||||
# .desktop entry
|
||||
install -dm755 "$pkgdir/usr/share/pixmaps/"
|
||||
install -dm755 "$pkgdir/usr/share/applications/"
|
||||
install -m644 "$srcdir/icon256.png" "$pkgdir/usr/share/pixmaps/${pkgname}.png"
|
||||
install -m644 "$srcdir/${pkgname}.desktop" "$pkgdir/usr/share/applications/${pkgname}.desktop"
|
||||
}
|
BIN
icon256.png
Normal file
BIN
icon256.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
102
install.sh
Executable file
102
install.sh
Executable file
|
@ -0,0 +1,102 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# _ __ _ __ __
|
||||
# | |/ /__ _ _ _ __ _ ___| |_____ | \/ |_ _ __ _ ___ _ _
|
||||
# | ' </ _` | '_/ _` / _ \ / / -_) | |\/| | || / _` / -_) ' \
|
||||
# |_|\_\__,_|_| \__,_\___/_\_\___| |_| |_|\_,_\__, \___|_||_|
|
||||
# |___/
|
||||
|
||||
# This script creates the database and do some checks to make
|
||||
# Karaoke Mugen App working.
|
||||
# From AUR package karaokemugen-git
|
||||
|
||||
check_postgres() {
|
||||
sudo -u postgres -g postgres pg_ctl status -D /var/lib/postgres/data &> /dev/null
|
||||
EXIT_STATUS=$?
|
||||
if [ $EXIT_STATUS -eq 4 ]; then
|
||||
echo -e "${_COL_YELLOW_}Postgres is not initialized, initializing..."
|
||||
sudo -H -u postgres -g postgres initdb -D /var/lib/postgres/data
|
||||
check_postgres
|
||||
elif [ $EXIT_STATUS -eq 3 ]; then
|
||||
echo -e "${_COL_YELLOW_}Postgres is not running, starting..."
|
||||
sudo systemctl restart postgresql
|
||||
check_postgres
|
||||
else
|
||||
echo -e "${_COL_GREEN_}Postgres seems OK."
|
||||
fi
|
||||
}
|
||||
|
||||
check_mugen() {
|
||||
if [ -f "/opt/karaokemugen/karaokemugen" ]; then
|
||||
echo -e "${_COL_GREEN_}Karaoke Mugen is installed in /opt/karaokemugen."
|
||||
else
|
||||
echo -e "${_COL_BRED_}Karaoke Mugen is not installed in /opt/karaokemugen. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
setup_postgres() {
|
||||
echo -e "${_BEGIN_}Creating the karaokemugen_app database..."
|
||||
# Create the DB for Mugen
|
||||
# Check if the DB already exists
|
||||
sudo -u postgres -g postgres -H -- psql -d karaokemugen_app -c ""
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${_COL_YELLOW_}karaokemugen_app database is existing, do you want to keep its content or reset it?"
|
||||
select dbch in "Keep data" "Reset database"; do
|
||||
case $dbch in
|
||||
"Keep data" ) echo -e "${_COL_GREEN_}karaokemugen_app database will be used." ; return 0;; # TODO : maybe do some integrity checks
|
||||
"Reset database" ) sudo -u postgres -g postgres -H -- psql -c "DROP DATABASE karaokemugen_app;"; sudo -u postgres -g postgres -H -- psql -c "DROP ROLE IF EXISTS karaokemugen_app;";;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
# Creating the database
|
||||
sudo -u postgres -g postgres -H -- psql -c "CREATE DATABASE karaokemugen_app ENCODING 'UTF8';"
|
||||
sudo -u postgres -g postgres -H -- psql -c "CREATE USER karaokemugen_app WITH ENCRYPTED PASSWORD 'musubi'; GRANT ALL PRIVILEGES ON DATABASE karaokemugen_app TO karaokemugen_app;"
|
||||
sudo -u postgres -g postgres -H -- psql -d karaokemugen_app -c "CREATE EXTENSION unaccent;"
|
||||
echo -e "${_COL_GREEN_}karaokemugen_app database created!"
|
||||
}
|
||||
|
||||
# use colors only if we have them
|
||||
if [[ $(which tput > /dev/null 2>&1 && tput -T "${TERM}" colors || echo -n '0') -ge 8 ]] ; then
|
||||
_COL_YELLOW_='\e[0;33m'
|
||||
_COL_GREEN_='\e[0;32m'
|
||||
_COL_LIGHTGREY_='\e[0;37m'
|
||||
_COL_BRED_='\e[1;31m'
|
||||
_COL_BBLUE_='\e[1;34m'
|
||||
_COL_BWHITE_='\e[1;37m'
|
||||
_COL_DEFAULT_='\e[0m'
|
||||
_BEGIN_="${_COL_BRED_}-> ${_COL_BBLUE_}"
|
||||
fi
|
||||
|
||||
while getopts ":g" opt; do
|
||||
case ${opt} in
|
||||
g )
|
||||
#target=$OPTARG
|
||||
echo -e "${_COL_YELLOW_}You may have to enter your sudo password"
|
||||
add_user_to_group
|
||||
echo -e "${_BEGIN_}Done! You need to restart your session to apply these changes."
|
||||
exit 0
|
||||
;;
|
||||
\? )
|
||||
echo "Invalid option: $OPTARG" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND -1))
|
||||
|
||||
echo -e "${_BEGIN_}Welcome to the Karaoke Mugen installer!"
|
||||
echo -e "${_COL_YELLOW_}⚠️ You may have to enter your sudo password a couple times during this installation."
|
||||
echo -e "${_COL_YELLOW_}This script may not work if you tweaked your PostgreSQL configuration."
|
||||
echo -e "${_COL_YELLOW_}If you encounter any problems during installation, contact the package maintainer."
|
||||
echo -e "${_COL_YELLOW_}The installation will begin in 5 seconds."
|
||||
sleep 5
|
||||
|
||||
echo -e "${_BEGIN_}Doing some initial checks..."
|
||||
check_postgres
|
||||
check_mugen
|
||||
|
||||
setup_postgres
|
||||
|
||||
echo -e "${_BEGIN_}Done! Go ahead and launch Karaoke Mugen using the desktop entry"
|
||||
|
10
karaokemugen.desktop
Normal file
10
karaokemugen.desktop
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Version=1.0
|
||||
Name=Karaoke Mugen
|
||||
Comment=Karaoke playlist manager/player app used in parties or events.
|
||||
Exec=karaokemugen
|
||||
Icon=karaokemugen
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=AudioVideo;Video
|
14
karaokemugen.install
Normal file
14
karaokemugen.install
Normal file
|
@ -0,0 +1,14 @@
|
|||
post_install() {
|
||||
echo "TIP: This package ships with tools to help you with Karaoke Mugen installation"
|
||||
echo "- karaokemugen-install interactively creates the initial configuration and helps you with database setup."
|
||||
echo "- karaokemugen launches the app with Electron UI."
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
echo "You may need to run karaokemugen-install again. Keep that in mind."
|
||||
}
|
||||
|
||||
post_remove() {
|
||||
echo "The media files downloaded are still in the directory you set (~/KaraokeMugen/ by default)."
|
||||
echo "Delete them to free space if you want."
|
||||
}
|
28
run.sh
Executable file
28
run.sh
Executable file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# _ __ _ __ __
|
||||
# | |/ /__ _ _ _ __ _ ___| |_____ | \/ |_ _ __ _ ___ _ _
|
||||
# | ' </ _` | '_/ _` / _ \ / / -_) | |\/| | || / _` / -_) ' \
|
||||
# |_|\_\__,_|_| \__,_\___/_\_\___| |_| |_|\_,_\__, \___|_||_|
|
||||
# |___/
|
||||
|
||||
# This script runs Karaoke Mugen app (with some check to avoid some disasters)
|
||||
# From AUR package karaokemugen-git
|
||||
|
||||
# use colors only if we have them
|
||||
if [[ $(which tput > /dev/null 2>&1 && tput -T "${TERM}" colors || echo -n '0') -ge 8 ]] ; then
|
||||
_COL_YELLOW_='\e[0;33m'
|
||||
_COL_BLUE_='\e[0;34m'
|
||||
_COL_DEFAULT_='\e[0m'
|
||||
fi
|
||||
|
||||
# Check if postgres is running
|
||||
if systemctl is-active postgresql -q ; then
|
||||
echo "Starting Karaoke Mugen..."
|
||||
else
|
||||
echo -e "${_COL_YELLOW_}⚠️ Postgres seems down... Trying to start PostgreSQL before Karaoke Mugen.${_COL_DEFAULT_}"
|
||||
echo -e "${_COL_BLUE_}You may want to start PostgreSQL at boot with `systemctl enable postgresql`.${_COL_DEFAULT_}"
|
||||
systemctl start postgresql
|
||||
fi
|
||||
# Launch Karaoke Mugen
|
||||
exec electron /usr/lib/karaokemugen/asar/app.asar "$@"
|
Loading…
Reference in a new issue