Browse Source

fix(install_config): replace cp -nv with explicit file existence check

Newer coreutils (Ubuntu 24.04+, Debian 13+) emit a portability warning
when using cp -n: 'behavior of -n is non-portable and may change in future'.

Replace all cp -nv usages with an explicit [ ! -f dest ] guard, which is
portable across all distros and preserves the same OK/SKIP/FAIL behaviour.
pull/4897/head
Daniel Gibbs 2 months ago
parent
commit
8055e86328
Failed to extract signature
  1. 33
      lgsm/modules/install_config.sh

33
lgsm/modules/install_config.sh

@ -34,8 +34,13 @@ fn_default_config_remote() {
if [ "${config}" == "${servercfgdefault}" ]; then
mkdir -p "${servercfgdir}"
echo -en "copying config file [ ${italic}${servercfgfullpath}${default} ]"
changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}")
exitcode=$?
if [ ! -f "${servercfgfullpath}" ]; then
cp "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
exitcode=$?
[ "${exitcode}" -eq 0 ] && changes="copied"
else
exitcode=0
fi
if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "copying config file ${servercfgfullpath}"
@ -48,7 +53,13 @@ fn_default_config_remote() {
elif [ "${shortname}" == "arma3" ] && [ "${config}" == "${networkcfgdefault}" ]; then
mkdir -p "${servercfgdir}"
echo -en "copying config file [ ${italic}${networkcfgfullpath}${default} ]"
changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}")
if [ ! -f "${networkcfgfullpath}" ]; then
cp "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
exitcode=$?
[ "${exitcode}" -eq 0 ] && changes="copied"
else
exitcode=0
fi
if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "copying config file ${networkcfgdefault}"
@ -60,7 +71,13 @@ fn_default_config_remote() {
fi
elif [ "${shortname}" == "dst" ] && [ "${config}" == "${clustercfgdefault}" ]; then
echo -en "copying config file [ ${italic}${clustercfgfullpath}${default} ]"
changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}")
if [ ! -f "${clustercfgfullpath}" ]; then
cp "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
exitcode=$?
[ "${exitcode}" -eq 0 ] && changes="copied"
else
exitcode=0
fi
if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "copying config file ${clustercfgfullpath}"
@ -72,7 +89,13 @@ fn_default_config_remote() {
fi
else
echo -en "copying config file [ ${italic}${servercfgdir}/${config}${default} ]"
changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}")
if [ ! -f "${servercfgdir}/${config}" ]; then
cp "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
exitcode=$?
[ "${exitcode}" -eq 0 ] && changes="copied"
else
exitcode=0
fi
if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "copying config file ${servercfgdir}/${config}"

Loading…
Cancel
Save