| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
The GitHub community page looks for this hardcoded file path. We could
wait until it understands other file paths and other wording, or we
could add this file with a link to the code of conduct.
I'll save the filename fight for another time. Here, have a redirect.
|
| |
|
|
|
|
| |
This commit fixes #197.
|
|
|
|
|
|
|
|
| |
Document the contract between maintainer, committer, contributor, and
meta-contributors.
This documents how it currently works, not how we wish it to work. Start
there so that we can consciously improve.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The `[` command, which is a builtin for dash, does not understand the
`==` operator; this should be `=` instead.
While here, more quotes in more places, including around `$*`.
`CONFIG_SHELL=/bin/dash ./configure && make check` reports no failed test.
Closes #200.
|
| |
|
| |
|
|
|
|
| |
Big ups to Eric Collins for leading this charge.
|
|
|
|
| |
I need to automate this.
|
| |
|
|
|
|
| |
Add Korora, Arch, and MacPorts maintainers.
|
|
|
|
|
| |
- Use SHA256 in Arch and Homebrew packages.
- Use OpenSSL to calculate the SHA256 sum, for portability.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In mkrc, separate the list of files with newlines instead of spaces.
Change the `$IFS` when iterating to handle this.
We hand the file off to rcup, which encodes the file name by replacing
spaces with the bell character (`\a`).
rcup then sends the file name off to lsrc, which decodes the bell back
into a space.
The test makes sure an `a` character is in the filename, in case some
encoding goes wrong. We use tr(1) instead of sed(1) because tr(1)
handles `\a`.
Shoutout to Sublime Text 3 for forcing this issue.
|
|
|
|
|
|
|
| |
Pass the dotfiles subdir along with the file to `is_excluded` so that we
can match against it.
Preserve single-file compatibility by looping twice.
|
|
|
|
|
|
|
| |
Run the hooks in alphabetical order so that people can more predictably
manage their hooks.
While here, clean up the NEWS.md.in.
|
|
|
|
|
|
|
|
|
| |
Korora can make use of Fedora packages by specifying the version and
architecture explictly.
Rephrased by Mike Burns for consistency.
Closes #176.
|
| |
|