From: Ian Kelling Date: Sat, 22 Jun 2024 03:34:11 +0000 (-0400) Subject: add missing file X-Git-Url: https://iankelling.org/git/?a=commitdiff_plain;h=dffb51b003dbafb341a13ede96149f766c352476;p=automated-distro-installer add missing file --- 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 +}