mikenye / docker-picard

Docker container for MusicBrainz Picard
97 stars 14 forks source link

How to use the same config file/setting between local and docker Picard implementations #66

Closed iconoclasthero closed 1 year ago

iconoclasthero commented 1 year ago

Ubuntu 22.04 server Ubuntu 22.10 client Server Picard 2.9.0a1 Docker Picard 2.8.5 Can I just hardlink ~/.config/MusicBrainz/Picard.ini to ~/.config/xdg/config/MusicBrainz/Picard.ini? Or just softlink the ~/.config/MusicBrainz/ to ~/.config/xdg/config/MusicBrainz? It looks like the latter will also pull in the plugins without having to do anything additional.

iconoclasthero commented 1 year ago

It appears that—after softlinking the config directory—adding a plugin via the docker image also adds it to the local server copy so the softlink appears to work. Is there some issue with this?

phw commented 1 year ago

Should work in general. If the Picard versions differ, though, you might experience the two installs using separate configs. If you e.g. have both Picard's running on 2.8.5 now they will both use the picard.ini. If in the future you upgrade only one install to a newer version, let's say 2.9.0, it will make a backup copy of the picard.ini file as picard-2.8.5.ini and upgrade the picard.ini file for use with the new version. The Picard 2.8.5 install will use this copy of the .ini file, while the 2.9.0 install will use picard.ini.

It's not a big deal, but in this case you'll notice that changes to the config in one install don't show up in the other. Once you have both on the latest version again they'll use the same config.

iconoclasthero commented 1 year ago

Good catch. I'll have to drop out of the development channel of Picard for the local app and use the package manager version. Thanks.

iconoclasthero commented 1 year ago

FWIW: I've modified the options both via the Docker (2.8) as well as the stand-alone application (2.9) and there is no new Picard-x.y.z.ini created since I installed the Docker yesterday.

.rw-rw-r--  18k $USER 14 Mar  2021 Picard-2.6.0b1.ini
.rw-rw-r--  18k $USER 31 Mar  2021 Picard-2.6.0b2.ini
.rw-rw-r--  18k $USER  7 Apr  2021 Picard-2.6.0b3.ini
.rw-rw-r--  18k $USER 25 Apr  2021 Picard-2.6.1.dev1.ini
.rw-rw-r--  18k $USER 28 Apr  2021 Picard-2.6.2.dev1.ini
.rw-rw-r--  18k $USER 11 May  2021 Picard-2.6.2.ini
.rw-rw-r--  19k $USER 24 May  2021 Picard-2.7.0.dev1.ini
.rw-rw-r--  22k $USER  9 Jul  2021 Picard-2.7.0.dev2.ini
.rw-rw-r--  27k $USER 17 Sep  2021 Picard-2.7.0.dev3.ini
.rw-rw-r--  28k $USER  5 Dec  2021 Picard-2.7.0.dev5.ini
.rw-rw-r--  28k $USER  7 Jan  2022 Picard-2.7.0b2.ini
.rw-rw-r--  28k $USER 16 Jan  2022 Picard-2.7.1.ini
.rw-rw-r--  29k $USER 27 Feb  2022 Picard-2.8.0.dev1.ini
.rw-rw-r--  28k $USER 15 May  2022 Picard-2.8.0.dev2.ini
.rw-rw-r--  29k $USER 29 May  2022 Picard-2.8.0rc2.ini
.rw-rw-r--  29k $USER  7 Aug  2022 Picard-2.8.ini
.rw-rw-r--  29k $USER  5 Sep  2022 Picard-2.8.2.ini
.rw-rw-r--  29k $USER  4 Jan 09:38 Picard-2.9.0.dev1.ini
drwxr-xr-x    - $USER 12 Feb 10:31 log
drwx------    - $USER 12 Feb 10:31 .dbus
drwxr-xr-x    - $USER 12 Feb 10:35 xdg
.rw-rw-r--  29k $USER 13 Feb 07:29 Picard.ini
.rw-rw-r--    0 $USER 13 Feb 07:30 ini
phw commented 1 year ago

You already have a Picard-2.8.2.ini there.

If a .ini file for the specific version exists, Picard will use that. Otherwise it will use Picard.ini. if Picard.ini was for an older version it will make a backup copy for that der version and upgrade Picard.ini for the newer version .

You can ways see which file is being used in Options > Advanced

iconoclasthero commented 1 year ago

NB: in this entire thread the actual username has been replaced with $USER

If a .ini file for the specific version exists, Picard will use that.

I'm going to have to say that you're wrong on that. I looked at what is listed under Options > Options > Advanced > Maintenance and it shows that the docker version (2.8.x) is using '/config/xdg/config/MusicBrainz/Picard.ini' which is weird since I don't have a ~/config or /config directory, only ~/.config. The local application has /home/$USER/.config/MusicBrainz/Picard.ini. So assuming that the Docker '/config/xdg/config/MusicBrainz' actually refers to ~/.config/xdg/config/MusicBrainz, then with the symlink I put in,

$ realpath ~/.config/xdg/config/MusicBrainz
/home/$USER/.config/MusicBrainz

the two versions use the same Picard.ini.

Not only that but the timestamps match up when I make changes and the changes persist between the two versions.

Screenshot from 2023-02-15 14-45-19 Screenshot from 2023-02-15 15-08-28