guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#60521] [PATCH] home: Add home-stow-migration-service.


From: paul
Subject: [bug#60521] [PATCH] home: Add home-stow-migration-service.
Date: Sat, 24 Jun 2023 17:47:52 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0

Dear Ludo,

I apologize for the long delay. I did not receive a notification of your post somehow, I may need to change email provider.

> Maybe a node other than “Top” would be advisable? I can’t see where that formal spec might be at https://www.gnu.org/software/stow/manual/html_node/.

There may have been a misunderstanding here, I didn't want to imply that there was a formal specification. I just assumed that being a GNU project it would have been documented. Anyway I tried to get to the bottom of this and the only mention/apparent endorsement from the Stow manual to this layout is in the Introduction [0], which references [1] as the original source.

[1] explains pretty clearly the layout in a natural language informal fashion, but searching for "stow" and "dotfiles" on the internet it appears to be an established de-facto standard. I changed the manual to "which must follow the layout suggested by". What do you think?

> Am I right that this is the same as: 

> [ ... ]

> (In that case, we wouldn’t even need ‘dotfiles-for-app’.)

It's not the same I believe. The whole (string-append "home-dotfiles" ... is there because at guix/nix/libstore/store-api.cc line 64 and 71 for . and / respectively an exception is thrown if those characters are in first position or inside the store name. (append-map ... (dir-contents ... is needed due to the Stow layout: suppose you have a directory like this one

.dotfiles/
├── git
│     └── .gitconfig
├── gpg
│     └── .gnupg
│     ├── gpg-agent.conf
│     └── gpg.conf
├── guile
│     └── .guile
├── guix
│     └── .config
│     └── guix
│     └── channels.scm
├── nix
│     ├── .config
│     │     └── nixpkgs
│     │     └── config.nix
│     └── .nix-channels
├── tmux
│     └── .tmux.conf
└── vim
       └── .vimrc

The most common Stow workflow would be to have this directory at ~/.dotfiles and then


$ cd ~/.dotfiles

$ stow git

$ stow nix

This additional git,nix,gpg,guile etc... layer is not covered by your code, but I tried my best to simplify import-dotfiles. Please let me know what are your feeling about the current state of the service.

> Also, should we pass ‘find-files’ a predicate to exclude editor backup files, VCS files, etc.?

Yes, that's an awesome idea. I implemented a simple filter (currently '("\\.gitignore" ".*\\.swp" ".*~") ) since I wasn't sure how much we can assume about this use case.


I should have addressed all of your suggestions, thank you for your time and help Ludo’ ! I'm sending an update patch.


giacomo


[0]: https://www.gnu.org/software/stow/manual/html_node/Introduction.html#Introduction

[1]: https://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html

[2]: https://duckduckgo.com/?q=stowdotfiles


reply via email to

[Prev in Thread] Current Thread [Next in Thread]