Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

suggestion of new features #49

Closed
QiangF opened this issue Aug 17, 2015 · 5 comments
Closed

suggestion of new features #49

QiangF opened this issue Aug 17, 2015 · 5 comments

Comments

@QiangF
Copy link

QiangF commented Aug 17, 2015

Hi Everyone,
I have just found dotbot. It looks very promising. Here are a few suggestions:

1 in the link section of .install.conf.yaml , it looks like that those infomation are already contained in the path of the configuration files. There is another dotfile manager called homesick (its bash script version called homeshick) that links all file in the dotfiles folder to the corresponding file in home directory. My suggestion is if there is no extra setting for a file or folder, make a default case to avoid those unecessary configurations and make it looks cleaner.

2 if we keep all those settings, is it possible to organise the .install.conf.yaml by applications, for example, you can put all configureion files for emacs in one section, so it is easier to pick setting from others. Better if we can select install or export dotfiles by application names or user defined category.

3 I want to manage all my customised configuration files in the whole system. One example is /etc/apt/sources.list, which can be changed only by root user. Is is possible to add a configuration keyword that defines the permissions for the files or folders? There is etckeeper, but it does too much, I only want to backup setting that I changed explicitly.

4 if the whole system is managed, scanning for dead symlink may take too much time, maybe add a uninstall command, so it clean the symlink and delete configuration in .install.conf.yaml.
Thank you!

@anishathalye
Copy link
Owner

Thanks for the suggestions!

Some of these would be best implemented in a way that is not backwards-compatible. It'll be good to keep this in mind when designing Dotbot 2.0.

@anishathalye anishathalye added this to the 2.0 milestone Aug 17, 2015
@anishathalye anishathalye removed the 2.0 label Aug 17, 2015
@anishathalye anishathalye removed this from the 2.0 milestone Jan 13, 2016
@anishathalye
Copy link
Owner

Okay, I migrated all of these ideas to the first post in #35. Gonna close this issue now.

@QiangF
Copy link
Author

QiangF commented Oct 4, 2016

FYI. config_curator (https://github.com/razor-x/config_curator) is similar to dotbot. It has permission settings for each file.

@anishathalye
Copy link
Owner

Hm, I haven't heard many users asking about setting custom permissions on files. Is it a big need?

@QiangF
Copy link
Author

QiangF commented Oct 5, 2016

I am using dotbot to manage files outside my home directory. For example I have
the following links in my sudo.install.conf.yaml, which is installed with sudo.
After linking, the right setting for all links are 777. This is not safe.

- link:
    /etc/exports: etc/exports
    /etc/tsocks.conf: etc/tsocks.conf
    /etc/shadowsocks: etc/shadowsocks
    /etc/profile: etc/profile
    /etc/locale.gen: etc/locale.gen
    /etc/hosts: etc/hosts
    /etc/systemd/user: etc/systemd/user
    /etc/apt/sources.list: etc/apt/sources.list
    /etc/ssh/sshd_config: etc/ssh/sshd_config
    /etc/ssh/ssh_config: etc/ssh/ssh_config

The workaround in dotbot is to use shell script to change the right. While
Config Curator supports installing directories, files, and symbolic links. It
also handles setting other properties such as permissions and
ownership. Additionally, configuration units can be installed per-host or only
if certain packages are installed. Below is the config sytax of Config Curator:

defaults:
# File and directory permissions.
# Empty values will not change permissions.
fmode:
dmode:

# File and directory owner and group.
# Empty values will not change ownership.
owner:
group:

# Hosts to install this unit on.
# Empty array will install on all hosts.
hosts: []

# Only install this unit if packages are present.
# Empty array will not check for any packages.
packages: []

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants