X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=btrbk-run;h=70fc7043ed6520b4d353d8c6df0e4ee72df0f372;hb=a44c96f8de0dfbb302923b48961abc912b41803e;hp=34b23a8af6a552d79672b55a0dc3b55b5cdc8186;hpb=9a0f77b0495e6f2643d5646c54b4c99cf3118c67;p=distro-setup diff --git a/btrbk-run b/btrbk-run index 34b23a8..70fc704 100644 --- a/btrbk-run +++ b/btrbk-run @@ -1,17 +1,22 @@ #!/bin/bash -# Copyright (C) 2016 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 +# Configure & run btrbk & related work on Ian's computers. +# Copyright (C) 2024 Ian Kelling -# http://www.apache.org/licenses/LICENSE-2.0 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# 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. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# SPDX-License-Identifier: GPL-3.0-or-later # todo: if we cancel in the middle of a btrfs send, then run again @@ -474,9 +479,32 @@ log_path=/var/log/btrbk/$(date +%F_%T%:::z).log echo copying output to $log_path exec &> >(pee cat 'ts "%F %T"|dd of='$log_path' status=none') - +# print some non-default opts if $verbose; then - printf " options: conf_only=%s\ndry_run=%s\nrate_limit=%s\nverbose=%s\ncmd_arg=%s\n" "$conf_only" "$dry_run" "$rate_limit" "$verbose" "$cmd_arg" + opts_show=() + if ! $conf_only; then + opts_show+=(conf_only=true) + fi + if ! $dry_run; then + opts_show+=(dry_run=true) + fi + if [[ $rate_limit != no ]]; then + opts_show+=("rate_limit=$rate_limit") + fi + if [[ $cmd_arg != run ]]; then + opts_show+=(cmd_arg=$cmd_arg) + fi + if (( ${#opts_show[@]} >= 1 )); then + first=true + for opt in ${opts_show[@]}; do + if $first; then + printf "%s" "$opt" + else + printf " %s" "$opt" + fi + done + echo + fi fi if [[ -v targets ]]; then @@ -490,8 +518,6 @@ fi echo "mountpoints: ${mountpoints[*]}" - - # pull_reexec stops us from getting into an infinite loop if there is some # kind of weird problem pulla=false