16.48. cdist-type__dot_file(7)

16.48.1. NAME

cdist-type__dot_file - install file under user's home directory

16.48.2. DESCRIPTION

This type installs a file (=__object_id) under user's home directory, providing a way to install per-user configuration files. File owner and group is deduced from user, for who file is installed.

Unlike regular __file type, you do not need make any assumptions, where user's home directory is.

16.48.3. REQUIRED PARAMETERS

user

User, for who file is installed

16.48.4. OPTIONAL PARAMETERS

dirmode

forwarded to __directory type as mode

mode

forwarded to __file type

state

forwarded to __file type

source

forwarded to __file type

file

forwarded to __file type This can be used if multiple users need to have a dotfile updated, which will result in duplicate object id errors. When using the file parameter the object id can be some unique value.

16.48.5. MESSAGES

This type inherits all messages from file type, and do not add any new.

16.48.6. EXAMPLES

# Install .forward file for user 'alice'. Since state is 'present',
# user is not meant to edit this file, all changes will be overridden.
# It is good idea to put warning about it in file itself.
__dot_file .forward --user alice --source "$__files/forward"

# Install .muttrc for user 'bob', if not already present. User can safely
# edit it, his changes will not be overwritten.
__dot_file .muttrc --user bob --source "$__files/recommended_mutt_config" --state exists


# Install default xmonad config for user 'eve'. Parent directory is created automatically.
__dot_file .xmonad/xmonad.hs --user eve --state exists --source "$__files/xmonad.hs"

# install .vimrc for root and some users
for user in root userx usery userz; do
    __dot_file "${user}_dot_vimrc" \
        --user $user \
        --file .vimrc \
        --state exists \
        --source "$__files/$user/.vimrc"
done

16.48.7. SEE ALSO

cdist-type__file(7)

16.48.8. COPYING

Copyright (C) 2015 Dmitry Bogatov. Free use of this software is granted under the terms of the GNU General Public License version 3 or later (GPLv3+).