mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-10 07:33:19 -04:00
www-apps/code-server-bin: add OpenRC init script
Closes: https://bugs.gentoo.org/907847 Signed-off-by: Leonardo Hernández Hernández <leohdz172@proton.me>
This commit is contained in:
105
www-apps/code-server-bin/code-server-bin-4.13.0-r1.ebuild
Normal file
105
www-apps/code-server-bin/code-server-bin-4.13.0-r1.ebuild
Normal file
@@ -0,0 +1,105 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MY_PN="${PN/-bin/}"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
BASE_URI="https://github.com/coder/${MY_PN}/releases/download/v${PV}/${MY_P}-linux"
|
||||
|
||||
inherit systemd
|
||||
|
||||
DESCRIPTION="VS Code in the browser (binary version with unbundled node and ripgrep)"
|
||||
HOMEPAGE="https://coder.com/"
|
||||
SRC_URI="
|
||||
amd64? ( ${BASE_URI}-amd64.tar.gz )
|
||||
arm64? ( ${BASE_URI}-arm64.tar.gz )
|
||||
"
|
||||
RESTRICT="test"
|
||||
LICENSE="MIT 0BSD ISC PYTHON BSD-2 BSD Apache-2.0 Unlicense LGPL-2.1+
|
||||
|| ( BSD-2 MIT Apache-2.0 )
|
||||
|| ( MIT WTFPL )
|
||||
|| ( BSD GPL-2 )
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64"
|
||||
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
>=net-libs/nodejs-16.0.0[ssl]
|
||||
sys-apps/ripgrep
|
||||
app-crypt/libsecret
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${MY_P}-linux-${ARCH}"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-node.patch" )
|
||||
|
||||
DOCS=( "LICENSE" "README.md" "ThirdPartyNotices.txt" )
|
||||
|
||||
QA_PREBUILT="*"
|
||||
|
||||
# Relative
|
||||
VSCODE_MODULES="lib/vscode/node_modules"
|
||||
|
||||
QA_PRESTRIPPED="
|
||||
opt/${PN}/node_modules/@node-rs/argon2-linux-x64-musl/argon2.linux-x64-musl.node
|
||||
opt/${PN}/${VSCODE_MODULES}/@parcel/watcher/prebuilds/linux-x64/node.napi.musl.node
|
||||
opt/${PN}/${VSCODE_MODULES}/@parcel/watcher/prebuilds/linux-x64/node.napi.glibc.node
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# We remove as much precompiled code as we can,
|
||||
# node modules not written in JS cannot be removed
|
||||
# thus "-bin".
|
||||
|
||||
# use system node
|
||||
rm ./lib/node || die "Failed to remove bundled nodejs"
|
||||
|
||||
# remove bundled ripgrep binary
|
||||
rm ./"${VSCODE_MODULES}"/@vscode/ripgrep/bin/rg \
|
||||
|| die "Failed to remove bundled ripgrep"
|
||||
|
||||
# Only required at build time
|
||||
find "${S}" -type l -name python3 -delete || die
|
||||
|
||||
# not needed
|
||||
rm ./postinstall.sh || die
|
||||
|
||||
# For windows
|
||||
rm -r ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/win32-x64 || die
|
||||
|
||||
if [[ $ELIBC != "musl" ]]; then
|
||||
rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/linux-x64/node.napi.musl.node || die
|
||||
elif [[ $ELIBC != "glibc" ]]; then
|
||||
rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/linux-x64/node.napi.glibc.node || die
|
||||
rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/darwin-x64/node.napi.glibc.node || die
|
||||
rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/darwin-arm64/node.napi.glibc.node || die
|
||||
fi
|
||||
|
||||
rm -r ./lib/vscode/extensions/node_modules/.bin || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
einstalldocs
|
||||
|
||||
insinto "/opt/${PN}"
|
||||
doins -r .
|
||||
fperms +x "/opt/${PN}/bin/${MY_PN}"
|
||||
dosym -r "/opt/${PN}/bin/${MY_PN}" "/opt/${PN}/bin/${PN}"
|
||||
dosym -r "/opt/${PN}/bin/${PN}" "${EPREFIX}/usr/bin/${PN}"
|
||||
|
||||
dosym -r "/usr/bin/rg" \
|
||||
"${EPREFIX}/opt/${PN}/${VSCODE_MODULES}/@vscode/ripgrep/bin/rg"
|
||||
|
||||
systemd_douserunit "${FILESDIR}/${PN}.service"
|
||||
newinitd "${FILESDIR}/${PN}.rc" "${PN}"
|
||||
newconfd "${FILESDIR}/${PN}.conf" "${PN}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "When using code-server systemd service run it as a user"
|
||||
elog "For example: 'systemctl --user enable --now code-server'"
|
||||
}
|
||||
13
www-apps/code-server-bin/files/code-server-bin.conf
Normal file
13
www-apps/code-server-bin/files/code-server-bin.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
# /etc/conf.d/code-server-bin: config file for /etc/init.d/code-server-bin.<user>
|
||||
# This can also be used as multiplexed configuration, i.e. openrc-run
|
||||
# looks for both /etc/conf.d/code-server-bin and /etc/conf.d/code-server-bin.<user>.
|
||||
|
||||
# Options to pass to code-server-bin.
|
||||
# NOTE: if you want to run multiple instances, be make sure to change
|
||||
# the port for each one (it is preferred to use the configuration file).
|
||||
#command_args="--port 8080"
|
||||
|
||||
# Specify the network service that corresponds to the "bind-addr" setting
|
||||
# in your configuration file. For example, if you bind to 127.0.0.1,
|
||||
# this should be set to "loopback" which provides the loopback interface.
|
||||
rc_need="loopback"
|
||||
47
www-apps/code-server-bin/files/code-server-bin.rc
Normal file
47
www-apps/code-server-bin/files/code-server-bin.rc
Normal file
@@ -0,0 +1,47 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 2023 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2 or later
|
||||
|
||||
NAME=${RC_SVCNAME%%.*}
|
||||
USER=${RC_SVCNAME##*.}
|
||||
PIDFILE_DIR=/run/${NAME}/${USER}
|
||||
|
||||
description="Start code server in the background"
|
||||
command="/usr/bin/${NAME}"
|
||||
command_user="${USER}"
|
||||
pidfile="${PIDFILE_DIR}/${NAME}.pid"
|
||||
command_background=true
|
||||
|
||||
depend() {
|
||||
use logger dns
|
||||
}
|
||||
|
||||
checkconfig() {
|
||||
if [ "${RC_VERSION:-0}" = "0" ]; then
|
||||
eerror "This script cannot be used for baselayout-1."
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ "${USER}" = "${RC_SVCNAME}" ]; then
|
||||
eerror "You have to create an init script for each user:"
|
||||
eerror "ln -s emacs /etc/init.d/emacs.<user>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! id -u "${USER}" >/dev/null; then
|
||||
eerror "${USER}: No such user"
|
||||
return 1
|
||||
fi
|
||||
|
||||
checkpath -d --owner 0 --mode 0755 "${PIDFILE_DIR%/*}"
|
||||
checkpath -d --owner "${USER}" --mode 0755 "${PIDFILE_DIR}"
|
||||
}
|
||||
|
||||
start() {
|
||||
local home
|
||||
checkconfig || return 1
|
||||
|
||||
eval home="~${USER}"
|
||||
|
||||
default_start
|
||||
}
|
||||
Reference in New Issue
Block a user