commit 4f13ae30511a23c47baca9d5d7accd1d7b9f61b7
parent 413a2b23f52223d1af792e297e2497737b6f9f78
Author: finwo <finwo@pm.me>
Date: Mon, 1 Jan 2024 21:35:49 +0100
Added os-specific build step support
Diffstat:
3 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/dist/dep b/dist/dep
@@ -226,6 +226,19 @@ function cmd_add {
cmds[${#cmds[*]}]="a"
cmds[${#cmds[*]}]="add"
+function ostype {
+ case "$OSTYPE" in
+ darwin*) echo "osx" ;;
+ linux*) echo "lin" ;;
+ bsd*) echo "bsd" ;;
+ msys*) echo "win" ;;
+ cygwin*) echo "win" ;;
+ *) echo "unknown" ;;
+ esac
+}
+
+# None
+
read -r -d '' help_topics[install] <<- EOF
Usage: dep [global options] install
@@ -373,7 +386,7 @@ function cmd_install_dep {
cmd_install_dep "$depname" "$deplink"
done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "dependencies.")
- # Handle any build-steps defined in the package.ini
+ # Handle any global build-steps defined in the package.ini
if [ ! -z "$ISNEW" ]; then
while read line; do
buildcmd=${line#*=}
@@ -381,6 +394,14 @@ function cmd_install_dep {
done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build." | sort --human-numeric-sort)
fi
+ # Handle any os-generic build-steps defined in the package.ini
+ if [ ! -z "$ISNEW" ] && ; then
+ while read line; do
+ buildcmd=${line#*=}
+ bash -c "cd ${CMD_INSTALL_PKG_DEST}/${name} ; ${buildcmd}"
+ done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build-$(ostype)." | sort --human-numeric-sort)
+ fi
+
# Build the package's exports
if ! grep "${name}" "${CMD_INSTALL_PKG_DEST}/.dep/exported" &>/dev/null ; then
echo "${name}" >> "${CMD_INSTALL_PKG_DEST}/.dep/exported"
diff --git a/src/command/install/index.sh b/src/command/install/index.sh
@@ -1,4 +1,5 @@
# #include "util/ini.sh"
+# #include "util/ostype.sh"
read -r -d '' help_topics[install] <<- EOF
# #include "help.txt"
@@ -141,7 +142,7 @@ function cmd_install_dep {
cmd_install_dep "$depname" "$deplink"
done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "dependencies.")
- # Handle any build-steps defined in the package.ini
+ # Handle any global build-steps defined in the package.ini
if [ ! -z "$ISNEW" ]; then
while read line; do
buildcmd=${line#*=}
@@ -149,6 +150,14 @@ function cmd_install_dep {
done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build." | sort --human-numeric-sort)
fi
+ # Handle any os-generic build-steps defined in the package.ini
+ if [ ! -z "$ISNEW" ] && ; then
+ while read line; do
+ buildcmd=${line#*=}
+ bash -c "cd ${CMD_INSTALL_PKG_DEST}/${name} ; ${buildcmd}"
+ done < <(ini_foreach ini_output_section "${CMD_INSTALL_PKG_DEST}/${name}/package.ini" "build-$(ostype)." | sort --human-numeric-sort)
+ fi
+
# Build the package's exports
if ! grep "${name}" "${CMD_INSTALL_PKG_DEST}/.__NAME/exported" &>/dev/null ; then
echo "${name}" >> "${CMD_INSTALL_PKG_DEST}/.__NAME/exported"
diff --git a/src/util/ostype.sh b/src/util/ostype.sh
@@ -0,0 +1,16 @@
+# #ifndef __OSTYPE_SH__
+# #define __OSTYPE_SH__
+
+function ostype {
+ case "$OSTYPE" in
+ darwin*) echo "osx" ;;
+ linux*) echo "lin" ;;
+ bsd*) echo "bsd" ;;
+ msys*) echo "win" ;;
+ cygwin*) echo "win" ;;
+ *) echo "unknown" ;;
+ esac
+}
+
+# __OSTYPE_SH__
+# #endif