nur-packages

My NUR packages
git clone git://git.sikmir.ru/nur-packages
Log | Files | Refs | README | LICENSE

merkaartor.nix (2551B)


      1 { config, lib, pkgs, ... }:
      2 
      3 with lib;
      4 let
      5   cfg = config.programs.merkaartor;
      6   configDir = "${config.xdg.configHome}/Merkaartor";
      7   configFile = "${configDir}/Merkaartor.conf";
      8   domain = "org.merkaartor.Merkaartor";
      9 in
     10 {
     11   meta.maintainers = [ maintainers.sikmir ];
     12 
     13   options.programs.merkaartor = {
     14     enable = mkEnableOption "OpenStreetMap editor";
     15 
     16     package = mkOption {
     17       default = pkgs.merkaartor;
     18       defaultText = literalExpression "pkgs.merkaartor";
     19       description = "Merkaartor package to install.";
     20       type = types.package;
     21     };
     22 
     23     user = mkOption {
     24       default = "";
     25       description = "OSM user.";
     26       type = types.str;
     27     };
     28 
     29     password = mkOption {
     30       default = "";
     31       description = "OSM password.";
     32       type = types.str;
     33     };
     34   };
     35 
     36   config = mkIf cfg.enable (
     37     mkMerge [
     38       {
     39         home.packages = [ cfg.package ];
     40       }
     41 
     42       (
     43         mkIf pkgs.stdenv.isLinux {
     44           home.activation.createConfigFile = lib.hm.dag.entryBefore [ "writeBoundary" ] ''
     45             $DRY_RUN_CMD mkdir -p ${configDir}
     46             $DRY_RUN_CMD touch ${configFile}
     47           '';
     48         }
     49       )
     50 
     51       (
     52         mkIf (cfg.user != "" && cfg.password != "") {
     53           home.activation.setupCredentials = lib.hm.dag.entryAfter [ "writeBoundary" ]
     54             (
     55               if pkgs.stdenv.isDarwin then ''
     56                 $DRY_RUN_CMD /usr/bin/defaults write ${domain} OsmServers.1.url https://api.openstreetmap.org/api
     57                 $DRY_RUN_CMD /usr/bin/defaults write ${domain} OsmServers.1.selected true
     58                 $DRY_RUN_CMD /usr/bin/defaults write ${domain} OsmServers.1.user ${cfg.user}
     59                 $DRY_RUN_CMD /usr/bin/defaults write ${domain} OsmServers.1.password ${cfg.password}
     60                 $DRY_RUN_CMD /usr/bin/defaults write ${domain} OsmServers.size 1
     61               '' else ''
     62                 $DRY_RUN_CMD ${pkgs.crudini}/bin/crudini $VERBOSE_ARG --set ${configFile} OsmServers 1\\\\url https://api.openstreetmap.org/api
     63                 $DRY_RUN_CMD ${pkgs.crudini}/bin/crudini $VERBOSE_ARG --set ${configFile} OsmServers 1\\\\selected true
     64                 $DRY_RUN_CMD ${pkgs.crudini}/bin/crudini $VERBOSE_ARG --set ${configFile} OsmServers 1\\\\user ${cfg.user}
     65                 $DRY_RUN_CMD ${pkgs.crudini}/bin/crudini $VERBOSE_ARG --set ${configFile} OsmServers 1\\\\password ${cfg.password}
     66                 $DRY_RUN_CMD ${pkgs.crudini}/bin/crudini $VERBOSE_ARG --set ${configFile} OsmServers size 1
     67               ''
     68             );
     69         }
     70       )
     71     ]
     72   );
     73 }