25 lines
900 B
Nix
25 lines
900 B
Nix
|
{ pkgs
|
||
|
, writeShellScript
|
||
|
, config
|
||
|
}:
|
||
|
|
||
|
(pkgs.symlinkJoin {
|
||
|
name = "gpodder-configured";
|
||
|
paths = [ pkgs.gpodder ];
|
||
|
buildInputs = [ pkgs.makeWrapper ];
|
||
|
|
||
|
# gpodder keeps all its feeds in a sqlite3 database.
|
||
|
# we can configure the feeds externally by wrapping gpodder and just instructing it to import
|
||
|
# a feedlist every time we run it.
|
||
|
# repeat imports are deduplicated -- assuming network access (not sure how it behaves when disconnected).
|
||
|
postBuild = ''
|
||
|
makeWrapper $out/bin/gpodder $out/bin/gpodder-configured \
|
||
|
--run "$out/bin/gpo import ~/.config/gpodderFeeds.opml"
|
||
|
|
||
|
# fix up the .desktop file to invoke our wrapped application
|
||
|
orig_desktop=$(readlink $out/share/applications/gpodder.desktop)
|
||
|
unlink $out/share/applications/gpodder.desktop
|
||
|
sed "s:Exec=.*:Exec=$out/bin/gpodder-configured:" $orig_desktop > $out/share/applications/gpodder.desktop
|
||
|
'';
|
||
|
})
|