| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
| |
Under Solaris, use ksh instead of `/bin/sh`.
This uses `$SHELL` as a POSIX shell, coupled with a `configure` check
that sets it correctly.
Note that the POSIX shell might end up being bash, so this actually
introduces more fragmentation than it reduces.
Taken from https://github.com/freedreno/mesa/blob/master/configure.ac
|
|
|
|
|
|
|
|
|
|
| |
The `-v` (verbose) flag for `cp`, `ln`, and `rm` is not standard. It is
simple to implement using shell functions, so introduce `cp_v`, `ln_v`,
and `rm_v`. These shell functions use the existing `$VERBOSE` variable
for printing, which simplifies the code and reduces the number of
variables.
Fixes #61.
|
|
|
|
|
|
|
|
|
| |
* http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03
* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08
Fixes #46.
This does not handle quotes around `$@`. That is taken separately in #53.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Typically a directory structure is copied instead of symlinked, while
files are symlinked. However, some cases require symlinked dirs: git
submodules, vim plugins, and so on.
This introduces a `SYMLINK_DIRS` option for rcrc(5) that takes a
space-separated list of "exclude patterns". Any directory matching these
patterns is symlinked.
This also introduces a `-S` argument for lsrc(1), rcup(1), and rcdn(1).
This argument takes a pattern, for one-off directory symlinking. It can
be repeated.
This also introduces `-S` and `-s` for mkrc(1). `-S` will re-install the
files as symlinks, and `-s` will not.
This does work with `-C`, though perhaps unintuitively - we don't know
what the user means in this case. However, it will not crash.
Bug: `-s` does not work right if `SYMLINK_DIRS` is set. Bug #36
addresses this.
|
|
|
|
|
|
|
|
|
| |
* Centralize configuration loading in rcm.sh(.in)
* Check for readability, not just existence
Add RCRC notes to all manpages. Putting the environment variables in a
table lines them up more neatly and definitively, across all output
formats, and also follows the examples used by e.g. BSD ls(1).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I found that after you add a file with `mkrc` command from any dir, the output
looks like:
$ mkrc ~/.my-awesome-dot-file
‘$HOME/.my-awesome-dot-file -> ‘$HOME/.dotfiles/my-awesome-dot-file'
‘$HOME/.my-awesome-dot-file -> ‘$HOME/.dotfiles/my-awesome-dot-file'
$
It looks like the output it's appearing twice, which could led you believe
something went wrong or the output is a bit buggy. Obivously, it's not, and the
command ran without problems.
Use `$PRINT` to show which step it is on before the verbose messages are
displayed.
|
|
|
|
| |
Quick usage summaries for the four commands.
|
|
|
|
|
|
| |
`lsrc` was stripping hostname domain suffixes, but `mkrc` was not meaning
that `mkrc -o` didn't work correctly with a suffix. This was particularly
noticeable on OS X where the hostname has a `.local` suffix by default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some files prefer to be copies instead of symlinks---for example,
OpenSSH ignores symlinks. Add the `-C` option to mkrc(1) and rcup(1) to
handle this.
mkrc -C .ssh
rcup -C ssh
This does raise a synchronization problem that I do not yet know how to
solve; namely, what to do when the rc file changes. Perhaps a `rcsync`
command is in order; perhaps `rcup` should handle this; perhaps `rcsync`
is a better name for `rcup`.
|
|
|
|
|
|
|
|
|
|
|
| |
The `-I` flag serves as an "undo" for the `-e` pattern. It overrides any
matching exclusions, allowing for temporary
listing/installation/removal.
For example, if you want to try a `.pythonrc` but leave it in your
`EXCLUDES` in rcrc(5), you can do:
rcup -Ipythonrc pythonrc
|
|
|
|
|
|
|
|
| |
To make it easier to manage host-specific rc files, `mkrc` now supports
a `-o` option. This causes the specified file to be added to the host
section named for the current machine.
This option is in conflict with the `-t` option.
|
|
|
|
|
|
| |
Pull the `-V`, `-v`, `-q`, `-t`, and `-d` out into the
`handle_common_flags` and `handle_metadata_flags` functions, shared
between the different programs.
|
|
|
|
|
|
|
|
|
| |
Bugfix: passing `-d` to `mkrc` previously did not make the symlink. This
is now fixed.
We have previously installed the file by calling `rcup`, but we never
passed the `-d` flag to `rcup`. Instead, we `cd`ed. This changes it: no
`cd`, pass the `-d` flag.
|
|
|
|
|
|
| |
The `/usr/local/libexec` standard looks awkward on Debian, so after
careful and sad evaluation we've concluded that we do not, in fact,
execute the `rcm.sh` library. Move it to `/usr/local/share` instead.
|
|
|
|
|
|
|
| |
The very original name of the `mkrc` script was `dotfiles-add`, and that
name was still in the help text. Fixed.
Pointed out by George Brocklehurst.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `rcup` and `mkrc` commands now support multiple source directories.
This is useful for sharing dotfiles between friends, spliting dotfiles
into private and public ones, or other such situations.
In `mkrc` this support means that you can specify the destination
directory for your dotfile, either from the command-line or from you
`~/.rcrc` configuration.
In `rcup` this means that it will recur through all source directories,
in order, creating the symlinks as needed. This means that duplicated
files will not be overridden. The order can be specified by the `-d`
option, which can be repeated, or by the `DOTFILES_DIRS` option in your
`~/.rcrc` configuration. The `-d` option overrides the configuration.
For example, this configuration file will update from the two
directories in order:
DOTFILES_DIRS="/home/mike/.dotfiles/public /home/mike/.dotfiles/private"
Any source directories that don't exist are skipped.
|
|
|
|
|
|
|
| |
Add a flag to print the package version: `-V`.
This change also brings with it the libexec directory, so we can pull
common code out.
|
|
|
|
| |
I had `set -x` on in mkrc. Now it's off. Whew.
|
|
|
|
|
| |
Previously mkrc would make sure the dotfiles and tag directories existed
but ignore dot directories. Now it does all of that.
|
|
|
|
|
| |
Allow for creating new tags when making a new rc file using `mkrc`. If
you pass `-t foo` and `tag-foo` doesn't exist, it first makes it exist.
|
|
|
|
| |
mkrc previously hardcoded `./install`. Now it hardcodes `rcup`.
|
|
This adds mkrc and rcup, along with a Makefile to handle installation.
`rcup` is for installing files from the `~/.dotfiles` repo. It allows
for tagged files and host-specific files, and can install/update one-off
files.
`mkrc` is for moving a normal file into the dotfiles repo.
|