mirror of
https://github.com/wahyd4/gvm.git
synced 2026-08-09 04:46:19 +10:00
This commit introduces generated overlay filesystem support for
${PATH}, ${LD_LIBRARY_PATH}, and ${PKG_CONFIG_PATH} as well as
includes a working example of how to take advantage of this support
when integrating with vendored code.
56 lines
2.9 KiB
Bash
Executable File
56 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
. $GVM_ROOT/scripts/functions
|
|
|
|
[[ $1 != "" ]] ||
|
|
display_fatal "Please specifiy the name"
|
|
|
|
target_top=$GVM_ROOT
|
|
target_set_name=$1
|
|
target_set_name_str=$1
|
|
add_gopath="$GVM_ROOT/pkgsets/$gvm_go_name/$1"
|
|
add_path="$GVM_ROOT/pkgsets/$gvm_go_name/$1/bin"
|
|
|
|
if [[ $1 == "--local" ]]; then
|
|
LOCAL_TOP=$(find_local_pkgset)
|
|
if [[ ! -d LOCAL_TOP ]]; then
|
|
LOCAL_TOP=$PWD
|
|
fi
|
|
target_top=$LOCAL_TOP/.gvm_local
|
|
target_set_name="local"
|
|
target_set_name_str="__local__"
|
|
add_gopath="$target_top/pkgsets/$gvm_go_name/$target_set_name"
|
|
add_gopath="$LOCAL_TOP:$add_gopath"
|
|
add_path="$target_top/pkgsets/$gvm_go_name/$target_set_name/bin"
|
|
add_path="$LOCAL_TOP/bin:$add_path"
|
|
fi
|
|
|
|
[[ ! -f "$target_top/environments/$gvm_go_name@$target_set_name" ]] ||
|
|
display_fatal "Packageset already exists!"
|
|
|
|
mkdir -p $target_top/environments ||
|
|
display_fatal "Could not create environments folder"
|
|
mkdir -p $target_top/pkgsets/$gvm_go_name/$target_set_name ||
|
|
display_fatal "Could not create packageset folder"
|
|
cp $GVM_ROOT/environments/$gvm_go_name $target_top/environments/$gvm_go_name@$target_set_name ||
|
|
display_fatal "Could copy environment"
|
|
echo "export gvm_pkgset_name=\"$target_set_name_str\"" >> $target_top/environments/$gvm_go_name@$target_set_name ||
|
|
display_fatal "Could not extend environment"
|
|
echo "export GOPATH; GOPATH=\"$add_gopath:\$GOPATH\"" >> $target_top/environments/$gvm_go_name@$target_set_name ||
|
|
display_fatal "Could not extend environment"
|
|
echo "export PATH; PATH=\"$add_path:\$PATH\"" >> $target_top/environments/$gvm_go_name@$target_set_name ||
|
|
display_fatal "Could not extend environment"
|
|
|
|
if [ "${target_set_name}" != "global" ]; then
|
|
echo "# Package Set-Specific Overrides" >> "${GVM_ROOT}/environments/${gvm_go_name}@${target_set_name}"
|
|
echo "export GVM_OVERLAY_PREFIX; GVM_OVERLAY_PREFIX=\"\${GVM_ROOT}/pkgsets/${gvm_go_name}/${target_set_name}/overlay\"" >> "${GVM_ROOT}/environments/${gvm_go_name}@${target_set_name}"
|
|
mkdir -p "${GVM_ROOT}/pkgsets/${gvm_go_name}/${target_set_name}/overlay/"{bin,lib/pkgconfig}
|
|
echo "export PATH; PATH=\"${GVM_ROOT}/pkgsets/${gvm_go_name}/${target_set_name}/bin:\${GVM_OVERLAY_PREFIX}/bin:\${PATH}\"" >> "$GVM_ROOT/environments/${gvm_go_name}@${target_set_name}" ||
|
|
display_fatal "Could not extend environment"
|
|
echo "export LD_LIBRARY_PATH; LD_LIBRARY_PATH=\"\${GVM_OVERLAY_PREFIX}/lib:\${LD_LIBRARY_PATH}\"" >> "${GVM_ROOT}/environments/${gvm_go_name}@${target_set_name}" ||
|
|
display_fatal "Could not extend environment"
|
|
echo "export DYLD_LIBRARY_PATH; DYLD_LIBRARY_PATH=\"\${GVM_OVERLAY_PREFIX}/lib:\${DYLD_LIBRARY_PATH}\"" >> "${GVM_ROOT}/environments/${gvm_go_name}@${target_set_name}" ||
|
|
display_fatal "Could not extend environment"
|
|
echo "export PKG_CONFIG_PATH; PKG_CONFIG_PATH=\"\${GVM_OVERLAY_PREFIX}/lib/pkgconfig:\${PKG_CONFIG_PATH}\"" >> "${GVM_ROOT}/environments/${gvm_go_name}@${target_set_name}" ||
|
|
display_fatal "Could not extend environment"
|
|
fi
|