1RCUP(1) BSD General Commands Manual RCUP(1)
2
4 rcup — update and install dotfiles managed by rcm
5
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
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
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
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
144 RCRC User configuration file. Defaults to ~/.rcrc.
145
147 ~/.dotfiles ~/.rcrc
148
150 lsrc(1), mkrc(1), rcdn(1), rcrc(5), rcm(7)
151
153 rcup is maintained by Mike Burns <mburns@thoughtbot.com> and thoughtbot:
154 http://thoughtbot.se
155
156BSD July 28, 2013 BSD