| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
- Remove two configure flags which just caused warnings.
- Replace `pkgver` function with a working one.
- Explicititly `cd` into `srcdir` before `gitname` as found in
`PKGBUILD-git.proto`.
- Bump `pkgrel`.
- Specify correct package version.
|
|
|
|
|
| |
To give people a preview of the joy they will expect to find when they
start using rcm, link to the HTML manpages from the README.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The lsrc(1), mkrc(1), rcup(1), and rcdn(1) commands will now print a
usage message and exit immediately (with 64, `EX_USAGE`) when given an
option it does not understand.
This includes `--version` and `--help`.
Normal `-h` will print usage and exit successfully, as normal.
Closes #59.
|
|
|
|
|
|
|
|
| |
The `check` target was broken because of `dist_TESTS`; it _must_ be just
`TESTS`, not distributed.
Use `dist_check_SCRIPTS` instead so that they can be packaged as scripts
for checking the system.
|
|
|
|
| |
This file is generated, so ignore it.
|
|
|
|
| |
This allows people to install rcm-git on Arch.
|
|
|
|
|
| |
The Debian changelog and NEWS.md.in need to be updated to prepare for
the auto-generation next time.
|
| |
|
|
|
|
|
| |
People who download the tarball should be able to run the tests
themselves, so distribute the tests as part of the tarball.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This is a thoughtbot project now, so assign copyright to thoughtbot.
|
|
|
|
|
| |
This merge conflict was not handled perfectly, apparently, because we
got the same entry twice in `NEWS.md.in`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
This project is now a part of openSUSE, which can provide easy-to-use
packages for RHEL and CentOS. Link to that.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
We had missed a few news items in our excitement.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
This uses a bit of a hack: if `$DEBUG` is set to `:`, then we are not in
debug mode.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Add 1.2.1 to the NEWS.md.in and move the unreleased news items to the
correct spot.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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*'`).
|
| |
|
| |
|
|
|
|
| |
This caused the push to fail because it couldn't find the repo URL.
|
|
|
|
|
| |
* Debian package has a -2 in its filename. Of course.
* Build HTML docs in the top-level gh-pages directory.
|
|
|
|
|
| |
This also ties up any loose ends, including where to find the tarball
and how to contribute.
|
|
|
|
|
|
|
|
| |
* 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`.
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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`.
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The original `SYMLINK_DIRS` pull request had ignored the tag- and
host-specific sections. This brings them back into being.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|