TheLocehiliosan / yadm

Yet Another Dotfiles Manager
https://yadm.io/
GNU General Public License v3.0
4.94k stars 178 forks source link

Some alt directories are ignored #356

Closed ibrokemypie closed 2 years ago

ibrokemypie commented 3 years ago

Describe the bug

When trying to move the .config/systemd folder into the yadm alts .config folder (with a condition for os linux) the systemd link/alt is not created after running yadm alt. All other alts/links are generated

To reproduce

Can this be reproduced with the yadm/testbed docker image: Yes

Steps to reproduce the behavior:

  1. mv ~/.config/systemd ~/.config/yadm/alt/.config/systemd\#\#os.Linux
  2. yadm add ~/.config/systemd\#\#os.Linux
  3. yadm alt

Expected behavior

A symlink is created from ~/.config/systemd to ~/.config/yadm/alt/.config/systemd##os.Linux

Environment

Additional context

Output of yadm list in ~/.config/yadm/alt/.config (yadm sees the systemd folder and files)

alacritty##os.Linux/alacritty.yml
bspwm##os.Linux/autostart.sh
bspwm##os.Linux/bspwmrc
bspwm##os.Linux/external_rules.sh
bspwm##os.Linux/powermenu.sh
bspwm##os.Linux/resize.sh
dunst##os.Linux/dunstrc
environment.d##os.Linux/envvars.conf
foot##os.Linux/foot.ini
frogminer##os.Linux/linux-tkg.cfg
frogminer##os.Linux/proton-tkg.cfg
frogminer##os.Linux/updxvk-proton.cfg
frogminer##os.Linux/updxvk.cfg
frogminer##os.Linux/wine-tkg.cfg
gammastep##os.Linux/config.ini
gtk-3.0##os.Linux/settings.ini
i3##os.Linux/bg.sh
i3##os.Linux/config
i3##os.Linux/dmenu_pavucontrol.sh
i3##os.Linux/emojipicker.sh
i3##os.Linux/lock.sh
i3##os.Linux/playerctl.sh
i3##os.Linux/scrot.sh
i3status-rust##os.Linux/config.toml
mako##os.Linux/config
rofi##os.Linux/config.rasi
rofi##os.Linux/dmenu.rasi
rofi##os.Linux/scripts/rofi-pulseaudio-select-sink.sh
sway##os.Linux/autoname-workspaces.py
sway##os.Linux/bg.sh
sway##os.Linux/config
sway##os.Linux/config.d/00-options
sway##os.Linux/config.d/05-input
sway##os.Linux/config.d/06-output
sway##os.Linux/config.d/10-autostart
sway##os.Linux/config.d/20-modes
sway##os.Linux/config.d/30-rules
sway##os.Linux/config.d/40-bindings
sway##os.Linux/dmenu_pavucontrol.sh
sway##os.Linux/emojipicker.sh
swaylock##os.Linux/config
systemd##os.Linux/user/aria2c.service
systemd##os.Linux/user/autoname-workspaces.service
systemd##os.Linux/user/bg.service
systemd##os.Linux/user/blueman.service
systemd##os.Linux/user/clipman.service
systemd##os.Linux/user/gammastep.service
systemd##os.Linux/user/geoclue.service
systemd##os.Linux/user/mako.service
systemd##os.Linux/user/nm-applet.service
systemd##os.Linux/user/steam.service
systemd##os.Linux/user/telegram.service
systemd##os.Linux/user/thunar.service
systemd##os.Linux/user/waybar.service
systemd##os.Linux/user/wayvnc.service
waybar##os.Linux/config
waybar##os.Linux/pulse.sh
waybar##os.Linux/style.css
waybar##os.Linux/temperature.sh
waybar##os.Linux/timew.sh
waybar##os.Linux/window.sh
zsh/.zprofile##os.Linux
zsh/.zshrc##template
zsh/func/command_not_found_handler##os.Linux

Output of yadm alt (yadm creates links for all the alts except the systemd one)

Linking /home/pie/.config/yadm/alt/.config/alacritty##os.Linux to /home/pie/.config/alacritty
Linking /home/pie/.config/yadm/alt/.config/bspwm##os.Linux to /home/pie/.config/bspwm
Linking /home/pie/.config/yadm/alt/.config/dunst##os.Linux to /home/pie/.config/dunst
Linking /home/pie/.config/yadm/alt/.config/environment.d##os.Linux to /home/pie/.config/environment.d
Linking /home/pie/.config/yadm/alt/.config/foot##os.Linux to /home/pie/.config/foot
Linking /home/pie/.config/yadm/alt/.config/frogminer##os.Linux to /home/pie/.config/frogminer
Linking /home/pie/.config/yadm/alt/.config/gammastep##os.Linux to /home/pie/.config/gammastep
Linking /home/pie/.config/yadm/alt/.config/gtk-3.0##os.Linux to /home/pie/.config/gtk-3.0
Linking /home/pie/.config/yadm/alt/.config/i3##os.Linux to /home/pie/.config/i3
Linking /home/pie/.config/yadm/alt/.config/i3status-rust##os.Linux to /home/pie/.config/i3status-rust
Linking /home/pie/.config/yadm/alt/.config/mako##os.Linux to /home/pie/.config/mako
Linking /home/pie/.config/yadm/alt/.config/rofi##os.Linux to /home/pie/.config/rofi
Linking /home/pie/.config/yadm/alt/.config/sway##os.Linux to /home/pie/.config/sway
Linking /home/pie/.config/yadm/alt/.config/swaylock##os.Linux to /home/pie/.config/swaylock
Linking /home/pie/.config/yadm/alt/.config/waybar##os.Linux to /home/pie/.config/waybar
Linking /home/pie/.config/yadm/alt/.config/zsh/.zprofile##os.Linux to /home/pie/.config/zsh/.zprofile
Creating /home/pie/.config/zsh/.zshrc from template /home/pie/.config/yadm/alt/.config/zsh/.zshrc##template
Linking /home/pie/.config/yadm/alt/.config/zsh/func/command_not_found_handler##os.Linux to /home/pie/.config/zsh/func/command_not_found_handler
Linking /home/pie/.config/yadm/alt/.profile##os.Linux to /home/pie/.profile
Linking /home/pie/.config/yadm/alt/.screenlayout/real.sh##os.Linux to /home/pie/.screenlayout/real.sh
Linking /home/pie/.config/yadm/alt/.zshenv##os.Linux to /home/pie/.zshenv
Linking /home/pie/.config/yadm/alt/webcam.sh##os.Linux to /home/pie/webcam.sh

script.gz

aur3l14no commented 2 years ago

Maybe you still have a systemd folder even after you mv it?

TheLocehiliosan commented 2 years ago

@ibrokemypie - I looked at your public dotfiles repo. I see the issue. Presently, yadm will only symlink alternate directories if there is at least one tracked file in the root of that directory. I think if you do the following, you should see that link created correctly:

touch ~/.config/yadm/alt/.config/systemd##os.Linux/.empty
yadm add ~/.config/yadm/alt/.config/systemd##os.Linux/.empty

Can you give that a try?

github-actions[bot] commented 2 years ago

This issue has been labeled as stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

github-actions[bot] commented 2 years ago

This issue was closed because it has been labeled as stale for 7 days with no activity.

Thaodan commented 1 year ago

I noticed the same issue.

Thaodan commented 1 year ago

Just an alt file no directory:

Linking /home/bidar//.local/etc/yadm/alt/etc/systemd/user/emacs.service.d/gdksettings.conf##hostname.odin to /home/bidar//.local/etc/yadm/alt/etc/systemd/user/emacs.service.d/gdksettings.conf