From dffb51b003dbafb341a13ede96149f766c352476 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Fri, 21 Jun 2024 23:34:11 -0400 Subject: [PATCH] add missing file --- .../distro-install-common/bash-misc-funcs | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 fai/config/distro-install-common/bash-misc-funcs diff --git a/fai/config/distro-install-common/bash-misc-funcs b/fai/config/distro-install-common/bash-misc-funcs new file mode 100644 index 0000000..af8a6af --- /dev/null +++ b/fai/config/distro-install-common/bash-misc-funcs @@ -0,0 +1,51 @@ +#!/bin/bash +# I, Ian Kelling, follow the GNU license recommendations at +# https://www.gnu.org/licenses/license-recommendations.en.html. They +# recommend that small programs, < 300 lines, be licensed under the +# Apache License 2.0. This file contains or is part of one or more small +# programs. If a small program grows beyond 300 lines, I plan to change +# to a recommended GPL license. + +# Copyright 2024 Ian Kelling + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# update file. +# +# sets $ur aka "u result" to true if file modified or false if not. +# updates $reload to true if file updated is in /etc/systemd/system +# +u() { + local tmp tmpdir dest="$1" + local base="${dest##*/}" + local dir="${dest%/*}" + if [[ $dir != "$base" ]]; then + # dest has a directory component + mkdir -p "$dir" + fi + # shellcheck disable=SC2034 # see comment at top of function + ur=false # u result + tmpdir="$(mktemp -d)" + cat >$tmpdir/"$base" + tmp=$(rsync -ic $tmpdir/"$base" "$dest") + if [[ $tmp ]]; then + printf "%s\n" "$tmp" + # shellcheck disable=SC2034 # intentional + ur=true + if [[ $dest == /etc/systemd/system/* ]]; then + # shellcheck disable=SC2034 # intentional + reload=true + fi + fi + rm -rf $tmpdir +} -- 2.30.2