summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Last-minute changesv1.2.1Gravatar Mike Burns2014-03-07
| | | | | * Debian package has a -2 in its filename. Of course. * Build HTML docs in the top-level gh-pages directory.
* Update installation instructions for 1.2.1Gravatar Mike Burns2014-03-07
| | | | | This also ties up any loose ends, including where to find the tarball and how to contribute.
* Manpage cleanupGravatar Mike Burns2014-03-07
| | | | | | | | * Make sure `rcm` is mentioned in every `.Nd`, so that it will appear in whatis(1). * Every `.Bl -tag` must have a `-width`. * Put the sections in a consistent order, as defined my mandoc. * A `.Sh` should not be followed by a `.Pp`.
* Document glob bugsGravatar Mike Burns2014-03-07
| | | | | | | | | | Until we can get a handle on globbing, we cannot close #11. That bug is the last remaining ticket blocking the 1.2.1 release. However, it may involve a larger modification than a patch release should. Documenting allows us to make the release while working on the bug for the next release. http://1389blog.com/pix/thats-a-feature-not-a-bug.jpg
* Fix bad merge in run_hooksGravatar patrick brisbin2014-03-06
| | | | | | It's likely that while shuffling commits for the quoting of "$@" issue, some lines were kept from both that branch and master resulting in an invalid state.
* Quote $@Gravatar patrick brisbin and Mike Burns2014-03-05
| | | | | | | | | Most of this commit is actually about $IFS. Modifying the environment for a single invocation (i.e. with `VAR=x command` or `env VAR=x command`) only works for actual commands, not a built-in like `set`. Consequently, we must manually store the existing $IFS value and restore it after invoking `set`.
* Add quoting, remove backticks, use $PWDGravatar patrick brisbin2014-03-05
| | | | | * 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
* Update NEWSGravatar Mike Burns2014-03-05
| | | | | | All future pull requests and commits should at least consider updating the `NEWS.md.in` file. Updating it with what's been done so far is a great first step to trying to make that happen.
* Symlink dirs that are tag- or host-specificGravatar Mike Burns2014-03-04
| | | | | The original `SYMLINK_DIRS` pull request had ignored the tag- and host-specific sections. This brings them back into being.
* Add quoting, remove backticks, use $PWDGravatar patrick brisbin2014-03-04
| | | | | | | | | * 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.
* Quotes around the arguments to diffGravatar Caleb Land2014-03-03
|
* Correctly set hook_file in run_hooksGravatar patrick brisbin2014-02-28
| | | | | | | | | | The code was setting the $hook_file variable to $dotfiles_dir/hooks/$when-$direction outside of the loop which actually sets the $dotfiles_dir variable to each of the dotfiles directories being processed in turn. This would lead to (for example) /hooks/post-up which is not correct. The fix is to move that logic into the loop.
* Add a list of contributors to rcm(7)Gravatar Mike Burns2014-02-28
| | | | | | | | | | | | | | This list is an alphabetical listing of everyone who has authored at least one commit, plus their email address. When the author is a coworker I have changed this to use their thoughtbot email address. This also updates the `AUTHORS` section to mention thoughtbot. The `NEWS.md.in` file has been changed to reflect that 1.2.0 is released. A `CONTRIBUTING.md` file has been added to explain what is required to send a good contribution.
* Quote the PWDGravatar Mike Burns2014-02-27
| | | | | | | | | This allows for users to run this command from within directories that have spaces in their path. I've also quoted `DOTFILES_DIR` in more places, but this is so far a waste: we still don't support dotfiles directories with spaces in their name.
* -d is relative to the $PWDGravatar Mike Burns2014-02-27
| | | | | | | | | | | | | | | | | | | | | | | This case fails: ~% lsrc -d foo -d bar /home/mike/.zshrc:/home/mike/foo/zshrc Because: skipping non-existent directory: /home/mike/foo/bar However, giving the absolute path fixes it: ~% lsrc -d $PWD/foo -d $PWD/bar /home/mike/.zshrc:/home/mike/foo/zshrc /home/mike/.vimrc:/home/mike/bar/vimrc In this commit we fix this by storing the user's working directory when they start, and always `cd`ing back before changing dotfile directory. In this way they are always relative to the current working directory. Fixes #21.
* Handle more files with spaces and special charsGravatar Caleb Land2014-02-27
|
* Start bringing in the Makefile.am from gitshGravatar Mike Burns2014-02-26
| | | | | | | | | | | It introduces the `Makefile.am` from gitsh, and abstracts it a bit. This `Makefile.am`, or most of it, could be dropped into gitsh again. How to use it is documented in `DEVELOPERS.md`. The whole release process is more consistent and simple: `make release` to build a tarball, Homebrew, Arch, Debian, HTML (from manpages), and tag it, pushed to the various repos, and with cleanup. The `release` target is composed of smaller targets that stack well.
* Add install instruction on Gentoo-based systemsGravatar Anton Ilin2014-02-24
| | | | | | Add instruction how to install rcm on a Gentoo-based GNU/Linux distribution. Currently the overlay is maintained by Anton Ilin (bronislav).
* Add sigil (`$`) for symlinked dir for lsrc -FGravatar Pablo Olmos de Aguilera Corradini2014-02-24
| | | | | | | The `$` sigil in `-F` indicates that the directory is symlinked instead of recurred upon. Fixes #37.
* Fix error when hooks files/dirs don't existGravatar Pablo Olmos de Aguilera Corradini2014-02-24
| | | | | | | We had been relying on `hooks/pre-up` and `hooks/post-up` files to exist. This explicitly checks first. Fixes #34.
* Use sed to split out the short hostnameGravatar Mike Burns2014-02-19
| | | | | | | | Instead of using the non-standard `-s` argument to `hostname`, use `sed` to split out everything after the first period. This fixes lsrc(1) on Cygwin, among others. Fixes #28.
* Force some directories to be symlinksGravatar Pablo Olmos de Aguilera Corradini and Mike Burns2014-02-18
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Allow {pre,post}-up hook directoriesGravatar Pablo Olmos de Aguilera Corradini2014-02-07
| | | | | If the `pre-up` or `post-up` files are actually directories, run the executable contents of them in an arbitrary order.
* Fixed typoGravatar Jordan Eldredge2014-02-06
| | | Someone had dots on the brain
* Bump to 1.2.0.v1.2.0Gravatar Mike Burns2014-02-03
|
* Fix NEWS format, fix typoGravatar Mike Burns2014-02-03
| | | | | | | * The NEWS format was off: bullets must be preceded by two spaces. * The word 'committing' was misspelled; hats off to debbuild's linter for catching this.
* Update the NEWSGravatar Mike Burns2014-02-03
|
* Rename the homebrew repo.Gravatar George Brocklehurst2014-01-31
| | | | Having a single homebrew tap for all of thoughtbot's projects makes sense.
* Fixed typo in rcm manpageGravatar Roberto Pedroso2014-01-27
|
* Unset the CDPATH before running the programGravatar Mike Burns2014-01-27
| | | | | | | | | | | | | | | | | As reported in #23, you can trick `rcup` into installing into `.` with this `CDPATH`: export CDPATH=/tmp:. As described [online][1], it is a mistake to export the `CDPATH` environment variable to begin with. Since it is a one-liner to work around it, though, it's worth fixing. The workaround is to unset `CDPATH` at the beginning of the script. This does not affect the outside environment, it only affects the script and its functions. [1]: http://bosker.wordpress.com/2012/02/12/bash-scripters-beware-of-the-cdpath/
* Prefer RCRC environment variable over ~/.rcrcGravatar patrick brisbin2013-12-11
| | | | | | | | | * 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).
* Add generated files to .gitignoreGravatar patrick brisbin2013-12-10
|
* Run hooks by default, as the manpage indicatesGravatar patrick brisbin2013-12-10
|
* Mention rcdnGravatar Mike Burns2013-12-09
|
* Reference the thoughtbot URLsGravatar Mike Burns2013-12-09
| | | | | Now that Mike (that's me) transfered this project to thoughtbot, move all the URLs to thoughtbot-specific ones, too.
* Show a difference between moving and link in mkrcGravatar Pablo Olmos de Aguilera Corradini2013-10-08
| | | | | | | | | | | | | | | | | 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.
* Fix typo in rcm man pageGravatar Dan Croak2013-10-02
| | | | The word "multiple" was misspelled.
* Upgrade to automake 1.14Gravatar Mike Burns2013-09-14
| | | | | This is what FreeBSD has in its ports tree and is the latest as of 21 June 2013.
* Build HTML docs for rcdn(1)Gravatar Mike Burns2013-09-12
| | | | | | The Makefile did not explcitly list rcdn(1), so the HTML was never generated for it. Temporary fix: also list rcdn(1) in the Makefile. Desired long-term fix: use the man/Makefile to generate the HTML docs.
* 1.1 buld cruftGravatar Mike Burns2013-09-12
| | | | Running autogen.sh changes these files. Clearly they must be important.
* Bump to 1.1.0v1.1.0Gravatar Mike Burns2013-09-12
|
* Add -h for lsrc, mkrc, rcdn, rcupGravatar Mike Burns2013-08-16
| | | | Quick usage summaries for the four commands.
* Add -kK for rcup and rcdnGravatar Mike Burns2013-08-16
| | | | | The hooks can be skipped using `-K`, if needed and they can be forced with the `-k` flag.
* Pre-up, post-up, pre-down, and post-down hooksGravatar Mike Burns2013-08-16
| | | | | | | | | | | | | | | | These are programs that, if they exist, will run before or after the syncronization/removal is run. Three use cases caused this: 1. The thoughtbot dotfiles will run a vundle installation set of commands after intitial synchronization. 2. I changed the location of `.bash_history` to `.bash/history` and wanted to move `.bash_history` to `.bash/history` after up to preserve existing history. 3. Moving from an existing old-style custom install script to `rcup` might require some cleanup; this happened in practice, and required a simple script.
* Document the hostname bugfix in NEWS.md.inGravatar Mike Burns2013-08-11
|
* Add the COPY_ALWAYS optionGravatar Mike Burns2013-08-11
| | | | | | | | | | | | | | | | | | | | The suite now honors the `COPY_ALWAYS` option in rcrc(5). This can be set to a space-separated list of file globs. Any file matching a glob is copied instead of symlinked. This is handy both for secure programs (`netrc`, `ssh/id_*`) and for programs that oddly re-write files (`weechat/*`). To always copy everything, use the `*` glob. This is reflected throughout the suite as follows: * lsrc now has a `-F` option which shows a symbol to indicate whether it is a symlink (`@`) or a copy (`X`). * rcdn only removes symlinks unless the file under question matches a `COPY_ALWAYS` glob, in which case it is removed regardless of whether it is a symlink. * rcup will copy instead of symlinking any file that matches any `COPY_ALWAYS` glob.
* Change `-e` to `-x`Gravatar Mike Burns2013-08-11
| | | | | | Since the `-e` flag was for exclude patterns, and since it's rare for a word with an `x` to come along, change the `-e` flag to `-x`. Better to do it now before a new release.
* rcdn only removes symlinksGravatar Mike Burns2013-08-11
| | | | | | | | | | | | | | | | | | | Picture this case: % ls -l ~/.a ~/.a -> ~/.dotfiles/a % tree ~/.dotfiles/a a `-- b `-- c `-- d `-- foo Ideally we would want `~/.a/b/c/d/foo` to be the symlink, and the rest to be actual directories. However, some people did it differently. Running `rcdn` on the above would previously have removed `foo` from `~/.dotfiles`. Now, it removes `~/.a` and nothing more.
* Upgrade to automake 1.13.3 and autoconf 2.69Gravatar Mike Burns2013-08-11
| | | | This is what is in Debian testing.
* Fix inconsistent hostname handlingGravatar George Brocklehurst2013-08-06
| | | | | | `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.