summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Update documentation on usageGravatar Mike Burns2014-05-09
| | | | | | | | | | | | | | | | | New flags have accumulated without proper care for the usage instructions or man pages. I manually went through each program and verified its usage instruction against its `getopts`, then I alphabeticalized the usage message. Based on the usage message, I then verified the synposis in the manpage. Then, based on the synposis, I alphabeticalized the detailed listing of the arguments and filled in the missing pieces. The `-h` and `-V` arguments were missing from all manpages. In the future we will need to be more careful about this. It would be good to automate a checker that refuses to build unless the docs have all the flags mentioned.
* Document the wild hostname(1) issue on OS XGravatar Mike Burns2014-05-09
| | | | | | | | | | | | | | As described in #82, the hostname on OS X can vary: - The result of hostname(1) can change depending on DHCP settings; by default, as you move between networks, your hostname will change. - The value for `ComputerName` as set in scutil(8) contains values that are inappropriate for a directory name (spaces, quotes, and so on), and is blank by default. - The value for `LocalHostName` changes based on DNS and DHCP settings. Therefore, OS X users are highly encouraged to set a hostname using the `HOSTNAME` variable in rcrc(5).
* Add a hostname overrideGravatar Mike Burns2014-05-07
| | | | | | | | | | | | | | | | | | | Based on issue #82, we now provide `-B` to override the hostname. In particular: - `mkrc -B foo` will enable `-o` but with the hostname set up `foo`. - `lsrc -B foo` will work like normal `lsrc` except it treats `host-foo` as the host-specific directory. - `rcup -B foo` will run a normal `rcup` except `host-foo` is the host-specific directory. - `rcdn -B foo` is just like normal `rcdn`, but with `host-foo` as the host-specific directory. The `HOSTNAME` can also be set in the rcrc(5), and this is overridden by the aforementioned `-B`. While making this change: The `test/Makefile.am` used a mix of tabs and spaces. Since it's a Makefile, replace it all with tabs.
* Bugfix: do not break out of the for loopGravatar Mike Burns2014-05-06
| | | | | | | | A `break` anywhere inside a `for` loop (even inside a `case`) will exit from the innermost loop. Replace the `break` with a `:` to get the desired effect. Spotted by Pat Brisin.
* Update the copyright, assign it to thoughtbotGravatar Mike Burns2014-05-05
| | | | This is a thoughtbot project now, so assign copyright to thoughtbot.
* Remove duplicate NEWS entryGravatar Mike Burns2014-05-05
| | | | | This merge conflict was not handled perfectly, apparently, because we got the same entry twice in `NEWS.md.in`.
* mkrc with relative filenames inside dotted dirGravatar Pablo Olmos de Aguilera Corradini2014-05-05
| | | | | | | | | | | | | | | | | | | | | | | | | | This is best explained with an example. If I want to track a file like `~/.bundle/config`, the correct way would be: ~$ mkrc ~/.bundle/config --> ~/.dotfiles/bundle/config But if you are already inside the directory, say: ~/.bundle $ and you ran: ~/.bundle $ mkrc con<TAB> # for autocomplete ~/.bundle $ mkrc config --> ~/.dotfiles/.config Which is obviously not what you meant. This basically checks first if the file exists in the current working directory and if it is, it's expand the full path. ~/.bundle $ mkrc config --> ~/.dotfiles/bundle/config
* Link to the openSUSE (and RHEL and CentOS) packageGravatar Andrei Dziahel2014-04-25
| | | | | This project is now a part of openSUSE, which can provide easy-to-use packages for RHEL and CentOS. Link to that.
* Partial fix for finding hook executablesGravatar Christian HoĢˆltje2014-04-22
| | | | | | | | | This allows, at least, more executables to be picked up. It doesn't pick up group-executable scripts and ignore xattr files but it should be better than what was there before. Closes #80
* An integration test suiteGravatar patrick brisbin2014-04-08
| | | | | | | | | | | | | | | | | | | | | | | This test suite uses cram to run integration tests through `/bin/sh`. The tests are all high-level acceptance tests; they should work regardless of the implemention code. To run them, you must first install cram: sudo pip install cram Then the `check` target will run them: make check Failure output should be printed clearly to stdout, but in general: full test output is in `test/test-suite.log` and output specific to a test named `foo.t` is in `foo.t.log`. Tests are now encouraged in `CONTRIBUTING.md` as part of the normal pull request process. This is a TAP-enabled test suite.
* Files with the same prefix in different dirsGravatar The Linux Kitten2014-04-01
| | | | | | | | | | | | | | | | | | | | The bug: ~% ls -1 test-dotfiles/**/*(.) test-dotfiles/tag-openbsdbox/zshrc_alias test-dotfiles/tag-openbsdbox/zshrc_bsd test-dotfiles/tag-zsh/zshrc ~% lsrc -t openbsdbox -t zsh -d test-dotfiles /home/mike/.zshrc_alias:/home/mike/test-dotfiles/tag-openbsdbox/zshrc_alias /home/mike/.zshrc_bsd:/home/mike/test-dotfiles/tag-openbsdbox/zshrc_bsd ~% We expect to also see: /home/mike/.zshrc:/home/mike/test-dotfiles/tag-zsh/zshrc This arises because we were checking for files the start with another name, rather than a full equality.
* Post-release cleanupGravatar Mike Burns2014-03-28
|
* Bump the version to 1.2.2v1.2.2Gravatar Mike Burns2014-03-28
|
* Update the NEWSGravatar Mike Burns2014-03-28
| | | | We had missed a few news items in our excitement.
* Discover a POSIX shell for SolarisGravatar Mike Burns2014-03-28
| | | | | | | | | | | | 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
* Only show hook filename when debuggingGravatar Mike Burns2014-03-28
| | | | | This uses a bit of a hack: if `$DEBUG` is set to `:`, then we are not in debug mode.
* rcm.sh should not have +x attributeGravatar Andrei Dziahel2014-03-28
| | | | | | | | The `rcm.sh` library was treated as a script in the Makefile, which gave it executable permissions. Treating it as data just installs it as-is. This fixes rpmlint's `script-without-shebang /usr/share/rcm/rcm.sh` warning.
* Generate the list of contributors from gitGravatar Mike Burns2014-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of requiring contributors to update rcm(7), pull the list of contributors from the git log instead. The `rcm.7` file has been moved to `rcm.7.mustache`. The `autogen.sh` command will write `rcm.7` using autocontrib, a quick script included in this commit. This commit adds a `.mailmap` file, used by git-shortlog(1) to produce correct and useful names and email addresses. An initial `.mailmap` has been added to correct some existing email addresses and duplications. `.mailmap` is documented in [Documentation/mailmap.txt][mailmap] for git. This adds a maintainer dependency on Ruby and the mustache gem. The autocontrib program is spiked out in Ruby due to my familarity with the language, but the choice of templating language (mustache) allows flexibility for switching languages later. This is a dependency requirement only for people who run `autogen.sh` -- maintainers. This adds a maintainer dependency on git. Again, this is only for maintainers, and many (all?) of them need git to get rcm's source anyway. Thanks to Patrick Brisbin and George Brocklehurst for the review. [mailmap]: https://github.com/git/git/blob/6a907786af835ac15962be53f1492f23e044f479/Documentation/mailmap.txt
* Fixed hooks not executing under CygwinGravatar Daniel Watson2014-03-19
|
* Fix the NEWS.md.inGravatar Mike Burns2014-03-19
| | | | | Add 1.2.1 to the NEWS.md.in and move the unreleased news items to the correct spot.
* Add support for -v option on OpenBSDGravatar The Linux Kitten2014-03-19
| | | | | | | | | | 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.
* Document that you must quote globsGravatar Mike Burns2014-03-10
| | | | | The shell likes to expand globs as conveniently as possible. Therefore, quote them when passing them to lsrc(1) and others (e.g. `-x '*vim*'`).
* Fix spelling of CONTRIBUTING.md in READMEGravatar John Axel Eriksson2014-03-10
|
* Fresh changelogs, ready for a new commitGravatar Mike Burns2014-03-07
|
* Grab the ORIGIN_URL in man MakefileGravatar Mike Burns2014-03-07
| | | | This caused the push to fail because it couldn't find the repo URL.
* 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
|