Skip to content

Commit

Permalink
Release 1.03
Browse files Browse the repository at this point in the history
Update version number and update documentation
  • Loading branch information
TheLocehiliosan committed Jan 9, 2016
1 parent 20f47be commit 10f8833
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 29 deletions.
3 changes: 3 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
1.03
* Add username matching for alternate files (PR #1)

1.02
* Handle permissions for `~/.gnupg/*gpg`

Expand Down
2 changes: 1 addition & 1 deletion yadm
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

VERSION=1.02
VERSION=1.03

YADM_WORK="$HOME"
YADM_DIR="$HOME/.yadm"
Expand Down
2 changes: 1 addition & 1 deletion yadm.1
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
." vim: set spell so=8:
.TH yadm 1 "12 August 2015" "1.02"
.TH yadm 1 "08 January 2016" "1.03"
.SH NAME
yadm \- Yet Another Dotfiles Manager
.SH SYNOPSIS
Expand Down
55 changes: 28 additions & 27 deletions yadm.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,12 +153,12 @@
## ALTERNATES
When managing a set of files across different systems, it can be useful
to have an automated way of choosing an alternate version of a file for
a different operation system or simply for a different host. yadm
implements a feature which will automatically create a symbolic link to
the appropriate version of a file, as long as you follow a specific
naming convention. yadm can detect files with names ending in:
a different operation system, host, or user. yadm implements a feature
which will automatically create a symbolic link to the appropriate ver-
sion of a file, as long as you follow a specific naming convention.
yadm can detect files with names ending in:

##OS.HOSTNAME or ##OS or ##
## or ##OS or ##OS.HOSTNAME or ##OS.HOSTNAME.USER

If there are any files managed by yadm's repository which match this
naming convention, symbolic links will be created for the most appro-
Expand Down Expand Up @@ -194,50 +194,51 @@

$HOME/path/example.txt -> $HOME/path/example.txt##

If no "##" version exists and no files match the current OS or HOST-
NAME, then no link will be created.
If no "##" version exists and no files match the current OS/HOST-
NAME/USER, then no link will be created.

OS is determined by running uname -s, and HOSTNAME by running host-
name -s. yadm will automatically create these links by default. This
can be disabled using the yadm.auto-alt configuration. Even if dis-
abled, links can be manually created by running yadm alt.
OS is determined by running uname -s, HOSTNAME by running hostname -s,
and USER by running id -u -n. yadm will automatically create these
links by default. This can be disabled using the yadm.auto-alt configu-
ration. Even if disabled, links can be manually created by running
yadm alt.

## ENCRYPTION
It can be useful to manage confidential files, like SSH or GPG keys,
across multiple systems. However, doing so would put plain text data
into a Git repository, which often resides on a public system. yadm
implements a feature which can make it easy to encrypt and decrypt a
set of files so the encrypted version can be maintained in the Git
repository. This feature will only work if the gpg(1) command is
It can be useful to manage confidential files, like SSH or GPG keys,
across multiple systems. However, doing so would put plain text data
into a Git repository, which often resides on a public system. yadm
implements a feature which can make it easy to encrypt and decrypt a
set of files so the encrypted version can be maintained in the Git
repository. This feature will only work if the gpg(1) command is
available.

To use this feature, a list of patterns must be created and saved as
$HOME/.yadm/encrypt. This list of patterns should be relative to the
To use this feature, a list of patterns must be created and saved as
$HOME/.yadm/encrypt. This list of patterns should be relative to the
configured work-tree (usually $HOME). For example:

.ssh/*.key
.gnupg/*.gpg

The yadm encrypt command will find all files matching the patterns, and
prompt for a password. Once a password has confirmed, the matching
files will be encrypted and saved as $HOME/.yadm/files.gpg. The pat-
terns and files.gpg should be added to the yadm repository so they are
prompt for a password. Once a password has confirmed, the matching
files will be encrypted and saved as $HOME/.yadm/files.gpg. The pat-
terns and files.gpg should be added to the yadm repository so they are
available across multiple systems.

To decrypt these files later, or on another system run yadm decrypt and
provide the correct password. After files are decrypted, permissions
provide the correct password. After files are decrypted, permissions
are automatically updated as described in the PERMISSIONS section.

NOTE: It is recommended that you use a private repository when keeping
NOTE: It is recommended that you use a private repository when keeping
confidential files, even though they are encrypted.

## PERMISSIONS
When files are checked out of a Git repository, their initial permis-
When files are checked out of a Git repository, their initial permis-
sions are dependent upon the user's umask. This can result in confiden-
tial files with lax permissions.

To prevent this, yadm will automatically update the permissions of con-
fidential files. The "group" and "others" permissions will be removed
fidential files. The "group" and "others" permissions will be removed
from the following files:

- $HOME/.yadm/files.gpg
Expand All @@ -249,7 +250,7 @@
- The GPG directory and files, .gnupg/*

yadm will automatically update permissions by default. This can be dis-
abled using the yadm.auto-perms configuration. Even if disabled, per-
abled using the yadm.auto-perms configuration. Even if disabled, per-
missions can be manually updated by running yadm perms. The SSH direc-
tory processing can be disabled using the yadm.ssh-perms configuration.

Expand Down

0 comments on commit 10f8833

Please sign in to comment.