commit 41190dcb5da11d0671e98bcbce4b118b87615208
parent 0b3475f951233e6e37bc56126fcd710b0ff0f193
Author: finwo <finwo@pm.me>
Date: Sat, 27 Apr 2024 20:12:13 +0200
Fixed bug destroying exports of already-installed packages during consecutive runs
Diffstat:
| M | dist/dep | | | 96 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
| M | src/command/install/index.sh | | | 100 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
2 files changed, 98 insertions(+), 98 deletions(-)
diff --git a/dist/dep b/dist/dep
@@ -334,11 +334,6 @@ function cmd_install_dep {
local PKGNAME=$1
local PKGVER=$2
- # Skip if already installed
- if [ -d "${CMD_INSTALL_PKG_DEST}/${PKGNAME}" ]; then
- return 0
- fi
-
# Fetch versioned ini
local PKGINIB="${HOME}/.config/finwo/dep/packages/${PKGNAME}/package.ini"
local PKGINIV="${HOME}/.config/finwo/dep/packages/${PKGNAME}/${PKGVER}/package.ini"
@@ -357,55 +352,60 @@ function cmd_install_dep {
cp -r "${PKG_SRC}" "${PKG_DIR}"
local PKGINI="${PKG_DIR}/package.ini"
- # Extended fetching detection
- local PKG_GH=$(ini_foreach ini_output_value "${PKGINI}" "repository.github")
- local PKG_TARBALL=$(ini_foreach ini_output_value "${PKGINI}" "package.src")
-
- # Fetch target tarball from github repo
- if [ ! -z "${PKG_GH}" ]; then
- URL_TAG="https://codeload.github.com/${PKG_GH}/tar.gz/refs/tags/${PKGVER}"
- URL_BRANCH="https://codeload.github.com/${PKG_GH}/tar.gz/refs/heads/${PKGVER}"
- CODE_TAG=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_TAG}" 2>/dev/null | head -1 | awk '{print $2}')
- CODE_BRANCH=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_BRANCH}" 2>/dev/null | head -1 | awk '{print $2}')
- if [ "${CODE_TAG}" == "200" ]; then
- PKG_TARBALL="${URL_TAG}"
- elif [ "${CODE_BRANCH}" == "200" ]; then
- PKG_TARBALL="${URL_BRANCH}"
+ # Skip if already installed
+ if [ ! -d "${CMD_INSTALL_PKG_DEST}/${PKGNAME}" ]; then
+
+ # Extended fetching detection
+ local PKG_GH=$(ini_foreach ini_output_value "${PKGINI}" "repository.github")
+ local PKG_TARBALL=$(ini_foreach ini_output_value "${PKGINI}" "package.src")
+
+ # Fetch target tarball from github repo
+ if [ ! -z "${PKG_GH}" ]; then
+ URL_TAG="https://codeload.github.com/${PKG_GH}/tar.gz/refs/tags/${PKGVER}"
+ URL_BRANCH="https://codeload.github.com/${PKG_GH}/tar.gz/refs/heads/${PKGVER}"
+ CODE_TAG=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_TAG}" 2>/dev/null | head -1 | awk '{print $2}')
+ CODE_BRANCH=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_BRANCH}" 2>/dev/null | head -1 | awk '{print $2}')
+ if [ "${CODE_TAG}" == "200" ]; then
+ PKG_TARBALL="${URL_TAG}"
+ elif [ "${CODE_BRANCH}" == "200" ]; then
+ PKG_TARBALL="${URL_BRANCH}"
+ fi
fi
- fi
- # Fetch configured or detected tarball
- if [ ! -z "${PKG_TARBALL}" ]; then
- # Downloads a tarball and extracts if over the package in our dependency directory
- # TARBALL_FILE="${HOME}/.config/finwo/dep/cache/${PKGNAME}/${PKGVER}.tar.gz"
- TARBALL_FILE="${CMD_INSTALL_PKG_DEST}/.dep/cache/${PKGNAME}/${PKGVER}.tar.gz"
- mkdir -p "$(dirname "${TARBALL_FILE}")"
- if [ ! -f "${TARBALL_FILE}" ]; then
- curl --location --progress-bar "${PKG_TARBALL}" --output "${TARBALL_FILE}"
+ # Fetch configured or detected tarball
+ if [ ! -z "${PKG_TARBALL}" ]; then
+ # Downloads a tarball and extracts if over the package in our dependency directory
+ # TARBALL_FILE="${HOME}/.config/finwo/dep/cache/${PKGNAME}/${PKGVER}.tar.gz"
+ TARBALL_FILE="${CMD_INSTALL_PKG_DEST}/.dep/cache/${PKGNAME}/${PKGVER}.tar.gz"
+ mkdir -p "$(dirname "${TARBALL_FILE}")"
+ if [ ! -f "${TARBALL_FILE}" ]; then
+ curl --location --progress-bar "${PKG_TARBALL}" --output "${TARBALL_FILE}"
+ fi
+ tar --extract --directory "${PKG_DIR}/" --strip-components 1 --file="${TARBALL_FILE}"
fi
- tar --extract --directory "${PKG_DIR}/" --strip-components 1 --file="${TARBALL_FILE}"
- fi
- # Handle any global build-steps defined in the package.ini
- while read line; do
- depname=${line%%=*}
- depver=${line#*=}
- cmd_install_dep "$depname" "$depver"
- done < <(ini_foreach ini_output_section "${PKGINI}" "dependencies." | sort --human-numeric-sort)
+ # Handle any global build-steps defined in the package.ini
+ while read line; do
+ depname=${line%%=*}
+ depver=${line#*=}
+ cmd_install_dep "$depname" "$depver"
+ done < <(ini_foreach ini_output_section "${PKGINI}" "dependencies." | sort --human-numeric-sort)
- # Handle any global build-steps defined in the package.ini
- while read line; do
- buildcmd=${line#*=}
- echo + $buildcmd
- bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
- done < <(ini_foreach ini_output_section "${PKGINI}" "build." | sort --human-numeric-sort)
+ # Handle any global build-steps defined in the package.ini
+ while read line; do
+ buildcmd=${line#*=}
+ echo + $buildcmd
+ bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
+ done < <(ini_foreach ini_output_section "${PKGINI}" "build." | sort --human-numeric-sort)
- # Handle any os-generic build-steps defined in the package.ini
- while read line; do
- buildcmd=${line#*=}
- echo + $buildcmd
- bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
- done < <(ini_foreach ini_output_section "${PKGINI}" "build-$(ostype)." | sort --human-numeric-sort)
+ # Handle any os-generic build-steps defined in the package.ini
+ while read line; do
+ buildcmd=${line#*=}
+ echo + $buildcmd
+ bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
+ done < <(ini_foreach ini_output_section "${PKGINI}" "build-$(ostype)." | sort --human-numeric-sort)
+
+ fi
# Build the package's exports
if ! grep "${PKGNAME}" "${CMD_INSTALL_PKG_DEST}/.dep/exported" &>/dev/null ; then
diff --git a/src/command/install/index.sh b/src/command/install/index.sh
@@ -83,11 +83,6 @@ function cmd_install_dep {
local PKGNAME=$1
local PKGVER=$2
- # Skip if already installed
- if [ -d "${CMD_INSTALL_PKG_DEST}/${PKGNAME}" ]; then
- return 0
- fi
-
# Fetch versioned ini
local PKGINIB="${HOME}/.config/finwo/__NAME/packages/${PKGNAME}/package.ini"
local PKGINIV="${HOME}/.config/finwo/__NAME/packages/${PKGNAME}/${PKGVER}/package.ini"
@@ -106,55 +101,60 @@ function cmd_install_dep {
cp -r "${PKG_SRC}" "${PKG_DIR}"
local PKGINI="${PKG_DIR}/package.ini"
- # Extended fetching detection
- local PKG_GH=$(ini_foreach ini_output_value "${PKGINI}" "repository.github")
- local PKG_TARBALL=$(ini_foreach ini_output_value "${PKGINI}" "package.src")
-
- # Fetch target tarball from github repo
- if [ ! -z "${PKG_GH}" ]; then
- URL_TAG="https://codeload.github.com/${PKG_GH}/tar.gz/refs/tags/${PKGVER}"
- URL_BRANCH="https://codeload.github.com/${PKG_GH}/tar.gz/refs/heads/${PKGVER}"
- CODE_TAG=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_TAG}" 2>/dev/null | head -1 | awk '{print $2}')
- CODE_BRANCH=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_BRANCH}" 2>/dev/null | head -1 | awk '{print $2}')
- if [ "${CODE_TAG}" == "200" ]; then
- PKG_TARBALL="${URL_TAG}"
- elif [ "${CODE_BRANCH}" == "200" ]; then
- PKG_TARBALL="${URL_BRANCH}"
+ # Skip if already installed
+ if [ ! -d "${CMD_INSTALL_PKG_DEST}/${PKGNAME}" ]; then
+
+ # Extended fetching detection
+ local PKG_GH=$(ini_foreach ini_output_value "${PKGINI}" "repository.github")
+ local PKG_TARBALL=$(ini_foreach ini_output_value "${PKGINI}" "package.src")
+
+ # Fetch target tarball from github repo
+ if [ ! -z "${PKG_GH}" ]; then
+ URL_TAG="https://codeload.github.com/${PKG_GH}/tar.gz/refs/tags/${PKGVER}"
+ URL_BRANCH="https://codeload.github.com/${PKG_GH}/tar.gz/refs/heads/${PKGVER}"
+ CODE_TAG=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_TAG}" 2>/dev/null | head -1 | awk '{print $2}')
+ CODE_BRANCH=$(curl -X HEAD --fail --dump-header - -o /dev/null "${URL_BRANCH}" 2>/dev/null | head -1 | awk '{print $2}')
+ if [ "${CODE_TAG}" == "200" ]; then
+ PKG_TARBALL="${URL_TAG}"
+ elif [ "${CODE_BRANCH}" == "200" ]; then
+ PKG_TARBALL="${URL_BRANCH}"
+ fi
fi
- fi
- # Fetch configured or detected tarball
- if [ ! -z "${PKG_TARBALL}" ]; then
- # Downloads a tarball and extracts if over the package in our dependency directory
- # TARBALL_FILE="${HOME}/.config/finwo/__NAME/cache/${PKGNAME}/${PKGVER}.tar.gz"
- TARBALL_FILE="${CMD_INSTALL_PKG_DEST}/.__NAME/cache/${PKGNAME}/${PKGVER}.tar.gz"
- mkdir -p "$(dirname "${TARBALL_FILE}")"
- if [ ! -f "${TARBALL_FILE}" ]; then
- curl --location --progress-bar "${PKG_TARBALL}" --output "${TARBALL_FILE}"
+ # Fetch configured or detected tarball
+ if [ ! -z "${PKG_TARBALL}" ]; then
+ # Downloads a tarball and extracts if over the package in our dependency directory
+ # TARBALL_FILE="${HOME}/.config/finwo/__NAME/cache/${PKGNAME}/${PKGVER}.tar.gz"
+ TARBALL_FILE="${CMD_INSTALL_PKG_DEST}/.__NAME/cache/${PKGNAME}/${PKGVER}.tar.gz"
+ mkdir -p "$(dirname "${TARBALL_FILE}")"
+ if [ ! -f "${TARBALL_FILE}" ]; then
+ curl --location --progress-bar "${PKG_TARBALL}" --output "${TARBALL_FILE}"
+ fi
+ tar --extract --directory "${PKG_DIR}/" --strip-components 1 --file="${TARBALL_FILE}"
fi
- tar --extract --directory "${PKG_DIR}/" --strip-components 1 --file="${TARBALL_FILE}"
- fi
- # Handle any global build-steps defined in the package.ini
- while read line; do
- depname=${line%%=*}
- depver=${line#*=}
- cmd_install_dep "$depname" "$depver"
- done < <(ini_foreach ini_output_section "${PKGINI}" "dependencies." | sort --human-numeric-sort)
-
- # Handle any global build-steps defined in the package.ini
- while read line; do
- buildcmd=${line#*=}
- echo + $buildcmd
- bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
- done < <(ini_foreach ini_output_section "${PKGINI}" "build." | sort --human-numeric-sort)
-
- # Handle any os-generic build-steps defined in the package.ini
- while read line; do
- buildcmd=${line#*=}
- echo + $buildcmd
- bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
- done < <(ini_foreach ini_output_section "${PKGINI}" "build-$(ostype)." | sort --human-numeric-sort)
+ # Handle any global build-steps defined in the package.ini
+ while read line; do
+ depname=${line%%=*}
+ depver=${line#*=}
+ cmd_install_dep "$depname" "$depver"
+ done < <(ini_foreach ini_output_section "${PKGINI}" "dependencies." | sort --human-numeric-sort)
+
+ # Handle any global build-steps defined in the package.ini
+ while read line; do
+ buildcmd=${line#*=}
+ echo + $buildcmd
+ bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
+ done < <(ini_foreach ini_output_section "${PKGINI}" "build." | sort --human-numeric-sort)
+
+ # Handle any os-generic build-steps defined in the package.ini
+ while read line; do
+ buildcmd=${line#*=}
+ echo + $buildcmd
+ bash -c "cd '${PKG_DIR}' ; ${buildcmd}"
+ done < <(ini_foreach ini_output_section "${PKGINI}" "build-$(ostype)." | sort --human-numeric-sort)
+
+ fi
# Build the package's exports
if ! grep "${PKGNAME}" "${CMD_INSTALL_PKG_DEST}/.__NAME/exported" &>/dev/null ; then