mirror of
https://github.com/fsquillace/junest.git
synced 2026-01-23 02:34:30 +00:00
First commit
This commit is contained in:
parent
ae365215fb
commit
39508ca8a9
2 changed files with 17 additions and 10 deletions
|
|
@ -69,8 +69,11 @@ usage() {
|
|||
echo -e " b[uild] Build a $NAME image (must run in ArchLinux)"
|
||||
echo -e " -n, --disable-check Disable the $NAME image check"
|
||||
echo
|
||||
echo -e " create-bin-wrappers Create bin wrappers in $JUNEST_HOME/usr/bin_wrappers"
|
||||
echo -e " create-bin-wrappers Create a bin wrappers directory according to --bin-path option"
|
||||
echo -e " Default path is $JUNEST_HOME/usr/bin_wrappers"
|
||||
echo -e " -f, --force Create the wrapper files even if they already exist"
|
||||
echo -e " -p, --bin-path The source directory where executable are located in JuNest"
|
||||
echo -e " Default value is: /usr/bin"
|
||||
echo
|
||||
}
|
||||
|
||||
|
|
@ -215,10 +218,12 @@ function _parse_build_opts() {
|
|||
|
||||
function _parse_create_wrappers_opts() {
|
||||
OPT_FORCE=false
|
||||
OPT_BIN_PATH=""
|
||||
while [[ -n "$1" ]]
|
||||
do
|
||||
case "$1" in
|
||||
-f|--force) OPT_FORCE=true ; shift ;;
|
||||
-p|--bin-path) shift ; OPT_BIN_PATH="$1" ; shift ;;
|
||||
*) die "Invalid option $1" ;;
|
||||
esac
|
||||
done
|
||||
|
|
@ -276,7 +281,7 @@ function execute_operation() {
|
|||
fi
|
||||
|
||||
if $ACT_CREATE_WRAPPERS; then
|
||||
create_wrappers $OPT_FORCE
|
||||
create_wrappers $OPT_FORCE "$OPT_BIN_PATH"
|
||||
exit
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@
|
|||
#######################################
|
||||
function create_wrappers() {
|
||||
local force=${1:-false}
|
||||
mkdir -p "${JUNEST_HOME}/usr/bin_wrappers"
|
||||
local bin_path=${2:-/usr/bin}
|
||||
bin_path=${bin_path%/}
|
||||
mkdir -p "${JUNEST_HOME}${bin_path}_wrappers"
|
||||
# Arguments inside a variable (i.e. `JUNEST_ARGS`) separated by quotes
|
||||
# are not recognized normally unless using `eval`. More info here:
|
||||
# https://github.com/fsquillace/junest/issues/262
|
||||
|
|
@ -33,26 +35,26 @@ junest "\${junest_args_array[@]}" -- \$(basename \${0}) "\$@"
|
|||
EOF
|
||||
chmod +x "${JUNEST_HOME}/usr/bin/junest_wrapper"
|
||||
|
||||
cd "${JUNEST_HOME}/usr/bin" || return 1
|
||||
cd "${JUNEST_HOME}${bin_path}" || return 1
|
||||
for file in *
|
||||
do
|
||||
[[ -d $file ]] && continue
|
||||
# Symlinks outside junest appear as broken even though the are correct
|
||||
# Symlinks outside junest appear as broken even though they are correct
|
||||
# within a junest session. The following do not skip broken symlinks:
|
||||
[[ -x $file || -L $file ]] || continue
|
||||
if [[ -e ${JUNEST_HOME}/usr/bin_wrappers/$file ]] && ! $force
|
||||
if [[ -e ${JUNEST_HOME}${bin_path}_wrappers/$file ]] && ! $force
|
||||
then
|
||||
continue
|
||||
fi
|
||||
rm -f "${JUNEST_HOME}/usr/bin_wrappers/$file"
|
||||
ln -s "../bin/junest_wrapper" "${JUNEST_HOME}/usr/bin_wrappers/$file"
|
||||
rm -f "${JUNEST_HOME}${bin_path}_wrappers/$file"
|
||||
ln -s "${JUNEST_HOME}/usr/bin/junest_wrapper" "${JUNEST_HOME}${bin_path}_wrappers/$file"
|
||||
done
|
||||
|
||||
# Remove wrappers no longer needed
|
||||
cd "${JUNEST_HOME}/usr/bin_wrappers" || return 1
|
||||
cd "${JUNEST_HOME}${bin_path}_wrappers" || return 1
|
||||
for file in *
|
||||
do
|
||||
[[ -e ${JUNEST_HOME}/usr/bin/$file || -L ${JUNEST_HOME}/usr/bin/$file ]] || rm -f "$file"
|
||||
[[ -e ${JUNEST_HOME}${bin_path}/$file || -L ${JUNEST_HOME}${bin_path}/$file ]] || rm -f "$file"
|
||||
done
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue