Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rcm for openSUSE:Factory checked in at 2022-05-10 15:11:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rcm (Old) and /work/SRC/openSUSE:Factory/.rcm.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rcm" Tue May 10 15:11:56 2022 rev:5 rq:975916 version:1.3.5 Changes: -------- --- /work/SRC/openSUSE:Factory/rcm/rcm.changes 2021-02-18 20:53:11.707483564 +0100 +++ /work/SRC/openSUSE:Factory/.rcm.new.1538/rcm.changes 2022-05-10 15:12:05.683582468 +0200 @@ -1,0 +2,13 @@ +Mon May 9 16:48:50 UTC 2022 - Andrei Dziahel <[email protected]> + +- Update to version 1.3.5 + * BUGFIX: *:*~ exclude paterns work again (Alexander Goldstein) + * BUGFIX: messages for -C being a copy so can't update (Mat M). + * BUGFIX: expect at least one existing dotfiles directory (Mat M). + * BUGFIX: fix program name in rcdn -V (Ivan Tkachenko) + * Feature: mkrc hooks via -k/-K (Patrick Brisbin) + * Feature: All symlinks in input are rejected (Mat M). + * Package and maintenance improvements (Alexander Goldstein, Eric Collins, + Mat M, Darcy Parker). + +------------------------------------------------------------------- Old: ---- rcm-1.3.4.tar.gz New: ---- rcm-1.3.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rcm.spec ++++++ --- /var/tmp/diff_new_pack.rDk8fZ/_old 2022-05-10 15:12:06.227583153 +0200 +++ /var/tmp/diff_new_pack.rDk8fZ/_new 2022-05-10 15:12:06.231583159 +0200 @@ -1,7 +1,7 @@ # # spec file for package rcm # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ # See also http://en.opensuse.org/openSUSE:Specfile_guidelines Name: rcm -Version: 1.3.4 +Version: 1.3.5 Release: 0 Summary: An rc file (dotfile) management tool License: BSD-3-Clause ++++++ rcm-1.3.4.tar.gz -> rcm-1.3.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/Makefile.am new/rcm-1.3.5/Makefile.am --- old/rcm-1.3.4/Makefile.am 2020-08-28 19:53:20.000000000 +0200 +++ new/rcm-1.3.5/Makefile.am 2022-03-04 22:23:02.000000000 +0100 @@ -24,9 +24,12 @@ test/lsrc-globs.t \ test/mkrc-alternate-dotfiles-dir.t \ test/mkrc-copy-file.t \ + test/mkrc-hooks.t \ test/mkrc-host-file.t \ test/mkrc-hostname.t \ + test/mkrc-no-dotfiles-dir-found.t \ test/mkrc-no-symlinks.t \ + test/mkrc-one-dotfile-arg.t \ test/mkrc-simple-output.t \ test/mkrc-spaces.t \ test/mkrc-symlink-dirs.t \ @@ -36,6 +39,7 @@ test/rcrc-custom.t \ test/rcrc-tilde.t \ test/rcrc-hostname.t \ + test/rcrc-lsrc-excludes.t \ test/rcrc.t \ test/rcup-link-files.t \ test/rcup-hostname.t \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/Makefile.in new/rcm-1.3.5/Makefile.in --- old/rcm-1.3.4/Makefile.in 2020-08-28 22:36:08.000000000 +0200 +++ new/rcm-1.3.5/Makefile.in 2022-04-22 22:01:37.000000000 +0200 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -314,6 +314,7 @@ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log @@ -354,6 +355,8 @@ DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -456,9 +459,12 @@ test/lsrc-globs.t \ test/mkrc-alternate-dotfiles-dir.t \ test/mkrc-copy-file.t \ + test/mkrc-hooks.t \ test/mkrc-host-file.t \ test/mkrc-hostname.t \ + test/mkrc-no-dotfiles-dir-found.t \ test/mkrc-no-symlinks.t \ + test/mkrc-one-dotfile-arg.t \ test/mkrc-simple-output.t \ test/mkrc-spaces.t \ test/mkrc-symlink-dirs.t \ @@ -468,6 +474,7 @@ test/rcrc-custom.t \ test/rcrc-tilde.t \ test/rcrc-hostname.t \ + test/rcrc-lsrc-excludes.t \ test/rcrc.t \ test/rcup-link-files.t \ test/rcup-hostname.t \ @@ -838,7 +845,7 @@ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ @@ -977,6 +984,13 @@ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +test/mkrc-hooks.t.log: test/mkrc-hooks.t + @p='test/mkrc-hooks.t'; \ + b='test/mkrc-hooks.t'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) test/mkrc-host-file.t.log: test/mkrc-host-file.t @p='test/mkrc-host-file.t'; \ b='test/mkrc-host-file.t'; \ @@ -991,6 +1005,13 @@ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +test/mkrc-no-dotfiles-dir-found.t.log: test/mkrc-no-dotfiles-dir-found.t + @p='test/mkrc-no-dotfiles-dir-found.t'; \ + b='test/mkrc-no-dotfiles-dir-found.t'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) test/mkrc-no-symlinks.t.log: test/mkrc-no-symlinks.t @p='test/mkrc-no-symlinks.t'; \ b='test/mkrc-no-symlinks.t'; \ @@ -998,6 +1019,13 @@ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +test/mkrc-one-dotfile-arg.t.log: test/mkrc-one-dotfile-arg.t + @p='test/mkrc-one-dotfile-arg.t'; \ + b='test/mkrc-one-dotfile-arg.t'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) test/mkrc-simple-output.t.log: test/mkrc-simple-output.t @p='test/mkrc-simple-output.t'; \ b='test/mkrc-simple-output.t'; \ @@ -1061,6 +1089,13 @@ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +test/rcrc-lsrc-excludes.t.log: test/rcrc-lsrc-excludes.t + @p='test/rcrc-lsrc-excludes.t'; \ + b='test/rcrc-lsrc-excludes.t'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) test/rcrc.t.log: test/rcrc.t @p='test/rcrc.t'; \ b='test/rcrc.t'; \ @@ -1225,6 +1260,10 @@ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @@ -1267,6 +1306,8 @@ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) @@ -1282,7 +1323,7 @@ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ @@ -1453,9 +1494,9 @@ .PHONY: all all-am am--refresh check check-TESTS check-am clean \ clean-generic cscopelist-am ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am \ + dist-zstd distcheck distclean distclean-generic distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ install-dist_binSCRIPTS install-dist_pkgdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/NEWS.md new/rcm-1.3.5/NEWS.md --- old/rcm-1.3.4/NEWS.md 2020-08-28 22:36:10.000000000 +0200 +++ new/rcm-1.3.5/NEWS.md 2022-04-29 21:58:31.000000000 +0200 @@ -1,9 +1,22 @@ +rcm (1.3.5) unstable; urgency=low + + * BUGFIX: *:*~ exclude paterns work again (Alexander Goldstein) + * BUGFIX: messages for -C being a copy so can't update (Mat M). + * BUGFIX: expect at least one existing dotfiles directory (Mat M). + * BUGFIX: fix program name in rcdn -V (Ivan Tkachenko) + * Feature: mkrc hooks via -k/-K (Patrick Brisbin) + * Feature: All symlinks in input are rejected (Mat M). + * Package and maintenance improvements (Alexander Goldstein, Eric Collins, + Mat M, Darcy Parker). + + -- Mike Burns <[email protected]> Fri, 13 Jul 2018 14:12:00 -0500 + rcm (1.3.4) unstable; urgency=low * BUGFIX: Globs no longer expand permanently (Edd Salkield). * BUGFIX: Show $ for symlinked dirs in `lsrc -F` (Mathias Michel). - * Feature: All symlinks in input are rejected (Mat M). - * Packaging improvements (Stephen Groat, Martin Frost, Link Dupont). + * BUGFIX: all symlinks in mkrc input are rejected (Mat M). + * Packaging improvements (Stephen Groat, Martin Frost, Link Dupont) -- Mike Burns <[email protected]> Fri, 13 Jul 2018 14:12:00 -0500 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/NEWS.md.in new/rcm-1.3.5/NEWS.md.in --- old/rcm-1.3.4/NEWS.md.in 2020-08-28 22:32:05.000000000 +0200 +++ new/rcm-1.3.5/NEWS.md.in 2022-04-22 21:59:21.000000000 +0200 @@ -1,9 +1,22 @@ rcm (@PACKAGE_VERSION@) unstable; urgency=low + * BUGFIX: *:*~ exclude paterns work again (Alexander Goldstein) + * BUGFIX: messages for -C being a copy so can't update (Mat M). + * BUGFIX: expect at least one existing dotfiles directory (Mat M). + * BUGFIX: fix program name in rcdn -V (Ivan Tkachenko) + * Feature: mkrc hooks via -k/-K (Patrick Brisbin) + * Feature: All symlinks in input are rejected (Mat M). + * Package and maintenance improvements (Alexander Goldstein, Eric Collins, + Mat M, Darcy Parker). + + -- Mike Burns <[email protected]> Fri, 13 Jul 2018 14:12:00 -0500 + +rcm (1.3.4) unstable; urgency=low + * BUGFIX: Globs no longer expand permanently (Edd Salkield). * BUGFIX: Show $ for symlinked dirs in `lsrc -F` (Mathias Michel). - * Feature: All symlinks in input are rejected (Mat M). - * Packaging improvements (Stephen Groat, Martin Frost, Link Dupont). + * BUGFIX: all symlinks in mkrc input are rejected (Mat M). + * Packaging improvements (Stephen Groat, Martin Frost, Link Dupont) -- Mike Burns <[email protected]> Fri, 13 Jul 2018 14:12:00 -0500 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/README.md new/rcm-1.3.5/README.md --- old/rcm-1.3.4/README.md 2020-08-28 20:12:55.000000000 +0200 +++ new/rcm-1.3.5/README.md 2022-03-04 22:22:33.000000000 +0100 @@ -20,11 +20,11 @@ Arch Linux: - https://aur.archlinux.org/packages/rcm/ + https://aur.archlinux.org/packages/rcm/ Debian (see further down for Ubuntu): - wget -qO - https://apt.thoughtbot.com/thoughtbot.gpg.key | sudo apt-key add - + sudo wget -q https://apt.thoughtbot.com/thoughtbot.gpg.key -O /etc/apt/trusted.gpg.d/thoughtbot.gpg echo "deb https://apt.thoughtbot.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/thoughtbot.list sudo apt-get update sudo apt-get install rcm @@ -88,13 +88,14 @@ This uses the standard GNU autotools, so it's the normal dance: - curl -LO https://thoughtbot.github.io/rcm/dist/rcm-1.3.3.tar.gz && + curl -LO https://thoughtbot.github.io/rcm/dist/rcm-1.3.4.tar.gz && - sha=$(sha256 rcm-1.3.3.tar.gz | cut -f1 -d' ') && - [ "$sha" = "935524456f2291afa36ef815e68f1ab4a37a4ed6f0f144b7de7fb270733e13af" ] && + # Use sha256sum with GNU coreutils, sha256 on BSD and macOS + sha=$(sha256sum rcm-1.3.4.tar.gz | cut -f1 -d' ') && + [ "$sha" = "9b11ae37449cf4d234ec6d1348479bfed3253daba11f7e9e774059865b66c24a" ] && - tar -xvf rcm-1.3.3.tar.gz && - cd rcm-1.3.3 && + tar -xvf rcm-1.3.4.tar.gz && + cd rcm-1.3.4 && ./configure && make && @@ -133,7 +134,8 @@ Copyright 2013 Mike Burns. BSD license. Copyright 2014-2015 thoughtbot. BSD license. -## About thoughtbot +About thoughtbot +----------------  diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/aclocal.m4 new/rcm-1.3.5/aclocal.m4 --- old/rcm-1.3.4/aclocal.m4 2020-08-28 22:36:06.000000000 +0200 +++ new/rcm-1.3.5/aclocal.m4 2022-04-22 22:01:34.000000000 +0200 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.3 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,7 @@ [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], +m4_if([$1], [1.16.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl +[AM_AUTOMAKE_VERSION([1.16.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -307,7 +307,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -328,7 +328,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -349,7 +349,7 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -370,12 +370,7 @@ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -388,7 +383,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -419,7 +414,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -500,7 +495,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -560,7 +555,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -588,7 +583,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -607,7 +602,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/bin/lsrc new/rcm-1.3.5/bin/lsrc --- old/rcm-1.3.4/bin/lsrc 2020-08-28 22:36:10.000000000 +0200 +++ new/rcm-1.3.5/bin/lsrc 2022-04-29 21:58:31.000000000 +0200 @@ -166,7 +166,8 @@ $DEBUG "dotfiles_dir_excludes $dotfiles_dir" $DEBUG " with excludes: $excludes" - for exclude in "$excludes"; do + set -o noglob + for exclude in $excludes; do if echo "$exclude" | grep ':' >/dev/null; then dotfiles_dir_pat="$(echo "$exclude" | sed 's/:.*//')" file_glob="$(echo "$exclude" | sed 's/.*://')" @@ -182,6 +183,7 @@ echo "$exclude" fi done + set +o noglob } is_excluded() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/bin/lsrc.in new/rcm-1.3.5/bin/lsrc.in --- old/rcm-1.3.4/bin/lsrc.in 2020-08-28 20:11:52.000000000 +0200 +++ new/rcm-1.3.5/bin/lsrc.in 2022-03-04 22:23:02.000000000 +0100 @@ -166,7 +166,8 @@ $DEBUG "dotfiles_dir_excludes $dotfiles_dir" $DEBUG " with excludes: $excludes" - for exclude in "$excludes"; do + set -o noglob + for exclude in $excludes; do if echo "$exclude" | grep ':' >/dev/null; then dotfiles_dir_pat="$(echo "$exclude" | sed 's/:.*//')" file_glob="$(echo "$exclude" | sed 's/.*://')" @@ -182,6 +183,7 @@ echo "$exclude" fi done + set +o noglob } is_excluded() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/bin/mkrc new/rcm-1.3.5/bin/mkrc --- old/rcm-1.3.4/bin/mkrc 2020-08-28 22:36:10.000000000 +0200 +++ new/rcm-1.3.5/bin/mkrc 2022-04-29 21:58:31.000000000 +0200 @@ -26,7 +26,7 @@ if [ -L "$file" ]; then $ERROR 1 "'$file' is a symlink. Cannot process file." elif is_nested "$file"; then - # Remove DEST_DIR in case $HOME is under a symlink + # Remove DEST_DIR in case one folder of $HOME is a symlink saved_ifs="$IFS" IFS=/ set -- $(dirname "$file" | sed "s|$DEST_DIR/||") @@ -42,10 +42,21 @@ fi } +only_one_dir() { + local dotfiles="$1" + + if [ ! -z "$OPT_DOTFILES_DIR" ]; then + echo_stderr "Only one '-d' option is allowed in mkrc." + show_help 64 + else + OPT_DOTFILES_DIR="$dotfiles" + fi +} + show_help() { local exit_code=${1:-0} - $PRINT "Usage: mkrc [-ChSsUuVvqo] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ..." + $PRINT "Usage: mkrc [-ChSsUuVvqokK] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ..." $PRINT "see mkrc(1) and rcm(7) for more details" exit $exit_code @@ -55,10 +66,6 @@ show_help 64 fi -for DOTFILES_DIR in $DOTFILES_DIRS $DEFAULT_DOTFILES_DIR; do - break -done - tag= hostname= verbosity=0 @@ -69,7 +76,7 @@ undotted=50 install_args= -while getopts :ChSsUuVvqot:d:B: opt; do +while getopts :ChSsUuVvqot:d:B:kK opt; do case "$opt" in C) always_copy=1 ;; h) show_help ;; @@ -77,7 +84,7 @@ v) verbosity=$(($verbosity + 1)) ;; q) verbosity=$(($verbosity - 1)) ;; o) in_host=1 ;; - d) DOTFILES_DIR="$OPTARG" ;; + d) only_one_dir "$OPTARG" ;; V) version=1 ;; S) force_symlink=1 ;; s) force_symlink=0 ;; @@ -88,6 +95,12 @@ hostname="$OPTARG" install_args=$(append_variable "$install_args" "-B $hostname") ;; + k) + install_args=$(append_variable "$install_args" "-k") + ;; + K) + install_args=$(append_variable "$install_args" "-K") + ;; ?) show_help 64 ;; esac done @@ -110,6 +123,18 @@ files="$(printf "$files\n$i")" done +for DOTFILES_DIR in "$OPT_DOTFILES_DIR" $DOTFILES_DIRS "$DEFAULT_DOTFILES_DIR"; do + if [ -d "$DOTFILES_DIR" ]; then + break + else + unset DOTFILES_DIR + fi +done + +if [ -z "$DOTFILES_DIR" ]; then + $ERROR 1 "No dotfiles directories found in $OPT_DOTFILES_DIR${OPT_DOTFILES_DIR:+ }$DEFAULT_DOTFILES_DIR" +fi + if [ $force_symlink -eq 1 ]; then for file in $files; do dedotted="$(de_dot "$file")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/bin/mkrc.in new/rcm-1.3.5/bin/mkrc.in --- old/rcm-1.3.4/bin/mkrc.in 2020-08-28 19:53:20.000000000 +0200 +++ new/rcm-1.3.5/bin/mkrc.in 2022-03-04 20:41:05.000000000 +0100 @@ -26,7 +26,7 @@ if [ -L "$file" ]; then $ERROR 1 "'$file' is a symlink. Cannot process file." elif is_nested "$file"; then - # Remove DEST_DIR in case $HOME is under a symlink + # Remove DEST_DIR in case one folder of $HOME is a symlink saved_ifs="$IFS" IFS=/ set -- $(dirname "$file" | sed "s|$DEST_DIR/||") @@ -42,10 +42,21 @@ fi } +only_one_dir() { + local dotfiles="$1" + + if [ ! -z "$OPT_DOTFILES_DIR" ]; then + echo_stderr "Only one '-d' option is allowed in mkrc." + show_help 64 + else + OPT_DOTFILES_DIR="$dotfiles" + fi +} + show_help() { local exit_code=${1:-0} - $PRINT "Usage: mkrc [-ChSsUuVvqo] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ..." + $PRINT "Usage: mkrc [-ChSsUuVvqokK] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ..." $PRINT "see mkrc(1) and rcm(7) for more details" exit $exit_code @@ -55,10 +66,6 @@ show_help 64 fi -for DOTFILES_DIR in $DOTFILES_DIRS $DEFAULT_DOTFILES_DIR; do - break -done - tag= hostname= verbosity=0 @@ -69,7 +76,7 @@ undotted=50 install_args= -while getopts :ChSsUuVvqot:d:B: opt; do +while getopts :ChSsUuVvqot:d:B:kK opt; do case "$opt" in C) always_copy=1 ;; h) show_help ;; @@ -77,7 +84,7 @@ v) verbosity=$(($verbosity + 1)) ;; q) verbosity=$(($verbosity - 1)) ;; o) in_host=1 ;; - d) DOTFILES_DIR="$OPTARG" ;; + d) only_one_dir "$OPTARG" ;; V) version=1 ;; S) force_symlink=1 ;; s) force_symlink=0 ;; @@ -88,6 +95,12 @@ hostname="$OPTARG" install_args=$(append_variable "$install_args" "-B $hostname") ;; + k) + install_args=$(append_variable "$install_args" "-k") + ;; + K) + install_args=$(append_variable "$install_args" "-K") + ;; ?) show_help 64 ;; esac done @@ -110,6 +123,18 @@ files="$(printf "$files\n$i")" done +for DOTFILES_DIR in "$OPT_DOTFILES_DIR" $DOTFILES_DIRS "$DEFAULT_DOTFILES_DIR"; do + if [ -d "$DOTFILES_DIR" ]; then + break + else + unset DOTFILES_DIR + fi +done + +if [ -z "$DOTFILES_DIR" ]; then + $ERROR 1 "No dotfiles directories found in $OPT_DOTFILES_DIR${OPT_DOTFILES_DIR:+ }$DEFAULT_DOTFILES_DIR" +fi + if [ $force_symlink -eq 1 ]; then for file in $files; do dedotted="$(de_dot "$file")" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/bin/rcdn new/rcm-1.3.5/bin/rcdn --- old/rcm-1.3.4/bin/rcdn 2020-08-28 22:36:10.000000000 +0200 +++ new/rcm-1.3.5/bin/rcdn 2022-04-29 21:58:31.000000000 +0200 @@ -66,7 +66,7 @@ done shift $(($OPTIND-1)) - handle_common_flags rcup $version $verbosity + handle_common_flags rcdn $version $verbosity hostname="$(determine_hostname "$hostname")" tags="${arg_tags:-$TAGS}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/bin/rcdn.in new/rcm-1.3.5/bin/rcdn.in --- old/rcm-1.3.4/bin/rcdn.in 2020-08-28 19:53:20.000000000 +0200 +++ new/rcm-1.3.5/bin/rcdn.in 2022-03-04 20:41:05.000000000 +0100 @@ -66,7 +66,7 @@ done shift $(($OPTIND-1)) - handle_common_flags rcup $version $verbosity + handle_common_flags rcdn $version $verbosity hostname="$(determine_hostname "$hostname")" tags="${arg_tags:-$TAGS}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/configure new/rcm-1.3.5/configure --- old/rcm-1.3.4/configure 2020-08-28 22:36:06.000000000 +0200 +++ new/rcm-1.3.5/configure 2022-04-22 22:01:35.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for rcm 1.3.4. +# Generated by GNU Autoconf 2.69 for rcm 1.3.5. # # Report bugs to <[email protected]>. # @@ -579,8 +579,8 @@ # Identity of this package. PACKAGE_NAME='rcm' PACKAGE_TARNAME='rcm' -PACKAGE_VERSION='1.3.4' -PACKAGE_STRING='rcm 1.3.4' +PACKAGE_VERSION='1.3.5' +PACKAGE_STRING='rcm 1.3.5' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1211,7 +1211,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures rcm 1.3.4 to adapt to many kinds of systems. +\`configure' configures rcm 1.3.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1278,7 +1278,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of rcm 1.3.4:";; + short | recursive ) echo "Configuration of rcm 1.3.5:";; esac cat <<\_ACEOF @@ -1352,7 +1352,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -rcm configure 1.3.4 +rcm configure 1.3.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1369,7 +1369,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by rcm $as_me 1.3.4, which was +It was created by rcm $as_me 1.3.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -1922,12 +1922,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -2232,7 +2227,7 @@ # Define the identity of the package. PACKAGE='rcm' - VERSION='1.3.4' + VERSION='1.3.5' cat >>confdefs.h <<_ACEOF @@ -2932,7 +2927,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by rcm $as_me 1.3.4, which was +This file was extended by rcm $as_me 1.3.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2985,7 +2980,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -rcm config.status 1.3.4 +rcm config.status 1.3.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/configure.ac new/rcm-1.3.5/configure.ac --- old/rcm-1.3.4/configure.ac 2020-08-28 22:35:53.000000000 +0200 +++ new/rcm-1.3.5/configure.ac 2022-04-22 21:50:05.000000000 +0200 @@ -1,5 +1,5 @@ AC_PREREQ([2.69]) -AC_INIT(rcm, 1.3.4, [email protected]) +AC_INIT([rcm],[1.3.5],[[email protected]]) AM_INIT_AUTOMAKE([subdir-objects]) # /bin/sh on Solaris is not POSIX, so try to find another one. @@ -11,4 +11,5 @@ esac AC_SUBST([SHELL]) -AC_OUTPUT(Makefile share/rcm.sh arch/git-PKGBUILD NEWS.md bin/lsrc bin/mkrc bin/rcdn bin/rcup maint/release) +AC_CONFIG_FILES([Makefile share/rcm.sh arch/git-PKGBUILD NEWS.md bin/lsrc bin/mkrc bin/rcdn bin/rcup maint/release]) +AC_OUTPUT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/maint/release.in new/rcm-1.3.5/maint/release.in --- old/rcm-1.3.4/maint/release.in 2020-08-28 22:34:00.000000000 +0200 +++ new/rcm-1.3.5/maint/release.in 2022-04-22 20:15:39.000000000 +0200 @@ -9,15 +9,6 @@ abs_top_builddir='@abs_top_builddir@' dist_man_MANS='lsrc.1 mkrc.1 rcdn.1 rcup.1 rcrc.5 rcm.7' -edit_package() { - sed \ - -e "s|@PACKAGE[@]|$PACKAGE|g" \ - -e "s|@PACKAGE_VERSION[@]|$PACKAGE_VERSION|g" \ - -e "s|@DIST_ARCHIVES[@]|$DIST_ARCHIVES|g" \ - -e "s|@DIST_SHA[@]|$DIST_SHA|g" \ - "$1" -} - # Tarball release_build_tarball() { ([ -d gh-pages ] || git clone --branch gh-pages . gh-pages) && \ @@ -59,6 +50,19 @@ rm -rf $DIST_ARCHIVES } +generate_dist_sha() { + export DIST_SHA=$(openssl sha256 $srcdir/$DIST_ARCHIVES | cut -d' ' -f2) +} + +edit_package() { + sed \ + -e "s|@PACKAGE[@]|$PACKAGE|g" \ + -e "s|@PACKAGE_VERSION[@]|$PACKAGE_VERSION|g" \ + -e "s|@DIST_ARCHIVES[@]|$DIST_ARCHIVES|g" \ + -e "s|@DIST_SHA[@]|$DIST_SHA|g" \ + "$1" +} + # Deb release_build_deb() { mkdir deb-build && \ @@ -108,10 +112,6 @@ : } -generate_dist_sha() { - export DIST_SHA=$(openssl sha256 $srcdir/$DIST_ARCHIVES | cut -d' ' -f2) -} - # manpages as HTML release_build_man_html() { ([ -d gh-pages ] || git clone --branch gh-pages . gh-pages) && \ @@ -140,6 +140,16 @@ exit 64 fi +if ! command -v git >/dev/null; then + echo >&2 "release: missing dependency: git" + exit 1 +fi + +if ! command -v mandoc >/dev/null; then + echo >&2 "release: missing dependency: git" + exit 1 +fi + verb="$1" noun="$2" DIST_ARCHIVES="$3" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/man/mkrc.1 new/rcm-1.3.5/man/mkrc.1 --- old/rcm-1.3.4/man/mkrc.1 2020-01-17 23:16:41.000000000 +0100 +++ new/rcm-1.3.5/man/mkrc.1 2022-03-04 20:41:05.000000000 +0100 @@ -1,20 +1,25 @@ -.Dd July 28, 2013 +.Dd April 13, 2020 .Dt MKRC 1 .Os .Sh NAME .Nm mkrc -.Nd bless files into a dotfile managed by rcm +.Nd bless files into a dotfiles managed by rcm .Sh SYNOPSIS .Nm mkrc -.Op Fl ChoqSsVvUu +.Op Fl ChoqSsVvUukK .Op Fl t Ar tag .Op Fl d Ar dir .Op Fl B Ar hostname .Ar files ... .Sh DESCRIPTION -This program adds files to your dotfiles directory then installs it +This program adds files to your dotfiles directory then update them back into your home directory. It can install files under a tag or -different source directory. +install them in a different source directory. Remember to first create +standard rc files, then use +.Nm +on them. +. +.Pp . It supports these options: . @@ -24,24 +29,25 @@ .Fl o . .It Fl C copy instead of symlinking when installing the rc file back into your -home directory +home directory. This will prevent future updates in the dotfiles directory for +added element, and its contents if it is a directory. .It Fl d Ar DIR -install dotfiles under the specified directory. This can be specified -multiple times. +install dotfiles under the specified directory. Use only once to override +DOTFILES_DIRS value from RCRC and the absolute default value. .It Fl h show usage instructions. .It Fl o -install dotfiles into the host-specific directory +install dotfiles into the host-specific directory. .It Fl q -decrease verbosity +decrease verbosity. .It Fl S treat the specified rc files as files to be symlinked, even if they are -directories +directories. .It Fl s if the rc file is a file, symlink it; otherwise, make a directory structure as described in -.Xr rcup 1 -in the section +.Xr rcup 1 +in the section .Sx ALGORITHM . This is the default. .It Fl t Ar TAG @@ -56,6 +62,18 @@ increase verbosity. This can be repeated for extra verbosity. .It Fl V show the version number. +.It Fl k +pass -k to rcup when installing the made rc file. This option enables pre- and +post-hooks, which is the default, making this effectively a no-op. See the +.Sx ALGORITHM +section in +.Xr rcup 1 . +.It Fl K +pass -K to rcup when installing the made rc file. This option prevents pre- and +post-up hooks from running as part of creating the rc file. See the +.Sx ALGORITHM +section in +.Xr rcup 1 . .El .Sh ENVIRONMENT .Bl -tag -width ".Ev RCRC" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/man/rcm.7 new/rcm-1.3.5/man/rcm.7 --- old/rcm-1.3.4/man/rcm.7 2020-08-28 22:36:08.000000000 +0200 +++ new/rcm-1.3.5/man/rcm.7 2022-04-22 22:01:37.000000000 +0200 @@ -277,10 +277,9 @@ so on. . .Sh RATIONALE -The rcm suite was built as an abstraction over the shell, Ruby, Python, -and make scripts people were writing and sharing. It is intended to run -on any unix system and support the range from simple to complex dotfile -directories. +The rcm suite was built as an abstraction over the shell, Ruby, Python, and +make scripts people were writing and sharing. It is intended to run on any unix +system and support the range from simple to complex dotfile directories. .Pp As such, this suite is useful as a common base. Through this we can share tools and develop this further as a first-class entity. It is also @@ -314,6 +313,7 @@ .Sh CONTRIBUTORS .An -split .An "Alan Yee" Aq Mt [email protected] +.An "Alexander Goldstein" Aq Mt [email protected] .An "Andrei Dziahel" Aq Mt [email protected] .An "Anton Ilin" Aq Mt [email protected] .An "Ben Stephens" Aq Mt [email protected] @@ -327,6 +327,7 @@ .An "Christopher Koch" Aq Mt [email protected] .An "Dan Croak" Aq Mt [email protected] .An "Daniel Watson" Aq Mt [email protected] +.An "Darcy Parker" Aq Mt [email protected] .An "David Alexander" Aq Mt [email protected] .An "Devraj Mehta" Aq Mt [email protected] .An "Edd Salkield" Aq Mt [email protected] @@ -361,6 +362,7 @@ .An "Vlad GURDIGA" Aq Mt [email protected] .An "Yota Toyama" Aq Mt [email protected] .An "Zach Latta" Aq Mt [email protected] +.An "ivan tkachenko" Aq Mt [email protected] .An "kajisha" Aq Mt [email protected] .An "maxice8" Aq Mt [email protected] .An "subpop" Aq Mt [email protected] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/man/rcup.1 new/rcm-1.3.5/man/rcup.1 --- old/rcm-1.3.4/man/rcup.1 2020-01-17 23:16:41.000000000 +0100 +++ new/rcm-1.3.5/man/rcup.1 2022-03-04 20:41:05.000000000 +0100 @@ -34,9 +34,9 @@ .It Fl B Ar HOSTNAME treat .Pa host-HOSTNAME -as the host-specific directory instead of computing it +as the host-specific directory instead of computing it. .It Fl C -copy the files instead of symlinking them +copy the files instead of symlinking them. .It Fl d Ar DIR install dotfiles from the .Ar DIR . @@ -44,7 +44,7 @@ .It Fl f if the rc file already exists in your home directory but does not match the file in your dotfiles directory, remove the rc file then create the -symlink +symlink. .It Fl g print to .Li stdout @@ -70,9 +70,9 @@ .It Fl i if the rc file already exists in your home directory but does not match the file in your dotfiles directory, prompt for how to handle it. This -is the default +is the default. .It Fl K -skip pre- and post-hooks +skip pre- and post-hooks. .It Fl k run pre- and post-hooks (see .Sx DIRECTORY LAYOUT @@ -80,8 +80,8 @@ .It Fl S Ar EXCL_PAT any rc file that matches .Ar EXCL_PAT -is installed as if it were a file (using a symlink) instead of as if it -were a directory (by making a directory). This option can be repeated. +is installed using a symlink even if it is a directory. This option +can be repeated. .It Fl s Ar EXCL_PAT any file that matches .Ar EXCL_PAT @@ -92,7 +92,7 @@ This option can be repeated. .It Fl t Ar TAG install dotfiles according to -.Ar TAG +.Ar TAG . .It Fl U Ar EXCL_PAT any rc file that matches .Ar EXCL_PAT @@ -113,7 +113,7 @@ .Xr lsrc 1 for more information. .It Fl q -decrease verbosity +decrease verbosity. .It Fl V show the version number. .It Fl v @@ -146,7 +146,8 @@ .Va COPY_ALWAYS option in .Xr rcrc 5 -can be used to list files that must only be copied. +can be used to list files that must only be copied. Copied files are not +updated in your dotfiles directory. .Pp Three meta files are supported: host-specific files, tagged files, hooks. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/share/rcm.sh new/rcm-1.3.5/share/rcm.sh --- old/rcm-1.3.4/share/rcm.sh 2020-08-28 22:36:10.000000000 +0200 +++ new/rcm-1.3.5/share/rcm.sh 2022-04-29 21:58:31.000000000 +0200 @@ -1,4 +1,4 @@ -VERSION="1.3.4" +VERSION="1.3.5" #set -x diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/test/lsrc-excludes.t new/rcm-1.3.5/test/lsrc-excludes.t --- old/rcm-1.3.4/test/lsrc-excludes.t 2020-01-17 23:16:41.000000000 +0100 +++ new/rcm-1.3.5/test/lsrc-excludes.t 2022-03-04 22:23:02.000000000 +0100 @@ -19,6 +19,12 @@ /*/.excluded:/*/.dotfiles/excluded (glob) /*/.included:/*/.other-dotfiles/included (glob) +Should accept directory:file syntax with wildcard directory + + $ lsrc -d .dotfiles -d .other-dotfiles -x *:excluded + /*/.example:/*/.dotfiles/example (glob) + /*/.included:/*/.other-dotfiles/included (glob) + Should handle excludes with globs $ mkdir -p fresh/hola/chao @@ -33,3 +39,29 @@ $ lsrc -d fresh -x 'hola/chao' -x s /*/.hola/tossala:/*/fresh/hola/tossala (glob) + +Should support wildcards in the excludes, including Emacs backup +files, and wildcards in directory specifier. + + $ rm -rf .dotfiles + $ ( mkdir .dotfiles && cd .dotfiles && touch included README.md included~ README.md~ ) + +Should exclude multiple patterns including globs and plain names using -x argument + + $ lsrc -x README.md -x "*~" + /*/.included:/*/.dotfiles/included (glob) + +And the with directory tagged globs using -x with sole exclude + + $ lsrc -x "*:*~" | grep -v README.md + /*/.included:/*/.dotfiles/included (glob) + +And the with directory tagged globs using -x + + $ lsrc -x README.md -x "*:*~" + /*/.included:/*/.dotfiles/included (glob) + +And sanity check that directory tagged this work with just one exclude + + $ lsrc -x "*~" | grep -v README.md + /*/.included:/*/.dotfiles/included (glob) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/test/mkrc-hooks.t new/rcm-1.3.5/test/mkrc-hooks.t --- old/rcm-1.3.4/test/mkrc-hooks.t 1970-01-01 01:00:00.000000000 +0100 +++ new/rcm-1.3.5/test/mkrc-hooks.t 2022-03-04 20:41:05.000000000 +0100 @@ -0,0 +1,41 @@ + $ . "$TESTDIR/helper.sh" + > mkdir -p .dotfiles/hooks + > echo 'echo Pre' > .dotfiles/hooks/pre-up + > echo 'echo Post' > .dotfiles/hooks/post-up + > chmod +x .dotfiles/hooks/pre-up + > chmod +x .dotfiles/hooks/post-up + > touch .example + > touch .example-2 + > touch .example-3 + +Making an rc file runs pre- and post-up hooks + + $ mkrc -v .example + Moving... + '*/.example' -> '*/.dotfiles/example' (glob) + Linking... + running pre-up hooks for */.dotfiles (glob) + Pre + '*/.dotfiles/example' -> '*/.example' (glob) + running post-up hooks for */.dotfiles (glob) + Post + +Avoids hooks by -K + + $ mkrc -K -v .example-2 + Moving... + '*/.example-2' -> '*/.dotfiles/example-2' (glob) + Linking... + '*/.dotfiles/example-2' -> '*/.example-2' (glob) + +Accepts -k for parity with rcup + + $ mkrc -k -v .example-3 + Moving... + '*/.example-3' -> '*/.dotfiles/example-3' (glob) + Linking... + running pre-up hooks for */.dotfiles (glob) + Pre + '*/.dotfiles/example-3' -> '*/.example-3' (glob) + running post-up hooks for */.dotfiles (glob) + Post diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/test/mkrc-no-dotfiles-dir-found.t new/rcm-1.3.5/test/mkrc-no-dotfiles-dir-found.t --- old/rcm-1.3.4/test/mkrc-no-dotfiles-dir-found.t 1970-01-01 01:00:00.000000000 +0100 +++ new/rcm-1.3.5/test/mkrc-no-dotfiles-dir-found.t 2022-03-04 20:41:05.000000000 +0100 @@ -0,0 +1,23 @@ + $ . "$TESTDIR/helper.sh" + +Use the first existing dotfiles location +$HOME/.dotfiles is created at test time + + $ touch .example + + $ mkrc -d .missing-dotfiles .example >/dev/null + + $ assert_linked "$HOME/.example" "$HOME/.dotfiles/example" + +Exit when no location found + + $ mv .dotfiles .dotfiles-error + + $ touch .exampleno + + $ mkrc -d .missing-dotfiles .exampleno >/dev/null + No dotfiles directories found in .missing-dotfiles */.dotfiles (glob) + [1] + + $ refute "should not be a symlink" -h $HOME/.examplenob + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/test/mkrc-one-dotfile-arg.t new/rcm-1.3.5/test/mkrc-one-dotfile-arg.t --- old/rcm-1.3.4/test/mkrc-one-dotfile-arg.t 1970-01-01 01:00:00.000000000 +0100 +++ new/rcm-1.3.5/test/mkrc-one-dotfile-arg.t 2022-03-04 22:22:33.000000000 +0100 @@ -0,0 +1,28 @@ + $ . "$TESTDIR/helper.sh" + > mv .dotfiles .other-dotfiles + > mkdir .another-dotfiles + > touch rcfile + +Trying to fool should result in no dir found error + + $ mkrc -d ".other-dotfiles .another-dotfiles" rcfile + No dotfiles directories found in .other-dotfiles .another-dotfiles /*/.dotfiles (glob) + [1] + +Giving 2 dotfiles dir should result in an error and exit EX_USAGE + + $ mkrc -d .dotfiles -d .other-dotfiles rcfile + Only one '-d' option is allowed in mkrc. + Usage: mkrc * (glob) + see mkrc(1) and rcm(7) for more details + [64] + +Giving one dotfiles dir should override default + + $ mv .other-dotfiles .dotfiles + $ mkrc -v -d .another-dotfiles rcfile + Moving... + '/*/rcfile' -> '.another-dotfiles/rcfile' (glob) + Linking... + '/*/.another-dotfiles/rcfile' -> '/*/.rcfile' (glob) + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/test/mkrc-usage.t new/rcm-1.3.5/test/mkrc-usage.t --- old/rcm-1.3.4/test/mkrc-usage.t 2020-01-17 23:16:41.000000000 +0100 +++ new/rcm-1.3.5/test/mkrc-usage.t 2022-03-04 20:41:05.000000000 +0100 @@ -3,19 +3,19 @@ no arguments should output usage information and exit EX_USAGE $ mkrc - Usage: mkrc [-ChSsUuVvqo] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ... + Usage: mkrc [-ChSsUuVvqokK] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ... see mkrc(1) and rcm(7) for more details [64] -h should output usage information and exit 0 $ mkrc -h - Usage: mkrc [-ChSsUuVvqo] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ... + Usage: mkrc [-ChSsUuVvqokK] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ... see mkrc(1) and rcm(7) for more details Unsupported options should output usage information and exit EX_USAGE $ mkrc --version - Usage: mkrc [-ChSsUuVvqo] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ... + Usage: mkrc [-ChSsUuVvqokK] [-t TAG] [-d DIR] [-B HOSTNAME] FILES ... see mkrc(1) and rcm(7) for more details [64] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rcm-1.3.4/test/rcrc-lsrc-excludes.t new/rcm-1.3.5/test/rcrc-lsrc-excludes.t --- old/rcm-1.3.4/test/rcrc-lsrc-excludes.t 1970-01-01 01:00:00.000000000 +0100 +++ new/rcm-1.3.5/test/rcrc-lsrc-excludes.t 2022-03-04 22:23:02.000000000 +0100 @@ -0,0 +1,85 @@ + $ . "$TESTDIR/helper.sh" + +Should exclude items with EXCLUDES= + + $ touch .dotfiles/example + > touch .dotfiles/excluded + + $ echo 'EXCLUDES=excluded' > $HOME/.rcrc + + $ lsrc + /*/.example:/*/.dotfiles/example (glob) + +Should accept directory:file syntax + + $ mkdir .other-dotfiles + > touch .other-dotfiles/included + > touch .other-dotfiles/excluded + + $ echo 'EXCLUDES="other-dotfiles:excluded"' > ~/.rcrc + $ echo 'DOTFILES_DIRS="~/.dotfiles ~/.other-dotfiles"' >> ~/.rcrc + + $ lsrc + /*/.example:/*/.dotfiles/example (glob) + /*/.excluded:/*/.dotfiles/excluded (glob) + /*/.included:/*/.other-dotfiles/included (glob) + +Should handle excludes with globs + + $ mkdir -p fresh/hola/chao + > touch fresh/hola/chao/wo + > touch fresh/hola/chao/nemo + > touch fresh/hola/tossala + > touch fresh/hola/s + > touch fresh/s + + $ echo 'EXCLUDES="hola/chao/* s"' > ~/.rcrc + $ lsrc -d fresh + /*/.hola/tossala:/*/fresh/hola/tossala (glob) + + $ echo 'EXCLUDES="hola/chao s"' > ~/.rcrc + $ lsrc -d fresh + /*/.hola/tossala:/*/fresh/hola/tossala (glob) + +When -x argument is provided, RCRC EXCLUDES are ignored + + $ echo 'EXCLUDES="hola/chao"' > ~/.rcrc + $ lsrc -d fresh -x s + /*/.hola/chao/nemo:/*/fresh/hola/chao/nemo (glob) + /*/.hola/chao/wo:/*/fresh/hola/chao/wo (glob) + /*/.hola/tossala:/*/fresh/hola/tossala (glob) + + $ echo 'EXCLUDES="s"' > ~/.rcrc + $ lsrc -d fresh -x hola/chao + /*/.hola/s:/*/fresh/hola/s (glob) + /*/.hola/tossala:/*/fresh/hola/tossala (glob) + /*/.s:/*/fresh/s (glob) + +Should support globs in the excludes, including Emacs backup files + + $ rm -rf .dotfiles + $ ( mkdir .dotfiles && cd .dotfiles && touch included README.md included~ README.md~ ) + + $ echo 'EXCLUDES="README.md *~"' > ~/.rcrc + $ lsrc + /*/.included:/*/.dotfiles/included (glob) + +Should support a globs in the directory specifier + + $ echo 'EXCLUDES="*:*~"' > ~/.rcrc + $ lsrc + /*/.README.md:/*/.dotfiles/README.md (glob) + /*/.included:/*/.dotfiles/included (glob) + +And should support a mix of plain and directory tagged globs + + $ echo 'EXCLUDES="README.md *:*~"' > ~/.rcrc + $ lsrc + /*/.included:/*/.dotfiles/included (glob) + +And a redundant list of implied and specified globs + + $ echo 'EXCLUDES="README.md *~ *:*~"' > ~/.rcrc + $ lsrc + /*/.included:/*/.dotfiles/included (glob) +
