| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
* 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).
|
| |
| |
| |
| |
| | |
- Update NEWS.
- Homebrew is now part of the official Homebrew package set.
|
| |
| |
| |
| | |
See https://github.com/Homebrew/homebrew-core/commit/acac1ed26447b9f9acad937dc74451c503ac8ad6
|
| |
| |
| |
| |
| | |
Fix $ sigil for lsrc -F
Add test
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Martin is right: "Debian-based" being first is confusing for more
specific Debian-based OSes. Let's try being explicit about the fact that
Ubuntu is further down.
They're intentionally alphabetical so it doesn't seem like we give
higher priority to one over the other.
|
| |
| |
| |
| |
| |
| | |
This change helps avoid confusion from Ubuntu users not reading all the
way down to the Ubuntu installation instructions but instead stopping at
the "Debian-based" chunk.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As of Ubuntu 19.04 (Disco Dingo), rcm is now available in the Universe
package repository.
The ppa will no longer be necessary for future versions of Ubuntu but
will be kept around until the older releases are EOL.
Also, add a line to ensure that `software-properties-common` is
installed. It is for instance not included in the bare `ubuntu:16.04`
docker image.
Add software-properties-common
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are several problems leading to the unintentional globbing issue:
Firstly, within `rcup` and `rcdn`, when constructing arguments to pass
to `lsrc`, the _for_ loops over the arguments do not have quoted
variables, leading to globbing. I have quoted these accordingly.
Secondly, `lsrc` is invoked as follows:
```sh
dests_and_srcs="$(lsrc $LS_ARGS)"
```
When shells use command substitution like this, they go through two stages:
- Word expansion. This is useful because it splits `LS_ARGS` back up
into its constituent strings.
- File name expansion. The side effect of this is to introduce globbing.
You can read more about how this works [here](https://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html#sect_03_04_07).
To fix this, I have passed `lsrc` and its arguments to `eval`. This
involves quoting the relevant arguments, so:
```sh
for dotfiles_dir in "$DOTFILES_DIRS"; do
LS_ARGS="$LS_ARGS -d $dotfiles_dir"
done
```
becomes
```sh
for dotfiles_dir in "$DOTFILES_DIRS"; do
LS_ARGS="$LS_ARGS -d \"$dotfiles_dir\""
done
```
Then `lsrc` is invoked as follows:
```sh
dests_and_srcs="$(eval "lsrc $LS_ARGS")"
```
There is one final non-globbing issue: the parsing of arguments can
introduce extra spaces in the variables, which then trip up the
`dotfiles_dir_excludes` function. For example:
```sh
I) includes="$includes $OPTARG";;
```
introduces a space if `includes` is empty or null.
I have introduced the function `append_variable`, which allows two
variables to be appended without introducing unnecessary whitespace.
Then the additional whitespace is never added in the first place.
Fixes #256.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We have a bug when calling mkrc(1) on a symlink:
```sh
mkrc ~/.vimrc # links ~/.vimrc to ~/.dotfiles/vimrc
mkrc ~/.vimrc # deletes ~/.dotfiles/vimrc
```
This catches that case ahead of time, preventing the user from running
mkrc(1) on a symlink.
Fix #144.
|
| | |
|
| |
| |
| |
| | |
No changes were required.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
rcm only requires a POSIX-compliant shell – not Bash. The various sh
options in Debian are POSIX-compliant, and many of them are
substantially faster than Bash. Force rcm to run under /bin/sh.
|
| |
| |
| |
| |
| | |
Debian isn’t macOS; our man pages don’t need to cover hostname(1)’s
foibles there.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Upstream puts the output of git-shortlog into a man page. However,
that’s not suitable for Debian – we can’t ship the entire Git history
in a source package. It’s also unclear whether contributor lists even
really belong in a man page. Pregenerate the contributor list, and
install it in /usr/share/doc/rcm.
Future developers: You can regenerate the contributor list with
git shortlog -es v$UPSTREAM_VERSION >debian/doc/CONTRIBUTORS
|
| | |
|
| | |
|
| |
| |
| | |
rcm is now in the main Fedora repositories for all current (non-EOL) Fedora versions. The COPR repository is no longer required.
|
|/ |
|
|
|
|
| |
A last-minute bug fix from Eric Collins, accidentally overlooked.
|
|
|
|
|
| |
Still does not expand in every usecase, possibly does not expand in all
DOTFILE_DIRS usecases.
|
| |
|
|
|
| |
I have not been using FreeBSD for a while now. As such, I'm not able to keep maintaining the FreeBSD package.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The Homebrew update is [thanks to Fabian Mettler].
[thanks to Fabian Mettler]: https://github.com/thoughtbot/homebrew-formulae/pull/42
---
I don't maintain the Arch or Debian packages, so remove their details
from these docs.
|
| |
|
|
|
|
| |
Compiled out of a casual bit of sleuthing.
|
| |
|
|
|
|
| |
While here: OpenBSD is in -release, not just -current.
|
|
|
|
|
|
| |
As of Alpine 3.8.0, rcm is available at the [community repository].
[community repository]: https://pkgs.alpinelinux.org/packages?name=rcm&branch=v3.8
|
| |
|
|
|
|
|
|
|
|
| |
With this change, Debian packages are downloaded over HTTPS. On Debian
stretch and earlier this requires installation of the
[apt-transport-https](https://packages.debian.org/stretch/apt-transport-https)
package. Debian buster and later provide apt≥1.5 which has built-in
support for HTTPS repositories.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Well, $LOGNAME is defined by POSIX (see
a801c4c58902cae7b835d890487edc39bd7da142) but it's not appearing in
reality under clean environments:
~% env -i /bin/bash
mike:/home/mike$ echo $LOGNAME
mike:/home/mike$ exit
~% env -i /bin/dash
$ echo $LOGNAME
$ exit
~% env -i /bin/ksh
$ echo $LOGNAME
$ exit
~% env -i /usr/bin/zsh
~% echo $LOGNAME
mike
~% exit
Fall back to whoami(1) when $LOGNAME is not set.
Modify one of the tests to run with a restricted environment in order to
test this. I had tried modifying the test-driver to run all tests in a
restricted environment but the test-driver script is generated by
Automake.
Closes #165.
|
| |
|
| |
|
| |
|
|
|
| |
Replace OS X with macOS
|
|
|
| |
Replace OS X with macOS
|
|
|
|
| |
Replace OS X with macOS
|
| |
|
|
|
|
|
|
|
| |
The `COPY_ALWAYS`, `EXCLUDES`, `SYMLINK_DIRS`, and `UNDOTTED` variables
in rcrc(5) can contain globs. We want to expand `~` and e.g. `~dmr` but
not `*`; therefore, we cannot perform tilde expansion within those
variables.
|
|
|
|
|
| |
Hat tip to fgatham for the `eval echo` tip. This means both `~` and e.g.
`~dmr` work correctly.
|