{
  lib,
  config,
  namespace,
  pkgs,
  ...
}:
let
  inherit (lib) mkIf;
  inherit (lib.${namespace}) mkEnableModule;

  cfg = config.${namespace}.programs.curl;
in
{
  options = mkEnableModule "programs.curl";

  config = mkIf cfg.enable {
    home.packages = with pkgs; [
      curl
    ];

    xdg.configFile.".curlrc".text = # ini
      ''
        # Limit the timeout in seconds.
        connect-timeout = 60

        # Follow HTTP redirects.
        location

        # Show error messages.
        show-error

        # Disguise as IE 9 on Windows 7.
        user-agent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
      '';

  };
}