Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RCUP(1)			  BSD General Commands Manual		       RCUP(1)

NAME
     rcup -- update and	install	dotfiles managed by rcm

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

DESCRIPTION
     This is a program to update and install personal dotfiles.	These dotfiles
     are managed in a separate directory. Use rcup to install files from your
     dotfiles directories or from host-	or tag-specific	directories within.

     See DIRECTORY LAYOUT for details on the directory layout.

     It	supports these options:

     -B	HOSTNAME  treat	host-HOSTNAME as the host-specific directory instead
		  of computing it

     -C		  copy the files instead of symlinking them

     -d	DIR	  install dotfiles from	the DIR.  This can be specified	multi-
		  ple times.

     -f		  if the rc file already exists	in your	home directory but
		  does not match the file in your dotfiles directory, remove
		  the rc file then create the symlink

     -g		  print	to stdout a standalone shell script that will run the
		  rcup command as specified.  Nothing on your filesystem will
		  be modified by rcup when this	flag is	passed.

     -h		  show usage instructions.

     -I	EXCL_PAT  install rc files that	match EXCL_PAT despite being excluded
		  by the -x flag or a setting in rcrc(5).  This	can be re-
		  peated with additional patterns. See lsrc(1),	EXCLUDE
		  PATTERN, for more details.

     -i		  if the rc file already exists	in your	home directory but
		  does not match the file in your dotfiles directory, prompt
		  for how to handle it.	This is	the default

     -K		  skip pre- and	post-hooks

     -k		  run pre- and post-hooks (see DIRECTORY LAYOUT	for more de-
		  tails	on hooks). This	is the default.

     -S	EXCL_PAT  any rc file that matches EXCL_PAT is installed as if it were
		  a file (using	a symlink) instead of as if it were a direc-
		  tory (by making a directory).	This option can	be repeated.

     -s	EXCL_PAT  any file that	matches	EXCL_PAT is installed as normal, in
		  accordance with the ALGORITHM	section	below. This is the op-
		  posite of -S.	 This option can be repeated.

     -t	TAG	  install dotfiles according to	TAG

     -U	EXCL_PAT  any rc file that matches EXCL_PAT is installed without a
		  leading dot. This option can be repeated. See	the documenta-
		  tion of the -U option	in lsrc(1) for more information.

     -u	EXCL_PAT  any rc file that matches EXCL_PAT is installed with a	lead-
		  ing dot. This	is the opposite	of -U.	This option can	be re-
		  peated. This is the default. See the documentation of	the -u
		  option in lsrc(1) for	more information.

     -q		  decrease verbosity

     -V		  show the version number.

     -v		  increase verbosity.  This can	be repeated for	extra ver-
		  bosity.  Verbose messages are	printed	to stderr.

     -x	EXCL_PAT  do not install rc files that match EXCL_PAT.	This can be
		  repeated with	additional patterns. See lsrc(1), EXCLUDE
		  PATTERN, for more details.

     files	  only install the specified file(s)

DIRECTORY LAYOUT
     Any non-dot non-meta file or directory under your dotfiles	directory will
     be	installed as a dotfile.	For example, .dotfiles/zshrc will be installed
     into ~/.zshrc .

     Files are installed as symlinks. Directories are installed	by making di-
     rectories.	The -C flag causes files to be installed as copies instead of
     symlinks. The COPY_ALWAYS option in rcrc(5) can be	used to	list files
     that must only be copied.

     Three meta	files are supported: host-specific files, tagged files,	hooks.

     Host-specific files go in a directory named for the host, prefixed	with
     host-.  For example, .dotfiles/host-scarlett contains files specific to
     the computer with hostname	scarlett, and these files will only be in-
     stalled on	the computer with hostname scarlett.

     Tagged files go in	a directory named for the tag, prefixed	with tag-.
     Therefore,	files under .dotfiles/tag-git are only installed when in-
     stalling using the	git tag.

     Hooks go in a directory named hooks.  Two hooks are supported by rcup:
     pre-up and	post-up. These go in files or directories with predictable
     filenames:	.dotfiles/hooks/pre-up and .dotfiles/hooks/post-up, or
     .dotfiles/hooks/pre-up/* and .dotfiles/hooks/post-up/*.  These files must
     be	executable. They are run every time rcup is run, and therefore must be
     idempotent.

ALGORITHM
     It	is instructive to understand the process rcup uses when	synchronizing
     your rc files:

     1.	  The pre-up hook is run.

     2.	  All non-host,	non-tag	files without a	dot prefix are symlinked to
	  the dotted filename in your home directory. So, .dotfiles/tigrc is
	  symlinked to ~/.tigrc.

     3.	  All non-host,	non-tag	directories have their structure copied	to
	  your home directory, then a non-dotted symlink is created within.
	  So for example, .dotfiles/vim/autoload/haskell.vim causes the
	  ~/.vim/autoload directory to be created, then	haskell.vim is sym-
	  linked within.

     4.	  Steps	(1) and	(2) are	applied	to host-specific files.	These are
	  files	under a	directory named	host-$HOSTNAME.

     5.	  Steps	(1) and	(2) are	applied	to tag-specific	files. These are files
	  under	directories named tag-$TAG_NAME, where $TAG_NAME is the	name
	  of each specified tag	in turn, taken from the	command	line or	from
	  rcrc(5).

     6.	  The post-up hook is run.

ENVIRONMENT
     RCRC  User	configuration file. Defaults to	~/.rcrc.

FILES
     ~/.dotfiles ~/.rcrc

SEE ALSO
     lsrc(1), mkrc(1), rcdn(1),	rcrc(5), rcm(7)

AUTHORS
     rcup is maintained	by Mike	Burns <mburns@thoughtbot.com> and thoughtbot:
     http://thoughtbot.se

BSD				 July 28, 2013				   BSD

NAME | SYNOPSIS | DESCRIPTION | DIRECTORY LAYOUT | ALGORITHM | ENVIRONMENT | FILES | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=rcup&sektion=1&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help