1
0
mirror of https://github.com/TheLocehiliosan/yadm synced 2025-06-04 08:33:57 +00:00

Update CHANGES and prepare for 3.4.0

This commit is contained in:
Erik Flodin 2025-02-09 22:03:16 +01:00
parent 7e19d21f09
commit c90aa86051
No known key found for this signature in database
GPG Key ID: 420A7C865EE3F85F
7 changed files with 127 additions and 79 deletions

15
CHANGES
View File

@ -1,3 +1,18 @@
3.4.0
* Improve and harden alt file regeneration (#466)
* Fix "yadm config" in fish completion (#491)
* Fix "yadm clone" when not run in "$YADM_WORK" (#513)
* Output the actual paths in help message (#376)
* Verify all alt conditions for templates (#478)
* Ignore case in alt and default template conditions (#455, #456)
* Fall back to ID for distro family if ID_LIKE is not available (#494)
* Support overriding distro and distro family (#430)
* Improve support for Bash 3 (the default version on macOS)
* Make "yadm clone --recursive" work as expected (#517)
* Don't include files multiple times in archive (#125)
* Document YADM_HOOK_DATA and YADM_HOOK_DIR env variables (#343)
* Support alt dirs with deeply nested tracked files (#495)
3.3.0
* Support nested ifs in default template (#436)
* Support include and ifs in default template includes (#406)

View File

@ -3,8 +3,8 @@ CONTRIBUTORS
Tim Byrne
Erik Flodin
Martin Zuther
Jan Schulz
Ross Smith II
Jan Schulz
Jonathan Daigle
Luis López
Tin Lai
@ -15,11 +15,13 @@ James Clark
Glenn Waters
Nicolas signed-log FORMICHELLA
Tomas Cernaj
AVM.Martin
Joshua Cold
jonasc
Nicolas stig124 FORMICHELLA
Chad Wade Day, Jr
Sébastien Gross
Christof Warlich
David Mandelberg
Paulo Köch
Oren Zipori
@ -47,6 +49,7 @@ Tim Condit
Thomas Luzat
Russ Allbery
Patrick Roddy
heddxh
dessert1
Brayden Banks
Alexandre GV

View File

@ -72,8 +72,8 @@ The star count helps others discover yadm.
[master-badge]: https://img.shields.io/github/actions/workflow/status/yadm-dev/yadm/test.yml?branch=master
[master-commits]: https://github.com/yadm-dev/yadm/commits/master
[master-date]: https://img.shields.io/github/last-commit/yadm-dev/yadm/master.svg?label=master
[obs-badge]: https://img.shields.io/badge/OBS-v3.3.0-blue
[obs-link]: https://software.opensuse.org//download.html?project=home%3ATheLocehiliosan%3Ayadm&package=yadm
[obs-badge]: https://img.shields.io/badge/OBS-v3.4.0-blue
[obs-link]: https://software.opensuse.org/download.html?project=home%3ATheLocehiliosan%3Ayadm&package=yadm
[releases-badge]: https://img.shields.io/github/tag/yadm-dev/yadm.svg?label=latest+release
[releases-link]: https://github.com/yadm-dev/yadm/releases
[transcrypt]: https://github.com/elasticdog/transcrypt

3
yadm
View File

@ -1,6 +1,7 @@
#!/bin/sh
# yadm - Yet Another Dotfiles Manager
# Copyright (C) 2015-2024 Tim Byrne
# Copyright (C) 2025 Erik Flodin
# 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
@ -21,7 +22,7 @@ if [ -z "$BASH_VERSION" ]; then
[ "$YADM_TEST" != 1 ] && exec bash "$0" "$@"
fi
VERSION=3.3.0
VERSION=3.4.0
YADM_WORK="$HOME"
YADM_DIR=

6
yadm.1
View File

@ -1,5 +1,5 @@
.\" vim: set spell so=8:
.TH YADM 1 "November 8, 2024" "3.3.0"
.TH YADM 1 "February 9, 2025" "3.4.0"
.SH NAME
@ -1012,10 +1012,12 @@ Report issues or create pull requests at GitHub:
https://github.com/yadm-dev/yadm/issues
.SH AUTHOR
.SH AUTHORS
Tim Byrne <sultan@locehilios.com>
Erik Flodin <erik@flodin.me>
.SH SEE ALSO
.BR git (1),

75
yadm.md
View File

@ -28,11 +28,11 @@
yadm perms
yadm enter [ command ]
yadm enter [command]
yadm git-crypt [ options ]
yadm git-crypt [options]
yadm transcrypt [ options ]
yadm transcrypt [options]
yadm upgrade [-f]
@ -95,9 +95,9 @@
decrypt
Decrypt all files stored in $HOME/.local/share/yadm/archive.
Files decrypted will be relative to the configured work-tree
(usually $HOME). Using the -l option will list the files stored
without extracting them.
Files decrypted will be relative to the configured work-
tree (usually $HOME). Using the -l option will list the files
stored without extracting them.
encrypt
Encrypt all files matching the patterns found in $HOME/.con
@ -178,8 +178,8 @@
use the yadm repository.
transcrypt enables transparent encryption and decryption of
files in a git repository. You can read
https://github.com/elasticdog/transcrypt for details.
files in a git repository. You can read https://github.com/elas
ticdog/transcrypt for details.
upgrade
Version 3 of yadm uses a different directory for storing data.
@ -223,7 +223,7 @@
The following is the full list of universal options. Each option
should be followed by a path.
-Y,--yadm-dir
-Y, --yadm-dir
Override the yadm directory. yadm stores its configurations
relative to this directory.
@ -329,8 +329,9 @@
Disable the permission changes to $HOME/.ssh/*. This feature is
enabled by default.
The following five "local" configurations are not stored in the
$HOME/.config/yadm/config, they are stored in the local repository.
The following "local" configurations are not stored in the $HOME/.con
fig/yadm/config, they are stored in the local repository.
local.class
@ -354,6 +355,14 @@
local.user
Override the user for the purpose of symlinking alternate files.
local.distro
Override the distro for the purpose of symlinking alternate
files.
local.distro-family
Override the distro family for the purpose of symlinking alter
nate files.
## ALTERNATES
When managing a set of files across different systems, it can be useful
@ -377,6 +386,8 @@
<attribute>[.<value>]
NOTE: Value is compared case-insensitive.
These are the supported attributes, in the order of the weighted prece
dence:
@ -406,7 +417,8 @@
distro_family, f
Valid if the value matches the distro family. Distro family is
calculated by inspecting the ID_LIKE line from /etc/os-release.
calculated by inspecting the ID_LIKE line from /etc/os-release
(or ID if no ID_LIKE line is found).
os, o Valid if the value matches the OS. OS is calculated by running
uname -s.
@ -424,6 +436,7 @@
certain extension to e.g. make editors highlight the content
properly.
NOTE: The OS for "Windows Subsystem for Linux" is reported as "WSL",
even though uname identifies as "Linux".
@ -486,7 +499,7 @@
then no link will be created.
Links are also created for directories named this way, as long as they
have at least one yadm managed file within them (at the top level).
have at least one yadm managed file within them.
yadm will automatically create these links by default. This can be dis
abled using the yadm.auto-alt configuration. Even if disabled, links
@ -500,9 +513,10 @@
yadm config local.class Work
Similarly, the values of architecture, os, hostname, and user can be
manually overridden using the configuration options local.arch, lo
cal.os, local.hostname, and local.user.
Similarly, the values of architecture, os, hostname, user, distro, and
distro_family can be manually overridden using the configuration op
tions local.arch, local.os, local.hostname, local.user, local.distro,
and local.distro-family.
## TEMPLATES
@ -519,6 +533,9 @@
on most *nix systems. To use this processor, specify the value
of "default" or just leave the value off (e.g. "##template").
NOTE: This template processor performs case-insensitive compari
sions in if statements.
ESH ESH is a template processor written in POSIX compliant shell. It
allows executing shell commands within templates. This can be
used to reference your own configurations within templates, for
@ -534,6 +551,7 @@
envtpl To use the envtpl Jinja template processor, specify the value of
"j2" or "envtpl".
NOTE: Specifying "j2" as the processor will attempt to use j2cli or en
vtpl, whichever is available.
@ -614,19 +632,19 @@
are supported. gpg is used by default, but openssl can be configured
with the yadm.cipher configuration.
To use this feature, a list of patterns must be created and saved as
$HOME/.config/yadm/encrypt. This list of patterns should be relative
to the configured work-tree (usually $HOME). For example:
To use this feature, a list of patterns (one per line) must be created
and saved as $HOME/.config/yadm/encrypt. This list of patterns should
be relative to the configured work-tree (usually $HOME). For example:
.ssh/*.key
.gnupg/*.gpg
Standard filename expansions (*, ?, [) are supported. If you have Bash
version 4, you may use "**" to match all subdirectories. Other shell
Standard filename expansions (*, ?, [) are supported. Two consecutive
asterisks "**" can be used to match all subdirectories. Other shell
expansions like brace and tilde are not supported. Spaces in paths are
supported, and should not be quoted. If a directory is specified, its
contents will be included, but not recursively. Paths beginning with a
"!" will be excluded.
contents will be included. Paths beginning with a "!" will be ex
cluded.
The yadm encrypt command will find all files matching the patterns, and
prompt for a password. Once a password has confirmed, the matching
@ -661,6 +679,7 @@
- https://github.com/AGWA/git-crypt
## PERMISSIONS
When files are checked out of a Git repository, their initial permis
sions are dependent upon the user's umask. Because of this, yadm will
@ -714,6 +733,12 @@
YADM_HOOK_COMMAND
The command which triggered the hook
YADM_HOOK_DATA
The path to the yadm data directory
YADM_HOOK_DIR
The path to the yadm directory
YADM_HOOK_EXIT
The exit status of the yadm command
@ -799,9 +824,11 @@
https://github.com/yadm-dev/yadm/issues
## AUTHOR
## AUTHORS
Tim Byrne <sultan@locehilios.com>
Erik Flodin <erik@flodin.me>
## SEE ALSO
git(1), gpg(1) openssl(1) transcrypt(1) git-crypt(1)

View File

@ -1,7 +1,7 @@
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
Name: yadm
Summary: Yet Another Dotfiles Manager
Version: 3.3.0
Version: 3.4.0
Group: Development/Tools
Release: 1%{?dist}
URL: https://yadm.io