Release 2.2.0
Update version number and update documentation * Resolve hostname using `uname -n` (#182) * Use /etc/os-release if lsb_release is missing (#175) * Issue warning for any invalid alternates found (#183) * Add support for gawk (#180)
This commit is contained in:
parent
397d45ccd0
commit
96bce8dbac
7 changed files with 52 additions and 41 deletions
6
CHANGES
6
CHANGES
|
@ -1,3 +1,9 @@
|
||||||
|
2.2.0
|
||||||
|
* Resolve hostname using `uname -n` (#182)
|
||||||
|
* Use /etc/os-release if lsb_release is missing (#175)
|
||||||
|
* Issue warning for any invalid alternates found (#183)
|
||||||
|
* Add support for gawk (#180)
|
||||||
|
|
||||||
2.1.0
|
2.1.0
|
||||||
* Use relative symlinks for alternates (#100, #177)
|
* Use relative symlinks for alternates (#100, #177)
|
||||||
* Support double-star globs in .config/yadm/encrypt (#109)
|
* Support double-star globs in .config/yadm/encrypt (#109)
|
||||||
|
|
|
@ -4,21 +4,22 @@ Tim Byrne
|
||||||
Espen Henriksen
|
Espen Henriksen
|
||||||
Ross Smith II
|
Ross Smith II
|
||||||
Cameron Eagans
|
Cameron Eagans
|
||||||
David Mandelberg
|
|
||||||
Klas Mellbourn
|
Klas Mellbourn
|
||||||
|
David Mandelberg
|
||||||
|
Daniel Gray
|
||||||
Jan Schulz
|
Jan Schulz
|
||||||
Satoshi Ohki
|
|
||||||
Sheng Yang
|
|
||||||
Siôn Le Roux
|
Siôn Le Roux
|
||||||
Sébastien Gross
|
Sébastien Gross
|
||||||
Thomas Luzat
|
Thomas Luzat
|
||||||
Tomas Cernaj
|
Tomas Cernaj
|
||||||
Uroš Golja
|
Uroš Golja
|
||||||
|
con-f-use
|
||||||
Brayden Banks
|
Brayden Banks
|
||||||
japm48
|
japm48
|
||||||
Daniel Gray
|
|
||||||
Daniel Wagenknecht
|
Daniel Wagenknecht
|
||||||
Franciszek Madej
|
Franciszek Madej
|
||||||
Mateusz Piotrowski
|
Mateusz Piotrowski
|
||||||
Paraplegic Racehorse
|
Paraplegic Racehorse
|
||||||
Patrick Hof
|
Patrick Hof
|
||||||
|
Satoshi Ohki
|
||||||
|
Sheng Yang
|
||||||
|
|
|
@ -42,7 +42,7 @@ Features, usage, examples and installation instructions can be found on the
|
||||||
[master-badge]: https://img.shields.io/travis/TheLocehiliosan/yadm/master.svg?label=master
|
[master-badge]: https://img.shields.io/travis/TheLocehiliosan/yadm/master.svg?label=master
|
||||||
[master-commits]: https://github.com/TheLocehiliosan/yadm/commits/master
|
[master-commits]: https://github.com/TheLocehiliosan/yadm/commits/master
|
||||||
[master-date]: https://img.shields.io/github/last-commit/TheLocehiliosan/yadm/master.svg?label=master
|
[master-date]: https://img.shields.io/github/last-commit/TheLocehiliosan/yadm/master.svg?label=master
|
||||||
[obs-badge]: https://img.shields.io/badge/OBS-v2.1.0-blue
|
[obs-badge]: https://img.shields.io/badge/OBS-v2.2.0-blue
|
||||||
[obs-link]: https://software.opensuse.org//download.html?project=home%3ATheLocehiliosan%3Ayadm&package=yadm
|
[obs-link]: https://software.opensuse.org//download.html?project=home%3ATheLocehiliosan%3Ayadm&package=yadm
|
||||||
[releases-badge]: https://img.shields.io/github/tag/TheLocehiliosan/yadm.svg?label=latest+release
|
[releases-badge]: https://img.shields.io/github/tag/TheLocehiliosan/yadm.svg?label=latest+release
|
||||||
[releases-link]: https://github.com/TheLocehiliosan/yadm/releases
|
[releases-link]: https://github.com/TheLocehiliosan/yadm/releases
|
||||||
|
|
2
yadm
2
yadm
|
@ -20,7 +20,7 @@ if [ -z "$BASH_VERSION" ]; then
|
||||||
[ "$YADM_TEST" != 1 ] && exec bash "$0" "$@"
|
[ "$YADM_TEST" != 1 ] && exec bash "$0" "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VERSION=2.1.0
|
VERSION=2.2.0
|
||||||
|
|
||||||
YADM_WORK="$HOME"
|
YADM_WORK="$HOME"
|
||||||
YADM_DIR=
|
YADM_DIR=
|
||||||
|
|
2
yadm.1
2
yadm.1
|
@ -1,5 +1,5 @@
|
||||||
." vim: set spell so=8:
|
." vim: set spell so=8:
|
||||||
.TH yadm 1 "27 November 2019" "2.1.0"
|
.TH yadm 1 "6 December 2019" "2.2.0"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
|
|
||||||
|
|
70
yadm.md
70
yadm.md
|
@ -363,46 +363,47 @@
|
||||||
|
|
||||||
distro, d
|
distro, d
|
||||||
Valid if the value matches the distro. Distro is calculated by
|
Valid if the value matches the distro. Distro is calculated by
|
||||||
running lsb_release -si.
|
running lsb_release -si or by inspecting the ID from /etc/os-
|
||||||
|
release.
|
||||||
|
|
||||||
os, o Valid if the value matches the OS. OS is calculated by running
|
os, o Valid if the value matches the OS. OS is calculated by running
|
||||||
uname -s.
|
uname -s.
|
||||||
|
|
||||||
class, c
|
class, c
|
||||||
Valid if the value matches the local.class configuration. Class
|
Valid if the value matches the local.class configuration. Class
|
||||||
must be manually set using yadm config local.class <class>. See
|
must be manually set using yadm config local.class <class>. See
|
||||||
the CONFIGURATION section for more details about setting
|
the CONFIGURATION section for more details about setting
|
||||||
local.class.
|
local.class.
|
||||||
|
|
||||||
hostname, h
|
hostname, h
|
||||||
Valid if the value matches the short hostname. Hostname is cal-
|
Valid if the value matches the short hostname. Hostname is cal-
|
||||||
culated by running hostname, and trimming off any domain.
|
culated by running uname -n, and trimming off any domain.
|
||||||
|
|
||||||
default
|
default
|
||||||
Valid when no other alternate is valid.
|
Valid when no other alternate is valid.
|
||||||
|
|
||||||
|
|
||||||
NOTE: The OS for "Windows Subsystem for Linux" is reported as "WSL",
|
NOTE: The OS for "Windows Subsystem for Linux" is reported as "WSL",
|
||||||
even though uname identifies as "Linux".
|
even though uname identifies as "Linux".
|
||||||
|
|
||||||
You may use any number of conditions, in any order. An alternate will
|
You may use any number of conditions, in any order. An alternate will
|
||||||
only be used if ALL conditions are valid. For all files managed by
|
only be used if ALL conditions are valid. For all files managed by
|
||||||
yadm's repository or listed in $HOME/.config/yadm/encrypt, if they
|
yadm's repository or listed in $HOME/.config/yadm/encrypt, if they
|
||||||
match this naming convention, symbolic links will be created for the
|
match this naming convention, symbolic links will be created for the
|
||||||
most appropriate version.
|
most appropriate version.
|
||||||
|
|
||||||
The "most appropriate" version is determined by calculating a score for
|
The "most appropriate" version is determined by calculating a score for
|
||||||
each version of a file. A template is always scored higher than any
|
each version of a file. A template is always scored higher than any
|
||||||
symlink condition. The number of conditions is the next largest factor
|
symlink condition. The number of conditions is the next largest factor
|
||||||
in scoring. Files with more conditions will always be favored. Any
|
in scoring. Files with more conditions will always be favored. Any
|
||||||
invalid condition will disqualify that file completely.
|
invalid condition will disqualify that file completely.
|
||||||
|
|
||||||
If you don't care to have all versions of alternates stored in the same
|
If you don't care to have all versions of alternates stored in the same
|
||||||
directory as the generated symlink, you can place them in the
|
directory as the generated symlink, you can place them in the
|
||||||
$HOME/.config/yadm/alt directory. The generated symlink or processed
|
$HOME/.config/yadm/alt directory. The generated symlink or processed
|
||||||
template will be created using the same relative path.
|
template will be created using the same relative path.
|
||||||
|
|
||||||
Alternate linking may best be demonstrated by example. Assume the fol-
|
Alternate linking may best be demonstrated by example. Assume the fol-
|
||||||
lowing files are managed by yadm's repository:
|
lowing files are managed by yadm's repository:
|
||||||
|
|
||||||
- $HOME/path/example.txt##default
|
- $HOME/path/example.txt##default
|
||||||
|
@ -425,7 +426,7 @@
|
||||||
|
|
||||||
$HOME/path/example.txt -> $HOME/path/example.txt##os.Darwin
|
$HOME/path/example.txt -> $HOME/path/example.txt##os.Darwin
|
||||||
|
|
||||||
Since the hostname doesn't match any of the managed files, the more
|
Since the hostname doesn't match any of the managed files, the more
|
||||||
generic version is chosen.
|
generic version is chosen.
|
||||||
|
|
||||||
If running on a Linux server named "host4", the link will be:
|
If running on a Linux server named "host4", the link will be:
|
||||||
|
@ -440,71 +441,74 @@
|
||||||
|
|
||||||
$HOME/path/example.txt -> $HOME/path/example.txt##class.Work
|
$HOME/path/example.txt -> $HOME/path/example.txt##class.Work
|
||||||
|
|
||||||
If no "##default" version exists and no files have valid conditions,
|
If no "##default" version exists and no files have valid conditions,
|
||||||
then no link will be created.
|
then no link will be created.
|
||||||
|
|
||||||
Links are also created for directories named this way, as long as they
|
Links are also created for directories named this way, as long as they
|
||||||
have at least one yadm managed file within them.
|
have at least one yadm managed file within them.
|
||||||
|
|
||||||
yadm will automatically create these links by default. This can be dis-
|
yadm will automatically create these links by default. This can be dis-
|
||||||
abled using the yadm.auto-alt configuration. Even if disabled, links
|
abled using the yadm.auto-alt configuration. Even if disabled, links
|
||||||
can be manually created by running yadm alt.
|
can be manually created by running yadm alt.
|
||||||
|
|
||||||
Class is a special value which is stored locally on each host (inside
|
Class is a special value which is stored locally on each host (inside
|
||||||
the local repository). To use alternate symlinks using class, you must
|
the local repository). To use alternate symlinks using class, you must
|
||||||
set the value of class using the configuration local.class. This is
|
set the value of class using the configuration local.class. This is
|
||||||
set like any other yadm configuration with the yadm config command. The
|
set like any other yadm configuration with the yadm config command. The
|
||||||
following sets the class to be "Work".
|
following sets the class to be "Work".
|
||||||
|
|
||||||
yadm config local.class Work
|
yadm config local.class Work
|
||||||
|
|
||||||
Similarly, the values of os, hostname, and user can be manually over-
|
Similarly, the values of os, hostname, and user can be manually over-
|
||||||
ridden using the configuration options local.os, local.hostname, and
|
ridden using the configuration options local.os, local.hostname, and
|
||||||
local.user.
|
local.user.
|
||||||
|
|
||||||
|
|
||||||
## TEMPLATES
|
## TEMPLATES
|
||||||
If a template condition is defined in an alternate file's "##" suffix,
|
If a template condition is defined in an alternate file's "##" suffix,
|
||||||
and the necessary dependencies for the template are available, then the
|
and the necessary dependencies for the template are available, then the
|
||||||
file will be processed to create or overwrite files.
|
file will be processed to create or overwrite files.
|
||||||
|
|
||||||
Supported template processors:
|
Supported template processors:
|
||||||
|
|
||||||
default
|
default
|
||||||
This is yadm's built-in template processor. This processor is
|
This is yadm's built-in template processor. This processor is
|
||||||
very basic, with a Jinja-like syntax. The advantage of this pro-
|
very basic, with a Jinja-like syntax. The advantage of this pro-
|
||||||
cessor is that it only depends upon awk, which is available on
|
cessor is that it only depends upon awk, which is available on
|
||||||
most *nix systems. To use this processor, specify the value of
|
most *nix systems. To use this processor, specify the value of
|
||||||
"default" or just leave the value off (e.g. "##template").
|
"default" or just leave the value off (e.g. "##template").
|
||||||
|
|
||||||
j2cli To use the j2cli Jinja template processor, specify the value of
|
j2cli To use the j2cli Jinja template processor, specify the value of
|
||||||
"j2" or "j2cli".
|
"j2" or "j2cli".
|
||||||
|
|
||||||
envtpl To use the envtpl Jinja template processor, specify the value of
|
envtpl To use the envtpl Jinja template processor, specify the value of
|
||||||
"j2" or "envtpl".
|
"j2" or "envtpl".
|
||||||
|
|
||||||
|
|
||||||
NOTE: Specifying "j2" as the processor will attempt to use j2cli or
|
NOTE: Specifying "j2" as the processor will attempt to use j2cli or
|
||||||
envtpl, whichever is available.
|
envtpl, whichever is available.
|
||||||
|
|
||||||
If the template processor specified is available, templates will be
|
If the template processor specified is available, templates will be
|
||||||
processed to create or overwrite files.
|
processed to create or overwrite files.
|
||||||
|
|
||||||
During processing, the following variables are available in the tem-
|
During processing, the following variables are available in the tem-
|
||||||
plate:
|
plate:
|
||||||
|
|
||||||
Default Jinja Description
|
Default Jinja Description
|
||||||
------------- ------------- --------------------------
|
------------- ------------- --------------------------
|
||||||
yadm.class YADM_CLASS Locally defined yadm class
|
yadm.class YADM_CLASS Locally defined yadm class
|
||||||
yadm.distro YADM_DISTRO lsb_release -si
|
yadm.distro YADM_DISTRO lsb_release -si
|
||||||
yadm.hostname YADM_HOSTNAME hostname (without domain)
|
yadm.hostname YADM_HOSTNAME uname -n (without domain)
|
||||||
yadm.os YADM_OS uname -s
|
yadm.os YADM_OS uname -s
|
||||||
yadm.user YADM_USER id -u -n
|
yadm.user YADM_USER id -u -n
|
||||||
yadm.source YADM_SOURCE Template filename
|
yadm.source YADM_SOURCE Template filename
|
||||||
|
|
||||||
NOTE: The OS for "Windows Subsystem for Linux" is reported as "WSL",
|
NOTE: The OS for "Windows Subsystem for Linux" is reported as "WSL",
|
||||||
even though uname identifies as "Linux".
|
even though uname identifies as "Linux".
|
||||||
|
|
||||||
|
NOTE: If lsb_release is not available, DISTRO will be the ID specified
|
||||||
|
in /etc/os-release.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
whatever##template with the following content
|
whatever##template with the following content
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
||||||
Name: yadm
|
Name: yadm
|
||||||
Summary: Yet Another Dotfiles Manager
|
Summary: Yet Another Dotfiles Manager
|
||||||
Version: 2.1.0
|
Version: 2.2.0
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
URL: https://yadm.io
|
URL: https://yadm.io
|
||||||
|
|
Loading…
Reference in a new issue