1RCUP(1)                   BSD General Commands Manual                  RCUP(1)
2

NAME

4     rcup — update and install dotfiles managed by rcm
5

SYNOPSIS

7     rcup [-CfhiKkqVv] [-B hostname] [-d dir] [-g] [-I excl_pat] [-S excl_pat]
8          [-s excl_pat] [-t tag] [-U excl_pat] [-u excl_pat] [-x excl_pat]
9          [files ...]
10

DESCRIPTION

12     This is a program to update and install personal dotfiles. These dotfiles
13     are managed in a separate directory. Use rcup to install files from your
14     dotfiles directories or from host- or tag-specific directories within.
15
16     See DIRECTORY LAYOUT for details on the directory layout.
17
18     It supports these options:
19
20     -B HOSTNAME  treat host-HOSTNAME as the host-specific directory instead
21                  of computing it.
22
23     -C           copy the files instead of symlinking them.
24
25     -d DIR       install dotfiles from the DIR.  This can be specified multi‐
26                  ple times.
27
28     -f           if the rc file already exists in your home directory but
29                  does not match the file in your dotfiles directory, remove
30                  the rc file then create the symlink.
31
32     -g           print to stdout a standalone shell script that will run the
33                  rcup command as specified.  Nothing on your filesystem will
34                  be modified by rcup when this flag is passed.
35
36     -h           show usage instructions.
37
38     -I EXCL_PAT  install rc files that match EXCL_PAT despite being excluded
39                  by the -x flag or a setting in rcrc(5).  This can be re‐
40                  peated with additional patterns. See lsrc(1), EXCLUDE
41                  PATTERN, for more details.
42
43     -i           if the rc file already exists in your home directory but
44                  does not match the file in your dotfiles directory, prompt
45                  for how to handle it. This is the default.
46
47     -K           skip pre- and post-hooks.
48
49     -k           run pre- and post-hooks (see DIRECTORY LAYOUT for more de‐
50                  tails on hooks). This is the default.
51
52     -S EXCL_PAT  any rc file that matches EXCL_PAT is installed using a sym‐
53                  link even if it is a directory. This option can be repeated.
54
55     -s EXCL_PAT  any file that matches EXCL_PAT is installed as normal, in
56                  accordance with the ALGORITHM section below. This is the op‐
57                  posite of -S.  This option can be repeated.
58
59     -t TAG       install dotfiles according to TAG.
60
61     -U EXCL_PAT  any rc file that matches EXCL_PAT is installed without a
62                  leading dot. This option can be repeated. See the documenta‐
63                  tion of the -U option in lsrc(1) for more information.
64
65     -u EXCL_PAT  any rc file that matches EXCL_PAT is installed with a lead‐
66                  ing dot. This is the opposite of -U.  This option can be re‐
67                  peated. This is the default. See the documentation of the -u
68                  option in lsrc(1) for more information.
69
70     -q           decrease verbosity.
71
72     -V           show the version number.
73
74     -v           increase verbosity.  This can be repeated for extra ver‐
75                  bosity.  Verbose messages are printed to stderr.
76
77     -x EXCL_PAT  do not install rc files that match EXCL_PAT.  This can be
78                  repeated with additional patterns. See lsrc(1), EXCLUDE
79                  PATTERN, for more details.
80
81     files        only install the specified file(s)
82

DIRECTORY LAYOUT

84     Any non-dot non-meta file or directory under your dotfiles directory will
85     be installed as a dotfile. For example, .dotfiles/zshrc will be installed
86     into ~/.zshrc .
87
88     Files are installed as symlinks. Directories are installed by making di‐
89     rectories. The -C flag causes files to be installed as copies instead of
90     symlinks. The COPY_ALWAYS option in rcrc(5) can be used to list files
91     that must only be copied. Copied files are not updated in your dotfiles
92     directory.
93
94     Three meta files are supported: host-specific files, tagged files, hooks.
95
96     Host-specific files go in a directory named for the host, prefixed with
97     host-.  For example, .dotfiles/host-scarlett contains files specific to
98     the computer with hostname scarlett, and these files will only be in‐
99     stalled on the computer with hostname scarlett.
100
101     Tagged files go in a directory named for the tag, prefixed with tag-.
102     Therefore, files under .dotfiles/tag-git are only installed when in‐
103     stalling using the git tag.
104
105     Hooks go in a directory named hooks.  Two hooks are supported by rcup:
106     pre-up and post-up. These go in files or directories with predictable
107     filenames: .dotfiles/hooks/pre-up and .dotfiles/hooks/post-up, or
108     .dotfiles/hooks/pre-up/* and .dotfiles/hooks/post-up/*.  These files must
109     be executable. They are run every time rcup is run, and therefore must be
110     idempotent.
111
112     Hooks will be executed one at a time, sorted alphabetically. For in‐
113     stance, hooks/pre-up/animals will run before hooks/pre-up/aquariums, and
114     hooks/pre-up/4-eyes will run before hooks/post-up/2-u-nothing-compares.
115

ALGORITHM

117     It is instructive to understand the process rcup uses when synchronizing
118     your rc files:
119
120     1.   The pre-up hook is run.
121
122     2.   All non-host, non-tag files without a dot prefix are symlinked to
123          the dotted filename in your home directory. So, .dotfiles/tigrc is
124          symlinked to ~/.tigrc.
125
126     3.   All non-host, non-tag directories have their structure copied to
127          your home directory, then a non-dotted symlink is created within.
128          So for example, .dotfiles/vim/autoload/haskell.vim causes the
129          ~/.vim/autoload directory to be created, then haskell.vim is sym‐
130          linked within.
131
132     4.   Steps (2) and (3) are applied to host-specific files. These are
133          files under a directory named host-$HOSTNAME.
134
135     5.   Steps (2) and (3) are applied to tag-specific files. These are files
136          under directories named tag-$TAG_NAME, where $TAG_NAME is the name
137          of each specified tag in turn, taken from the command line or from
138          rcrc(5).
139
140     6.   The post-up hook is run.
141

ENVIRONMENT

143     RCRC  User configuration file. Defaults to ~/.rcrc.
144

FILES

146     ~/.dotfiles ~/.rcrc
147

SEE ALSO

149     lsrc(1), mkrc(1), rcdn(1), rcrc(5), rcm(7)
150

AUTHORS

152     rcup is maintained by Mike Burns <mburns@thoughtbot.com> and thoughtbot:
153     http://thoughtbot.com
154
155BSD                              July 28, 2013                             BSD
Impressum