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
40                  repeated 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
50                  details on hooks). This is the default.
51
52     -S EXCL_PAT  any rc file that matches EXCL_PAT is installed as if it were
53                  a file (using a symlink) instead of as if it were a direc‐
54                  tory (by making a directory). This option can be repeated.
55
56     -s EXCL_PAT  any file that matches EXCL_PAT is installed as normal, in
57                  accordance with the ALGORITHM section below. This is the
58                  opposite of -S.  This option can be repeated.
59
60     -t TAG       install dotfiles according to TAG
61
62     -U EXCL_PAT  any rc file that matches EXCL_PAT is installed without a
63                  leading dot. This option can be repeated. See the documenta‐
64                  tion of the -U option in lsrc(1) for more information.
65
66     -u EXCL_PAT  any rc file that matches EXCL_PAT is installed with a lead‐
67                  ing dot. This is the opposite of -U.  This option can be
68                  repeated. This is the default. See the documentation of the
69                  -u option in lsrc(1) for more information.
70
71     -q           decrease verbosity
72
73     -V           show the version number.
74
75     -v           increase verbosity.  This can be repeated for extra ver‐
76                  bosity.  Verbose messages are printed to stderr.
77
78     -x EXCL_PAT  do not install rc files that match EXCL_PAT.  This can be
79                  repeated with additional patterns. See lsrc(1), EXCLUDE
80                  PATTERN, for more details.
81
82     files        only install the specified file(s)
83

DIRECTORY LAYOUT

85     Any non-dot non-meta file or directory under your dotfiles directory will
86     be installed as a dotfile. For example, .dotfiles/zshrc will be installed
87     into ~/.zshrc .
88
89     Files are installed as symlinks. Directories are installed by making
90     directories. The -C flag causes files to be installed as copies instead
91     of symlinks. The COPY_ALWAYS option in rcrc(5) can be used to list files
92     that must only be copied.
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
99     installed 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
103     installing 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
113     instance, hooks/pre-up/animals will run before hooks/pre-up/aquariums,
114     and hooks/pre-up/4-eyes will run before
115     hooks/post-up/2-u-nothing-compares.
116

ALGORITHM

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

ENVIRONMENT

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

FILES

147     ~/.dotfiles ~/.rcrc
148

SEE ALSO

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

AUTHORS

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