View Raw Ebuild
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_INSTALL_PATH="/usr/share/php/phpcs-variable-analysis"
MY_CODESNIFFER_CONF="/usr/share/php/data/PHP/CodeSniffer/CodeSniffer.conf"
DESCRIPTION="A PHPCS sniff to detect problems with variables."
HOMEPAGE="https://github.com/sirbrillig/phpcs-variable-analysis"
SRC_URI="https://github.com/sirbrillig/phpcs-variable-analysis/archive/refs/tags/v${PV}.tar.gz -> ${PN}-${PV}.tar.gz"
S="${WORKDIR}/phpcs-variable-analysis-${PV}"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
BDEPEND="dev-php/theseer-autoload
dev-php/PHP_CodeSniffer"
RDEPEND="dev-lang/php:*
dev-php/fedora-autoloader
dev-php/PHP_CodeSniffer"
src_prepare() {
default
phpab \
--quiet \
--output autoload.php \
--template fedora2 \
--basedir . \
.\
|| die
}
src_install() {
insinto "${MY_INSTALL_PATH}"
doins -r .
}
pkg_postinst() {
# Create a new path list with current package
local INSTALLED_PATHS="${MY_INSTALL_PATH}"
if [ -f "${MY_CODESNIFFER_CONF}" ]; then
# Get existing paths into array
local EXISTING_PATHS="$(grep 'installed_paths' ${MY_CODESNIFFER_CONF} | awk '{print $3}' | sed 's/^.//' | sed 's/..$//')"
local EXISTING_PATHS_ARRAY=($(echo ${EXISTING_PATHS} | tr "," "\n" ))
# Check if we have the expected value installed already
# Add paths to path list otherwise
for EXISTING_PATH in "${EXISTING_PATHS_ARRAY[@]}"; do
if [ "${EXISTING_PATH}" == "${MY_INSTALL_PATH}" ]; then
echo "Path already intalled to PHPCS"
return 0
fi
INSTALLED_PATHS="${INSTALLED_PATHS},${EXISTING_PATH}"
done
fi
# Install the new list of paths
phpcs --config-set installed_paths "${INSTALLED_PATHS}" || die "Unable to update PHPCS configu"
}
pkg_postrm() {
if [ -f "${MY_CODESNIFFER_CONF}" ]; then
# Get existing paths into array
local EXISTING_PATHS="$(grep 'installed_paths' ${MY_CODESNIFFER_CONF} | awk '{print $3}' | sed 's/^.//' | sed 's/..$//')"
local EXISTING_PATHS_ARRAY=($(echo ${EXISTING_PATHS} | tr "," "\n" ))
# Create a new empty path list
local INSTALLED_PATHS=""
# Add any path that except this package
for EXISTING_PATH in "${EXISTING_PATHS_ARRAY[@]}"; do
if [ "${EXISTING_PATH}" != "${MY_INSTALL_PATH}" ]; then
if [ -z "${INSTALLED_PATHS}" ]; then
INSTALLED_PATHS="${EXISTING_PATH}"
else
INSTALLED_PATHS="${INSTALLED_PATHS},${EXISTING_PATH}"
fi
fi
done
if [ -n "${INSTALLED_PATHS}" ]; then
# Install the new list of paths
phpcs --config-set installed_paths ${INSTALLED_PATHS} || die "Unable to update PHPCS configu"
else
# Delete config
rm "${MY_CODESNIFFER_CONF}"
fi
fi
}