Compare commits
	
		
			2 Commits
		
	
	
		
			gitea-acti
			...
			24ee0d7826
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 24ee0d7826 | |||
| fa525000a6 | 
| @@ -8,17 +8,14 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       matrix: |       matrix: | ||||||
|         check: |         check: | ||||||
|           # - nixpkgs-fmt |           - nixpkgs-fmt | ||||||
|           # - deadnix |           - deadnix | ||||||
|           - nur |           - nur | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout repository |       - name: Checkout repository | ||||||
|         uses: https://gitea.com/actions/checkout@v3 |         uses: actions/checkout@v4 | ||||||
|       - name: Install nix |       - uses: cachix/install-nix-action@v23 | ||||||
|         uses: https://github.com/cachix/install-nix-action@v23 |  | ||||||
|         with: |  | ||||||
|           github_access_token: ${{ secrets.INPUT_GITHUB_ACCESS_TOKEN }} |  | ||||||
|       - name: Check ${{ matrix.check }} |       - name: Check ${{ matrix.check }} | ||||||
|         # Depends on nixos/nix#7759 to simply `nix flake check` |         # Depends on nixos/nix#7759 to simply `nix flake check` | ||||||
|         run: nix run .#checks.$(nix eval --raw --impure --expr "builtins.currentSystem").${{ matrix.check }} |         run: nix run .#checks.$(nix eval --raw --impure --expr "builtins.currentSystem").${{ matrix.check }} | ||||||
| @@ -46,13 +43,13 @@ jobs: | |||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|     - name: Checkout repository |     - name: Checkout repository | ||||||
|       uses: https://gitea.com/actions/checkout@v3 |       uses: actions/checkout@v4 | ||||||
|     - name: Install nix |     - name: Install nix | ||||||
|       uses: https://github.com/cachix/install-nix-action@v23 |       uses: cachix/install-nix-action@v23 | ||||||
|     - name: Show nixpkgs version |     - name: Show nixpkgs version | ||||||
|       run: nix eval --impure --expr '(import ./flake-compat.nix { src = ./.; }).lib.version' |       run: nix eval --impure --expr '(import ./flake-compat.nix { src = ./.; }).lib.version' | ||||||
|     - name: Setup cachix |     - name: Setup cachix | ||||||
|       uses: https://github.com/cachix/cachix-action@v12 |       uses: cachix/cachix-action@v12 | ||||||
|       if: ${{ matrix.cachixName != '<YOUR_CACHIX_NAME>' }} |       if: ${{ matrix.cachixName != '<YOUR_CACHIX_NAME>' }} | ||||||
|       with: |       with: | ||||||
|         name: ${{ matrix.cachixName }} |         name: ${{ matrix.cachixName }} | ||||||
							
								
								
									
										6
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -20,11 +20,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1699725108, |         "lastModified": 1694948089, | ||||||
|         "narHash": "sha256-NTiPW4jRC+9puakU4Vi8WpFEirhp92kTOSThuZke+FA=", |         "narHash": "sha256-d2B282GmQ9o8klc22/Rbbbj6r99EnELQpOQjWMyv0rU=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "911ad1e67f458b6bcf0278fa85e33bb9924fed7e", |         "rev": "5148520bfab61f99fd25fb9ff7bfbb50dad3c9db", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -18,13 +18,12 @@ | |||||||
|           packages = import ./pkgs/top-level { localSystem = system; inherit pkgs; }; |           packages = import ./pkgs/top-level { localSystem = system; inherit pkgs; }; | ||||||
|  |  | ||||||
|           checks = { |           checks = { | ||||||
|             # FIXME: Disabled until I can work out what to do with generated code. |             nixpkgs-fmt = pkgs.writeShellScriptBin "nixpkgs-fmt-check" '' | ||||||
|             # nixpkgs-fmt = pkgs.writeShellScriptBin "nixpkgs-fmt-check" '' |               ${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt --check . | ||||||
|             #   ${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt --check . |             ''; | ||||||
|             # ''; |             deadnix = pkgs.writeShellScriptBin "deadnix-check" '' | ||||||
|             # deadnix = pkgs.writeShellScriptBin "deadnix-check" '' |               ${pkgs.deadnix}/bin/deadnix --fail . | ||||||
|             #   ${pkgs.deadnix}/bin/deadnix --fail . |             ''; | ||||||
|             # ''; |  | ||||||
|             # Ensures that the NUR bot can evaluate and find all our packages. |             # Ensures that the NUR bot can evaluate and find all our packages. | ||||||
|             # Normally we'd also run with `--option restrict-eval true`, but |             # Normally we'd also run with `--option restrict-eval true`, but | ||||||
|             # this is incompatible with flakes because reasons. |             # this is incompatible with flakes because reasons. | ||||||
| @@ -50,6 +49,8 @@ | |||||||
|  |  | ||||||
|           apps = { |           apps = { | ||||||
|             alacritty = mkApp { drv = pkgs.alacritty-ligatures; exePath = "/bin/alacritty"; }; |             alacritty = mkApp { drv = pkgs.alacritty-ligatures; exePath = "/bin/alacritty"; }; | ||||||
|  |             protonmail-bridge = mkApp { drv = pkgs.protonmail-bridge; }; | ||||||
|  |             protonmail-bridge-headless = mkApp { drv = pkgs.protonmail-bridge; }; | ||||||
|             psst-cli = mkApp { drv = pkgs.psst; exePath = "/bin/psst-cli"; }; |             psst-cli = mkApp { drv = pkgs.psst; exePath = "/bin/psst-cli"; }; | ||||||
|             psst-gui = mkApp { drv = pkgs.psst; exePath = "/bin/psst-gui"; }; |             psst-gui = mkApp { drv = pkgs.psst; exePath = "/bin/psst-gui"; }; | ||||||
|             samrewritten = mkApp { drv = pkgs.samrewritten; }; |             samrewritten = mkApp { drv = pkgs.samrewritten; }; | ||||||
|   | |||||||
| @@ -4,7 +4,6 @@ | |||||||
|   amdgpu-pwm = ./services/hardware/amdgpu-pwm.nix; |   amdgpu-pwm = ./services/hardware/amdgpu-pwm.nix; | ||||||
|   betanin = ./services/web-apps/betanin.nix; |   betanin = ./services/web-apps/betanin.nix; | ||||||
|   dunst = ./services/x11/dunst.nix; |   dunst = ./services/x11/dunst.nix; | ||||||
|   porkbun-ddns = ./services/networking/porkbun-ddns.nix; |  | ||||||
|   radeon-profile-daemon = ./services/hardware/radeon-profile-daemon.nix; |   radeon-profile-daemon = ./services/hardware/radeon-profile-daemon.nix; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,74 +0,0 @@ | |||||||
| { config, lib, pkgs, ... }: |  | ||||||
| let |  | ||||||
|   inherit (lib) mkOption types; |  | ||||||
|  |  | ||||||
|   cfg = config.services.porkbun-ddns; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   options = { |  | ||||||
|     services.porkbun-ddns = { |  | ||||||
|       enable = lib.mkEnableOption "Porkbun dynamic DNS client"; |  | ||||||
|  |  | ||||||
|       package = mkOption { |  | ||||||
|         # TODO: How do I use mkPackageOption when the package isn't in the |  | ||||||
|         #  package set? |  | ||||||
|         type = types.package; |  | ||||||
|         default = pkgs.callPackage ../../../pkgs/by-name/po/porkbun-ddns/package.nix { }; |  | ||||||
|         defaultText = "pkgs.porkbun-ddns"; |  | ||||||
|         description = lib.mdDoc "The porkbun-ddns package to use."; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       interval = mkOption { |  | ||||||
|         type = types.str; |  | ||||||
|         default = "10m"; |  | ||||||
|         description = lib.mdDoc '' |  | ||||||
|           Interval to update dynamic DNS records. The default is to update every |  | ||||||
|           10 minutes. The format is described in {manpage}`systemd.time(7)`. |  | ||||||
|         ''; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       domains = mkOption { |  | ||||||
|         type = types.listOf types.str; |  | ||||||
|         default = [ ]; |  | ||||||
|         description = lib.mdDoc "Domains to update."; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       apiKeyFile = mkOption { |  | ||||||
|         type = types.nullOr types.path; |  | ||||||
|         description = lib.mdDoc '' |  | ||||||
|           File containing the API key to use when running the client. |  | ||||||
|         ''; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       secretApiKeyFile = mkOption { |  | ||||||
|         type = types.nullOr types.path; |  | ||||||
|         description = lib.mdDoc '' |  | ||||||
|           File containing the secret API key to use when running the |  | ||||||
|           client. |  | ||||||
|         ''; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   config = lib.mkIf cfg.enable { |  | ||||||
|     systemd.services.porkbun-ddns = { |  | ||||||
|       description = "Porkbun dynamic DNS client"; |  | ||||||
|       script = '' |  | ||||||
|         ${cfg.package}/bin/porkbun-ddns \ |  | ||||||
|           -K ${cfg.apiKeyFile} \ |  | ||||||
|           -S ${cfg.secretApiKeyFile} \ |  | ||||||
|           ${lib.concatStringsSep " " cfg.domains} |  | ||||||
|       ''; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     systemd.timers.porkbun-ddns = { |  | ||||||
|       description = "Porkbun dynamic DNS client"; |  | ||||||
|       wants = [ "network-online.target" ]; |  | ||||||
|       wantedBy = [ "timers.target" ]; |  | ||||||
|       timerConfig = { |  | ||||||
|         OnBootSec = cfg.interval; |  | ||||||
|         OnUnitActiveSec = cfg.interval; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @@ -1,16 +1,47 @@ | |||||||
| { config, lib, pkgs, ... }: | { config, lib, pkgs, ... }: | ||||||
|  |  | ||||||
| let | let | ||||||
|   inherit (builtins) hashString; |   inherit (lib) mkIf mkOption optionalAttrs optionalString types; | ||||||
|   inherit (lib) mkIf mkOption optionalAttrs types; |  | ||||||
|  |  | ||||||
|   cfg = config.services.betanin; |   cfg = config.services.betanin; | ||||||
|  |  | ||||||
|   defaultUser = "betanin"; |   defaultUser = "betanin"; | ||||||
|   defaultGroup = "betanin"; |   defaultGroup = "betanin"; | ||||||
|  |   defaultSettings = { | ||||||
|  |     notifications = { | ||||||
|  |       services = { }; | ||||||
|  |       strings = { | ||||||
|  |         title = "[betanin] torrent `$name` $status"; | ||||||
|  |         body = "@ $time. view/use the console at http://127.0.0.1:${toString cfg.port}/$console_path"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   finalSettings = | ||||||
|  |     let | ||||||
|  |       base = lib.filterAttrsRecursive (n: _: !(lib.hasSuffix "_file" n)) cfg.settings; | ||||||
|  |       clean = { | ||||||
|  |         frontend.password = | ||||||
|  |           if cfg.settings.frontend.password_file != null | ||||||
|  |           then "@password@" | ||||||
|  |           else cfg.settings.frontend.password; | ||||||
|  |         clients.api_key = | ||||||
|  |           if cfg.settings.clients.api_key_file != null | ||||||
|  |           then "@api_key@" | ||||||
|  |           else cfg.settings.clients.api_key; | ||||||
|  |       }; | ||||||
|  |     in | ||||||
|  |     lib.foldl' lib.recursiveUpdate defaultSettings [ base clean ]; | ||||||
|  |  | ||||||
|   settingsFormat = pkgs.formats.toml { }; |   settingsFormat = pkgs.formats.toml { }; | ||||||
|  |   settingsFile = settingsFormat.generate "betanin.toml" finalSettings; | ||||||
|  |  | ||||||
|   beetsFormat = pkgs.formats.yaml { }; |   beetsFormat = pkgs.formats.yaml { }; | ||||||
|  |   beetsFile = | ||||||
|  |     if (cfg.beetsFile != null) | ||||||
|  |     then cfg.beetsFile | ||||||
|  |     else if (cfg.beetsConfig != { }) | ||||||
|  |     then beetsFormat.generate "betanin-beets.yaml" cfg.beetsConfig | ||||||
|  |     else null; | ||||||
| in | in | ||||||
| { | { | ||||||
|   options = { |   options = { | ||||||
| @@ -54,50 +85,106 @@ in | |||||||
|       }; |       }; | ||||||
|  |  | ||||||
|       settings = mkOption { |       settings = mkOption { | ||||||
|         type = settingsFormat.type; |         type = types.submodule { | ||||||
|         default = { }; |           freeformType = settingsFormat.type; | ||||||
|  |  | ||||||
|  |           options.frontend.username = mkOption { | ||||||
|  |             type = types.str; | ||||||
|  |             default = ""; | ||||||
|  |             description = "Username used to log into the frontend. Must be set."; | ||||||
|  |           }; | ||||||
|  |  | ||||||
|  |           options.frontend.password = mkOption { | ||||||
|  |             type = types.str; | ||||||
|  |             default = ""; | ||||||
|  |             description = '' | ||||||
|  |               Password used to log into the frontend. Either password or | ||||||
|  |               password_file must be set. | ||||||
|  |             ''; | ||||||
|  |           }; | ||||||
|  |  | ||||||
|  |           options.frontend.password_file = mkOption { | ||||||
|  |             type = with types; nullOr (either str path); | ||||||
|  |             default = null; | ||||||
|  |             description = '' | ||||||
|  |               File containing the password used to log into the frontend. The | ||||||
|  |               file must be readable by the betanin user/group. | ||||||
|  |  | ||||||
|  |               Using a password file keeps the password out of the Nix store, but | ||||||
|  |               the password is still stored in plain text in the service data | ||||||
|  |               directory. | ||||||
|  |             ''; | ||||||
|  |           }; | ||||||
|  |  | ||||||
|  |           options.clients.api_key = mkOption { | ||||||
|  |             type = types.nullOr types.str; | ||||||
|  |             default = ""; | ||||||
|  |             description = '' | ||||||
|  |               API key used to access Betanin (e.g., from other services). | ||||||
|  |             ''; | ||||||
|  |           }; | ||||||
|  |  | ||||||
|  |           options.clients.api_key_file = mkOption { | ||||||
|  |             type = with types; nullOr (either str path); | ||||||
|  |             default = null; | ||||||
|  |             description = '' | ||||||
|  |               File containing the API key used to access Betanin (e.g., from | ||||||
|  |               other services). The file must be readable by the betanin | ||||||
|  |               user/group. | ||||||
|  |  | ||||||
|  |               Using a API key file keeps the API key out of the Nix store, but | ||||||
|  |               the API key is still stored in plain text in the service data | ||||||
|  |               directory. | ||||||
|  |             ''; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |         default = defaultSettings; | ||||||
|         example = lib.literalExpression '' |         example = lib.literalExpression '' | ||||||
|           { |           { | ||||||
|             frontend = { |             frontend = { | ||||||
|               username = "foo"; |               username = "foo"; | ||||||
|               password { _secret = "/run/secrets/betaninPasswordFile"; }; |               password_file = "/run/secrets/betaninPasswordFile"; | ||||||
|             }; |             }; | ||||||
|             clients = { |             clients = { | ||||||
|               api_key = { _secret = "/run/secrets/betaninApiKeyFile"; }; |               api_key_file = "/run/secrets/betaninApiKeyFile"; | ||||||
|             }; |             }; | ||||||
|             server = { |             server = { | ||||||
|               num_parallel_jobs = 1; |               num_parallel_jobs = 1; | ||||||
|             }; |             }; | ||||||
|           } |           } | ||||||
|         ''; |         ''; | ||||||
|         description = lib.mdDoc '' |         description = "Configuration for betanin."; | ||||||
|           Configuration for betanin. |  | ||||||
|  |  | ||||||
|           Options containing secret data should be set to an attribute set |  | ||||||
|           containing the attribute `_secret` - a string pointing to a file |  | ||||||
|           containing the value the option should be set to. |  | ||||||
|         ''; |  | ||||||
|       }; |       }; | ||||||
|  |  | ||||||
|       beets.settings = mkOption { |       beetsConfig = mkOption { | ||||||
|  |         description = "beets configuration."; | ||||||
|         type = beetsFormat.type; |         type = beetsFormat.type; | ||||||
|         default = { }; |         default = { }; | ||||||
|         description = lib.mdDoc "Configuration for beets used by betanin."; |       }; | ||||||
|  |  | ||||||
|  |       beetsFile = mkOption { | ||||||
|  |         description = "beets configuration file."; | ||||||
|  |         type = with types; nullOr (either str path); | ||||||
|  |         default = null; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     services.betanin.settings = { |     assertions = [ | ||||||
|       notifications = { |       { | ||||||
|         # Required to exist. |         assertion = cfg.settings.frontend.username != ""; | ||||||
|         services = { }; |         message = "services.betanin.settings.frontend.username is required"; | ||||||
|         strings = { |       } | ||||||
|           title = lib.mkDefault "[betanin] torrent `$name` $status"; |       { | ||||||
|           body = lib.mkDefault "@ $time. view/use the console at http://127.0.0.1:${toString cfg.port}/$console_path"; |         assertion = (cfg.settings.frontend.password == "") != (cfg.settings.frontend.password_file == null); | ||||||
|         }; |         message = "services.betanin.settings.frontend.password or services.betanin.settings.frontend.password_file is required"; | ||||||
|       }; |       } | ||||||
|     }; |       { | ||||||
|  |         assertion = (cfg.settings.clients.api_key == "") != (cfg.settings.clients.api_key_file == null); | ||||||
|  |         message = "services.betanin.settings.clients.api_key or services.betanin.settings.clients.api_key_file is required"; | ||||||
|  |       } | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|     networking.firewall = mkIf cfg.openFirewall { |     networking.firewall = mkIf cfg.openFirewall { | ||||||
|       allowedTCPPorts = [ cfg.port ]; |       allowedTCPPorts = [ cfg.port ]; | ||||||
| @@ -105,20 +192,12 @@ in | |||||||
|  |  | ||||||
|     systemd.services.betanin = |     systemd.services.betanin = | ||||||
|       let |       let | ||||||
|         isSecret = v: lib.isAttrs v && v ? _secret && lib.isString v._secret; |         replaceSecret = secretFile: placeholder: targetFile: | ||||||
|         sanitisedConfig = lib.mapAttrsRecursiveCond |           optionalString (secretFile != null) '' | ||||||
|           (as: !isSecret as) |             ${pkgs.replace-secret}/bin/replace-secret ${placeholder} ${secretFile} ${targetFile} | ||||||
|           (_: v: if isSecret v then hashString "sha256" v._secret else v) |           ''; | ||||||
|           cfg.settings; |         replaceConfigSecret = secretFile: placeholder: | ||||||
|         settingsFile = settingsFormat.generate "betanin.toml" sanitisedConfig; |           replaceSecret secretFile placeholder "${cfg.dataDir}/.config/betanin/config.toml"; | ||||||
|  |  | ||||||
|         secretPaths = lib.catAttrs "_secret" (lib.collect isSecret cfg.settings); |  | ||||||
|         mkSecretReplacement = file: '' |  | ||||||
|           replace-secret ${hashString "sha256" file} ${file} "${cfg.dataDir}/.config/betanin/config.toml" |  | ||||||
|         ''; |  | ||||||
|         secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths; |  | ||||||
|  |  | ||||||
|         beetsFile = beetsFormat.generate "betanin-beets.yaml" cfg.beets.settings; |  | ||||||
|       in |       in | ||||||
|       { |       { | ||||||
|         description = "Betanin service"; |         description = "Betanin service"; | ||||||
| @@ -131,12 +210,15 @@ in | |||||||
|  |  | ||||||
|         script = '' |         script = '' | ||||||
|           mkdir -p ${cfg.dataDir}/.config/betanin \ |           mkdir -p ${cfg.dataDir}/.config/betanin \ | ||||||
|             ${cfg.dataDir}/.local/share/betanin \ |             ${cfg.dataDir}/.config/beets \ | ||||||
|             ${cfg.dataDir}/.config/beets |             ${cfg.dataDir}/.local/share/betanin | ||||||
|  |  | ||||||
|           ln -sf ${beetsFile} ${cfg.dataDir}/.config/beets/config.yaml |  | ||||||
|           cat ${settingsFile} > ${cfg.dataDir}/.config/betanin/config.toml |           cat ${settingsFile} > ${cfg.dataDir}/.config/betanin/config.toml | ||||||
|           ${secretReplacements} |  | ||||||
|  |           ${optionalString (beetsFile != null) '' | ||||||
|  |             ln -sf ${beetsFile} ${cfg.dataDir}/.config/betanin/config.toml | ||||||
|  |           ''} | ||||||
|  |           ${replaceConfigSecret cfg.settings.frontend.password_file "@password@"} | ||||||
|  |           ${replaceConfigSecret cfg.settings.frontend.api_key_file "@api_key@"} | ||||||
|  |  | ||||||
|           ${cfg.package}/bin/betanin --port ${toString cfg.port} |           ${cfg.package}/bin/betanin --port ${toString cfg.port} | ||||||
|         ''; |         ''; | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								pkgs/applications/misc/polybar/9button.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								pkgs/applications/misc/polybar/9button.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | diff --git a/include/components/types.hpp b/include/components/types.hpp | ||||||
|  | index 8125d4b..c435f4a 100644 | ||||||
|  | --- a/include/components/types.hpp | ||||||
|  | +++ b/include/components/types.hpp | ||||||
|  | @@ -43,5 +43,6 @@ enum class controltag { | ||||||
|  |    DOUBLE_MIDDLE, | ||||||
|  |    DOUBLE_RIGHT, | ||||||
|  | +  EXTRA, | ||||||
|  |    // Terminator value, do not use | ||||||
|  |    BTN_COUNT, | ||||||
|  |  }; | ||||||
							
								
								
									
										44
									
								
								pkgs/applications/networking/protonmail-bridge/app.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								pkgs/applications/networking/protonmail-bridge/app.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | { qtbase, go, goModules }: | ||||||
|  |  | ||||||
|  | { | ||||||
|  |   pname = "protonmail-bridge"; | ||||||
|  |  | ||||||
|  |   tags = "pmapi_prod"; | ||||||
|  |  | ||||||
|  |   QT_PKG_CONFIG = "true"; | ||||||
|  |   QT_VERSION = qtbase.version; | ||||||
|  |  | ||||||
|  |   nativeBuildInputs = [ | ||||||
|  |     goModules.qt | ||||||
|  |     qtbase | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   buildPhase = '' | ||||||
|  |     cp cmd/Desktop-Bridge/main.go . | ||||||
|  |  | ||||||
|  |     ## Enable writable vendor | ||||||
|  |     GOMODULE=gomodule | ||||||
|  |     mv vendor $GOMODULE-vendor | ||||||
|  |     mkdir vendor | ||||||
|  |     readarray -t files < <(find $GOMODULE-vendor/ -type f | grep -v github.com/therecipe/qt | sed "s/$GOMODULE-//") | ||||||
|  |     for f in "''${files[@]}"; do | ||||||
|  |       mkdir -p $(dirname $f) | ||||||
|  |       cp -s $PWD/$GOMODULE-$f $f | ||||||
|  |     done | ||||||
|  |     unset GOMODULE | ||||||
|  |  | ||||||
|  |     ## | ||||||
|  |     mkdir -p vendor/github.com/therecipe | ||||||
|  |     cp -r gomodule-vendor/github.com/therecipe/qt vendor/github.com/therecipe/qt | ||||||
|  |     chmod -R a+w vendor/github.com/therecipe/qt | ||||||
|  |  | ||||||
|  |     # Add vendor to GOPATH because fuck | ||||||
|  |     mkdir -p $GOPATH | ||||||
|  |     ln -s $PWD/vendor $GOPATH/src | ||||||
|  |  | ||||||
|  |     qtsetup check | ||||||
|  |     GOROOT=${go}/share/go qtdeploy "''${buildFlagsArray[@]}" build desktop | ||||||
|  |   ''; | ||||||
|  |  | ||||||
|  |   meta.broken = true; | ||||||
|  | } | ||||||
							
								
								
									
										48
									
								
								pkgs/applications/networking/protonmail-bridge/common.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								pkgs/applications/networking/protonmail-bridge/common.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | { lib | ||||||
|  | , fetchFromGitHub | ||||||
|  | , buildGoModule | ||||||
|  | , pkg-config | ||||||
|  | , libsecret | ||||||
|  | }: | ||||||
|  |  | ||||||
|  | { pname | ||||||
|  | , tags | ||||||
|  | , ... | ||||||
|  | }@args: | ||||||
|  |  | ||||||
|  | buildGoModule (lib.recursiveUpdate args rec { | ||||||
|  |   inherit pname; | ||||||
|  |   version = "1.8.10"; | ||||||
|  |  | ||||||
|  |   src = fetchFromGitHub { | ||||||
|  |     owner = "ProtonMail"; | ||||||
|  |     repo = "proton-bridge"; | ||||||
|  |     rev = "br-${version}"; | ||||||
|  |     sha256 = "1na8min9cmn82lpad58abw6837k303fr09l6cvzswaxs73f231ig"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   vendorSha256 = "1219xa1347877bfhnid15y6w9s4hf1czbrmll2iha4gpsmg066bb"; | ||||||
|  |  | ||||||
|  |   nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ | ||||||
|  |     pkg-config | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   buildInputs = (args.buildInputs or [ ]) ++ [ | ||||||
|  |     libsecret | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   inherit tags; | ||||||
|  |  | ||||||
|  |   ldflags = [ | ||||||
|  |     "-X github.com/ProtonMail/proton-bridge/pkg/constants.Version=${version}" | ||||||
|  |     "-X github.com/ProtonMail/proton-bridge/pkg/constants.Revision=${version}" | ||||||
|  |     "-X github.com/ProtonMail/proton-bridge/pkg/constants.BuildDate=unknown" | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   meta = with lib; { | ||||||
|  |     description = "Integrate ProtonMail paid account with any program that supports IMAP and SMTP"; | ||||||
|  |     homepage = "https://protonmail.com"; | ||||||
|  |     license = licenses.gpl3; | ||||||
|  |     plaforms = platforms.x86_64; | ||||||
|  |   }; | ||||||
|  | }) | ||||||
							
								
								
									
										19
									
								
								pkgs/applications/networking/protonmail-bridge/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								pkgs/applications/networking/protonmail-bridge/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | { lib | ||||||
|  | , fetchFromGitHub | ||||||
|  | , buildGoModule | ||||||
|  |  | ||||||
|  | , go | ||||||
|  | , goModules | ||||||
|  | , libsecret | ||||||
|  | , pkg-config | ||||||
|  | , qtbase | ||||||
|  | }: | ||||||
|  | let | ||||||
|  |   builder = import ./common.nix { | ||||||
|  |     inherit lib fetchFromGitHub buildGoModule libsecret pkg-config; | ||||||
|  |   }; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   protonmail-bridge = builder (import ./app.nix { inherit qtbase go goModules; }); | ||||||
|  |   protonmail-bridge-headless = builder (import ./headless.nix { }); | ||||||
|  | } | ||||||
							
								
								
									
										768
									
								
								pkgs/applications/networking/protonmail-bridge/deps.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										768
									
								
								pkgs/applications/networking/protonmail-bridge/deps.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,768 @@ | |||||||
|  | # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) | ||||||
|  | [ | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/0xAX/notificator"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/0xAX/notificator"; | ||||||
|  |       rev = "3962a5ea8da1"; | ||||||
|  |       sha256 = "1lkn6mmghsd4a2h3na8x0r5xgckjn3c0v5vsp6bzhl2k1zxb640p"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/BurntSushi/toml"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/BurntSushi/toml"; | ||||||
|  |       rev = "v0.3.1"; | ||||||
|  |       sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ProtonMail/go-appdir"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-appdir"; | ||||||
|  |       rev = "v1.1.0"; | ||||||
|  |       sha256 = "1pl43h5f79g2r0z98glrxasbb69yzigpd85csl7zmyhg63vzbkqw"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ProtonMail/go-apple-mobileconfig"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-apple-mobileconfig"; | ||||||
|  |       rev = "7ea9927a11f6"; | ||||||
|  |       sha256 = "1vlm9m54xmq0r8bhgwzdmxnxf97sz01lgi6lw8pcjbljmzb9l75f"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ProtonMail/go-autostart"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-autostart"; | ||||||
|  |       rev = "c5272053443a"; | ||||||
|  |       sha256 = "0cjnsbqrkhlapma2070cqcxr4wkvv55is3byqn8zmkzi0l3217nf"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ProtonMail/go-imap-id"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-imap-id"; | ||||||
|  |       rev = "ed0baee567ee"; | ||||||
|  |       sha256 = "1kljw64pi3kabbd3gi7zy9wqzaypsxrdi5mfwf6akl438bq44jm4"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ProtonMail/go-mime"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-mime"; | ||||||
|  |       rev = "09454e3dbe72"; | ||||||
|  |       sha256 = "1ncca6191nf0lsfhhhdxdbhxg3b2q1cmvjhq2428g0b50dlfkrnn"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ProtonMail/go-vcard"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-vcard"; | ||||||
|  |       rev = "33aaa0a0c8a5"; | ||||||
|  |       sha256 = "19cify6lxd2yirqc92yfgzvn5qlc8a01a2kxjdg83jv0lx6ps26q"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ProtonMail/gopenpgp"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/gopenpgp"; | ||||||
|  |       rev = "d398098113ed"; | ||||||
|  |       sha256 = "0ry69mymb6q00g4khdbzllrz7b44zhxvdzavhz6936n9dzsay13v"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/abiosoft/ishell"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/abiosoft/ishell"; | ||||||
|  |       rev = "v2.0.0"; | ||||||
|  |       sha256 = "11r6l133aaz6khm60x0a410ckpzvqzv2az7z5b088c2vddnp538r"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/abiosoft/readline"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/abiosoft/readline"; | ||||||
|  |       rev = "155bce2042db"; | ||||||
|  |       sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/allan-simon/go-singleinstance"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/allan-simon/go-singleinstance"; | ||||||
|  |       rev = "79edcfdc2dfc"; | ||||||
|  |       sha256 = "06xrxifz5cd98iji7v46zq9xf63zf77sqbr72w1ics3s2hyfkpjz"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/andybalholm/cascadia"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/andybalholm/cascadia"; | ||||||
|  |       rev = "v1.1.0"; | ||||||
|  |       sha256 = "1slh68ysbixc21gbni4msrgq971n59gnn2x3ys196jd413a6qf0f"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/cention-sany/utf7"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/cention-sany/utf7"; | ||||||
|  |       rev = "26cad61bd60a"; | ||||||
|  |       sha256 = "1jy15ryfcln1iwchrksqyrnyfy41gisymm4f9sr1d73ja029bznm"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/certifi/gocertifi"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/certifi/gocertifi"; | ||||||
|  |       rev = "c7c1fbc02894"; | ||||||
|  |       sha256 = "018bsy1vclsdk2kns9f37giabibg3kggk3vpj0yr3dv0k72gzybk"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/chzyer/logex"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/chzyer/logex"; | ||||||
|  |       rev = "v1.1.10"; | ||||||
|  |       sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/chzyer/test"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/chzyer/test"; | ||||||
|  |       rev = "a1ea475d72b1"; | ||||||
|  |       sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/cpuguy83/go-md2man"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/cpuguy83/go-md2man"; | ||||||
|  |       rev = "f79a8a8ca69d"; | ||||||
|  |       sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/cucumber/godog"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/cucumber/godog"; | ||||||
|  |       rev = "v0.8.1"; | ||||||
|  |       sha256 = "00bplmx3r7mjaxyf1ky1mh9ps17p78656xjpkqf3wkfhchssm3ny"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/danieljoos/wincred"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/danieljoos/wincred"; | ||||||
|  |       rev = "v1.0.2"; | ||||||
|  |       sha256 = "1ym8mygjrf3rw1qka9irw76b2yisr2l5pq2w581s40yldnbfq4lc"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/davecgh/go-spew"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/davecgh/go-spew"; | ||||||
|  |       rev = "v1.1.1"; | ||||||
|  |       sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/docker/docker-credential-helpers"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/docker-credential-helpers"; | ||||||
|  |       rev = "0326642117d8"; | ||||||
|  |       sha256 = "02qfw1w6v14kfjlc6slg7hvv2raan5263ivymdn2pjm3hdcgs7lh"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-imap"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-imap"; | ||||||
|  |       rev = "0e686f0e855f"; | ||||||
|  |       sha256 = "1gijqy3wq6lbqbrljl4l12w5snji3c9fpvywhk9wyd56mdsy7wyr"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-imap-appendlimit"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-imap-appendlimit"; | ||||||
|  |       rev = "beeb382f2a42"; | ||||||
|  |       sha256 = "089kgnryvignl9z5c3fi5bxyc3jl7jgmz6ykhk73n8nqp8kgi43b"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-imap-idle"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-imap-idle"; | ||||||
|  |       rev = "e03ba1e0ed89"; | ||||||
|  |       sha256 = "0yavndwl9g3q4j97659kq1mpyc22q27vq0lg0f7v704irmbbkanp"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-imap-move"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-imap-move"; | ||||||
|  |       rev = "88aef42b0f1d"; | ||||||
|  |       sha256 = "006l76qxkf7gnb0kc7r9xmxg7nmmwfw8sf5lsg05093rwcg232f4"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-imap-quota"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-imap-quota"; | ||||||
|  |       rev = "20f0ba8904de"; | ||||||
|  |       sha256 = "1qvhzsm0wjg0ndk963l9wcmdiyacbrmslhvmg1zhj3k9np41ravv"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-imap-specialuse"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-imap-specialuse"; | ||||||
|  |       rev = "ba031ced6a62"; | ||||||
|  |       sha256 = "0f8rxgr4z5a7nphhz6vnsqgjr04wwrvdcnsxp5rl2lh60yvj3wig"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-imap-unselect"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-imap-unselect"; | ||||||
|  |       rev = "1e6dc73ac8fe"; | ||||||
|  |       sha256 = "0higgjn41ksgsl11zphljbz690i17swzhfkij51dghjnj9q287ff"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-sasl"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-sasl"; | ||||||
|  |       rev = "430746ea8b9b"; | ||||||
|  |       sha256 = "11rhbayr1w3zhpl3q7gd6i15qz97pk0k4xs0n39m91hrgl1fj03c"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-smtp"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/go-smtp"; | ||||||
|  |       rev = "8261df20d309"; | ||||||
|  |       sha256 = "0n6k7xbffzsxfjcc74q21nh8dp5s44v3xh9hrsi7a147n8qm83iq"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-textwrapper"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-textwrapper"; | ||||||
|  |       rev = "d0e65e56babe"; | ||||||
|  |       sha256 = "1nw8qpjjbpkz49wd19yg2qsln1dmdfxi83wp2aa819cv6xxf2y7l"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/emersion/go-vcard"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/emersion/go-vcard"; | ||||||
|  |       rev = "8856043f13c5"; | ||||||
|  |       sha256 = "1dzw5awqbkf2nc09ynmn3zlylj4n1na96rziv5z8p42b1bmbklwk"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/fatih/color"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/fatih/color"; | ||||||
|  |       rev = "v1.9.0"; | ||||||
|  |       sha256 = "086z8ssmr1fn9ba4mqnw7pnccfpys6l5yfhvycv1gdrsk7n27mvs"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/flynn-archive/go-shlex"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/flynn-archive/go-shlex"; | ||||||
|  |       rev = "3f9db97f8568"; | ||||||
|  |       sha256 = "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/getsentry/raven-go"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/getsentry/raven-go"; | ||||||
|  |       rev = "v0.2.0"; | ||||||
|  |       sha256 = "0imfwmsb72168fqandf2lxhzhngf2flxhzaar8hcnnfjv2a291lf"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/go-resty/resty"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/go-resty/resty"; | ||||||
|  |       rev = "v2.2.0"; | ||||||
|  |       sha256 = "0khfcq07kq6z2vq0i42an8fd16pl1rc980rlf7c1x4szsf8qcajm"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/go-test/deep"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/go-test/deep"; | ||||||
|  |       rev = "v1.0.2"; | ||||||
|  |       sha256 = "1dax5bbp95lvkns0jjwf6l3rqj5q4xxd37whpqa8nyyjcakdxnqd"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/gogs/chardet"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/gogs/chardet"; | ||||||
|  |       rev = "2404f7772561"; | ||||||
|  |       sha256 = "1dki2pqhnzcmzlqrq4d4jwknnjxm82xqnmizjjdblb6h98ans1cd"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/golang/mock"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/golang/mock"; | ||||||
|  |       rev = "v1.4.3"; | ||||||
|  |       sha256 = "1p37xnja1dgq5ykx24n7wincwz2gahjh71b95p8vpw7ss2g8j8wx"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/google/go-cmp"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/google/go-cmp"; | ||||||
|  |       rev = "v0.4.0"; | ||||||
|  |       sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/gopherjs/gopherjs"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/gopherjs/gopherjs"; | ||||||
|  |       rev = "3e4dfb77656c"; | ||||||
|  |       sha256 = "0bmapn4dskpr4a79kcr5irkw19px4a71ls5gspffxiva7sapgyvw"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/hashicorp/errwrap"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/hashicorp/errwrap"; | ||||||
|  |       rev = "v1.0.0"; | ||||||
|  |       sha256 = "0slfb6w3b61xz04r32bi0a1bygc82rjzhqkxj2si2074wynqnr1c"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/hashicorp/go-multierror"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/hashicorp/go-multierror"; | ||||||
|  |       rev = "v1.0.0"; | ||||||
|  |       sha256 = "00nyn8llqzbfm8aflr9kwsvpzi4kv8v45c141v88xskxp5xf6z49"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/jameskeane/bcrypt"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/bcrypt"; | ||||||
|  |       rev = "7509ea014998"; | ||||||
|  |       sha256 = "12xi8i4sb6q4h4wd6w1phqpzxpff5c629ard8cnkjp7qmznvcc20"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/jaytaylor/html2text"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/jaytaylor/html2text"; | ||||||
|  |       rev = "61d9dc4d7195"; | ||||||
|  |       sha256 = "19cn6k8anx8w2ar8kwza6vlijim2xbj4hqxy1m79y0m386b2hapl"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/jhillyerd/enmime"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/jhillyerd/enmime"; | ||||||
|  |       rev = "v0.8.0"; | ||||||
|  |       sha256 = "1wzz3hzf8bnn0wbxznzrfdrs4x7qxdgqpf1xirlsisq8z0r8hn9z"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/kardianos/osext"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/kardianos/osext"; | ||||||
|  |       rev = "2bc1f35cddc0"; | ||||||
|  |       sha256 = "1pvrbrvmrf4mx0fxbfaphbzgqgwn8v6lkfk2vyrs0znxrs1xyc5r"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/keybase/go-keychain"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/keybase/go-keychain"; | ||||||
|  |       rev = "86d4642e4ce2"; | ||||||
|  |       sha256 = "05prxx2bbcqwk5lwk1gdqsrwy256mp4k4im316h9ar3sh42frha6"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/konsorten/go-windows-terminal-sequences"; | ||||||
|  |       rev = "v1.0.2"; | ||||||
|  |       sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/logrusorgru/aurora"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/logrusorgru/aurora"; | ||||||
|  |       rev = "e9ef32dff381"; | ||||||
|  |       sha256 = "19laya9dav84miw3d0c9vgiv577wzrhydv5mdiii59sgbd780hhq"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/mattn/go-colorable"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/mattn/go-colorable"; | ||||||
|  |       rev = "v0.1.4"; | ||||||
|  |       sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/mattn/go-isatty"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/mattn/go-isatty"; | ||||||
|  |       rev = "v0.0.11"; | ||||||
|  |       sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/mattn/go-runewidth"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/mattn/go-runewidth"; | ||||||
|  |       rev = "v0.0.4"; | ||||||
|  |       sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/miekg/dns"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/miekg/dns"; | ||||||
|  |       rev = "v1.1.29"; | ||||||
|  |       sha256 = "1bkk930cg46w1akii60bqqkgy9h9axlcfnqk252r6w8qqpf4z5hh"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/myesui/uuid"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/myesui/uuid"; | ||||||
|  |       rev = "v1.0.0"; | ||||||
|  |       sha256 = "1si8cfjin9dyzprnyvfk8pckbsvg97hzs9hffz91505lpidlb9bc"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/nsf/jsondiff"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/nsf/jsondiff"; | ||||||
|  |       rev = "8443391ee9b6"; | ||||||
|  |       sha256 = "1zxk0mzil5x197zaqjld403f3vvzilgvciq1z62zl1c1vbwbpwch"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/olekukonko/tablewriter"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/olekukonko/tablewriter"; | ||||||
|  |       rev = "v0.0.1"; | ||||||
|  |       sha256 = "0hh95glg7d2md185r03wn52j2r33jc4zil0qvcrs66ka7bdxi7vj"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/pkg/errors"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/pkg/errors"; | ||||||
|  |       rev = "v0.9.1"; | ||||||
|  |       sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/pmezard/go-difflib"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/pmezard/go-difflib"; | ||||||
|  |       rev = "v1.0.0"; | ||||||
|  |       sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/russross/blackfriday"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/russross/blackfriday"; | ||||||
|  |       rev = "v2.0.1"; | ||||||
|  |       sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/saintfish/chardet"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/saintfish/chardet"; | ||||||
|  |       rev = "3af4cd4741ca"; | ||||||
|  |       sha256 = "0czh50md64k9lbllayq0asir3174saxb88yzxrh640yhfxd98pcb"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/shurcooL/sanitized_anchor_name"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/shurcooL/sanitized_anchor_name"; | ||||||
|  |       rev = "v1.0.0"; | ||||||
|  |       sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/sirupsen/logrus"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/sirupsen/logrus"; | ||||||
|  |       rev = "v1.4.2"; | ||||||
|  |       sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/skratchdot/open-golang"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/skratchdot/open-golang"; | ||||||
|  |       rev = "eef842397966"; | ||||||
|  |       sha256 = "0n6387csjn024db8wldadsiy8ljz7lk7szl6ls28fcbkax7rw86y"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/ssor/bom"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ssor/bom"; | ||||||
|  |       rev = "6386211fdfcf"; | ||||||
|  |       sha256 = "09g5496ifwqxqclh2iw58plcwcz0sczlnxwqxzwmnl4shdl371ld"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/stretchr/objx"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/stretchr/objx"; | ||||||
|  |       rev = "v0.2.0"; | ||||||
|  |       sha256 = "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/stretchr/testify"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/stretchr/testify"; | ||||||
|  |       rev = "v1.5.1"; | ||||||
|  |       sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/therecipe/qt"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/therecipe/qt"; | ||||||
|  |       rev = "5074eb6d8c41"; | ||||||
|  |       sha256 = "1zpil531gjravag76p1032c7wizpskzanymdpc74rs8ixckws9zi"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/twinj/uuid"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/twinj/uuid"; | ||||||
|  |       rev = "v1.0.0"; | ||||||
|  |       sha256 = "1si8cfjin9dyzprnyvfk8pckbsvg97hzs9hffz91505lpidlb9bc"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/urfave/cli"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/urfave/cli"; | ||||||
|  |       rev = "v1.22.3"; | ||||||
|  |       sha256 = "1lz6i6h4mcb4zqclj2lgy34hwpj1bpkxwzkgrqikfsd8pp9wyq9q"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "go.etcd.io/bbolt"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/etcd-io/bbolt"; | ||||||
|  |       rev = "v1.3.3"; | ||||||
|  |       sha256 = "0dn0zngks9xiz0rrrb3911f73ghl64z84jsmzai2yfmzqr7cdkqc"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/crypto"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/ProtonMail/crypto"; | ||||||
|  |       rev = "d3d8a14a4d4f"; | ||||||
|  |       sha256 = "1w5q5snw1nqsdwqffvk0rlmsqx5b6mpfi45adr2j4lzzpw1ab03a"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/mod"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://go.googlesource.com/mod"; | ||||||
|  |       rev = "c90efee705ee"; | ||||||
|  |       sha256 = "0i5md645rmcy5z5ij9ng428k9rz4g3k1kjy3blsq1264rn426gdf"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/net"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://go.googlesource.com/net"; | ||||||
|  |       rev = "244492dfa37a"; | ||||||
|  |       sha256 = "0vm2q44phz4vjnzq9428rjk58c82fxf003whczp7c9ryn9fazh7s"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/sync"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://go.googlesource.com/sync"; | ||||||
|  |       rev = "112230192c58"; | ||||||
|  |       sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/sys"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://go.googlesource.com/sys"; | ||||||
|  |       rev = "33540a1f6037"; | ||||||
|  |       sha256 = "0fjcv0vzvi6za0b4xmnk3932pr9f9gczzf03y0kgq3ry9rqg169y"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/text"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://go.googlesource.com/text"; | ||||||
|  |       rev = "v0.3.2"; | ||||||
|  |       sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/tools"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://go.googlesource.com/tools"; | ||||||
|  |       rev = "49a3e744a425"; | ||||||
|  |       sha256 = "0xx4gv9wpv36crk7gv7imf5vzzs2mz7zla2q2jkck3xnzff8fw3v"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/xerrors"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://go.googlesource.com/xerrors"; | ||||||
|  |       rev = "9bdfabe68543"; | ||||||
|  |       sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "gopkg.in/check.v1"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://gopkg.in/check.v1"; | ||||||
|  |       rev = "20d25e280405"; | ||||||
|  |       sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "gopkg.in/stretchr/testify.v1"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://gopkg.in/stretchr/testify.v1"; | ||||||
|  |       rev = "v1.2.2"; | ||||||
|  |       sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "gopkg.in/yaml.v2"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://gopkg.in/yaml.v2"; | ||||||
|  |       rev = "v2.2.2"; | ||||||
|  |       sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "rsc.io/quote"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/rsc/quote"; | ||||||
|  |       rev = "v3.1.0"; | ||||||
|  |       sha256 = "0nvv97hwwrl1mx5gzsbdm1ndnwpg3m7i2jb10ig9wily7zmvki0i"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "rsc.io/sampler"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/rsc/sampler"; | ||||||
|  |       rev = "v1.3.0"; | ||||||
|  |       sha256 = "0byxk2ynba50py805kcvbvjzh59l1r308i1xgyzpw6lff4xx9xjh"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  | ] | ||||||
							
								
								
									
										17
									
								
								pkgs/applications/networking/protonmail-bridge/headless.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								pkgs/applications/networking/protonmail-bridge/headless.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | {}: | ||||||
|  |  | ||||||
|  | { | ||||||
|  |   pname = "protonmail-bridge-headless"; | ||||||
|  |  | ||||||
|  |   tags = [ "pmapi_prod" "nogui" ]; | ||||||
|  |  | ||||||
|  |   # REVIEW: Some issue with IMAP tests that probably fail due to network | ||||||
|  |   # sandboxing. | ||||||
|  |   doCheck = false; | ||||||
|  |  | ||||||
|  |   # Fix up name. | ||||||
|  |   postInstall = '' | ||||||
|  |     mv $out/bin/Desktop-Bridge $out/bin/protonmail-bridge | ||||||
|  |     mv $out/bin/Import-Export $out/bin/protonmail-import-export | ||||||
|  |   ''; | ||||||
|  | } | ||||||
							
								
								
									
										55
									
								
								pkgs/by-name/al/alacritty-ligatures/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								pkgs/by-name/al/alacritty-ligatures/package.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | { stdenv | ||||||
|  | , lib | ||||||
|  | , fetchFromGitHub | ||||||
|  |  | ||||||
|  | , alacritty | ||||||
|  |  | ||||||
|  | , fontconfig | ||||||
|  | , freetype | ||||||
|  | , libglvnd | ||||||
|  | , libxcb | ||||||
|  | }: | ||||||
|  |  | ||||||
|  | alacritty.overrideAttrs (oldAttrs: rec { | ||||||
|  |   pname = "${oldAttrs.pname}-ligatures"; | ||||||
|  |   version = "0.7.2.20210209.g3ed0430"; | ||||||
|  |  | ||||||
|  |   src = fetchFromGitHub { | ||||||
|  |     owner = "zenixls2"; | ||||||
|  |     repo = "alacritty"; | ||||||
|  |     fetchSubmodules = true; | ||||||
|  |     rev = "3ed043046fc74f288d4c8fa7e4463dc201213500"; | ||||||
|  |     sha256 = "1dGk4ORzMSUQhuKSt5Yo7rOJCJ5/folwPX2tLiu0suA="; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   cargoDeps = oldAttrs.cargoDeps.overrideAttrs (lib.const { | ||||||
|  |     name = "${pname}-${version}-vendor.tar.gz"; | ||||||
|  |     inherit src; | ||||||
|  |     outputSha256 = "pONu6caJmEKnbr7j+o9AyrYNpS4Q8OEjNZOhGTalncc="; | ||||||
|  |   }); | ||||||
|  |  | ||||||
|  |   ligatureInputs = [ | ||||||
|  |     fontconfig | ||||||
|  |     freetype | ||||||
|  |     libglvnd | ||||||
|  |     stdenv.cc.cc.lib | ||||||
|  |     libxcb | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   preferLocalBuild = true; | ||||||
|  |  | ||||||
|  |   buildInputs = (oldAttrs.buildInputs or [ ]) ++ ligatureInputs; | ||||||
|  |  | ||||||
|  |   # HACK: One of the ligature libraries required the C++ stdlib at runtime, | ||||||
|  |   # and I can't work out a better way to push it to the RPATH. | ||||||
|  |   postInstall = lib.optional (!stdenv.isDarwin) '' | ||||||
|  |     patchelf \ | ||||||
|  |       --set-rpath ${lib.makeLibraryPath ligatureInputs}:"$(patchelf --print-rpath $out/bin/alacritty)" \ | ||||||
|  |       $out/bin/alacritty | ||||||
|  |   ''; | ||||||
|  |  | ||||||
|  |   meta = oldAttrs.meta // { | ||||||
|  |     description = "Alacritty with ligature patch applied"; | ||||||
|  |     homepage = "https://github.com/zenixls2/alacritty/tree/ligature"; | ||||||
|  |   }; | ||||||
|  | }) | ||||||
| @@ -9,11 +9,11 @@ | |||||||
|  |  | ||||||
| stdenv.mkDerivation rec { | stdenv.mkDerivation rec { | ||||||
|   pname = "atlauncher"; |   pname = "atlauncher"; | ||||||
|   version = "3.4.35.2"; |   version = "3.4.34.0"; | ||||||
|  |  | ||||||
|   src = fetchurl { |   src = fetchurl { | ||||||
|     url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${version}/ATLauncher-${version}.jar"; |     url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${version}/ATLauncher-${version}.jar"; | ||||||
|     hash = "sha256-CVJQGMnETW9BOn2To09/UuLrseNfovUyEFhcz/zyHOQ="; |     hash = "sha256-gHUYZaxADchikoCmAfqFjVbMYhhiwg2BZKctmww1Mlw="; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   dontUnpack = true; |   dontUnpack = true; | ||||||
|   | |||||||
| @@ -1,8 +1,11 @@ | |||||||
| # This file has been generated by node2nix 1.11.1. Do not edit! | # This file has been generated by node2nix 1.11.1. Do not edit! | ||||||
|  |  | ||||||
| {pkgs ? import <nixpkgs> { | { pkgs ? import <nixpkgs> { | ||||||
|     inherit system; |     inherit system; | ||||||
|   }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_18"}: |   } | ||||||
|  | , system ? builtins.currentSystem | ||||||
|  | , nodejs ? pkgs."nodejs_18" | ||||||
|  | }: | ||||||
|  |  | ||||||
| let | let | ||||||
|   nodeEnv = import ./node-env.nix { |   nodeEnv = import ./node-env.nix { | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # This file originates from node2nix | # This file originates from node2nix | ||||||
|  |  | ||||||
| {lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}: | { lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript }: | ||||||
|  |  | ||||||
| let | let | ||||||
|   # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master |   # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master | ||||||
| @@ -9,7 +9,7 @@ let | |||||||
|   python = if nodejs ? python then nodejs.python else python2; |   python = if nodejs ? python then nodejs.python else python2; | ||||||
|  |  | ||||||
|   # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise |   # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise | ||||||
|   tarWrapper = runCommand "tarWrapper" {} '' |   tarWrapper = runCommand "tarWrapper" { } '' | ||||||
|     mkdir -p $out/bin |     mkdir -p $out/bin | ||||||
|  |  | ||||||
|     cat > $out/bin/tar <<EOF |     cat > $out/bin/tar <<EOF | ||||||
| @@ -90,26 +90,28 @@ let | |||||||
|   # Bundle the dependencies of the package |   # Bundle the dependencies of the package | ||||||
|   # |   # | ||||||
|   # Only include dependencies if they don't exist. They may also be bundled in the package. |   # Only include dependencies if they don't exist. They may also be bundled in the package. | ||||||
|   includeDependencies = {dependencies}: |   includeDependencies = { dependencies }: | ||||||
|     lib.optionalString (dependencies != []) ( |     lib.optionalString (dependencies != [ ]) ( | ||||||
|       '' |       '' | ||||||
|         mkdir -p node_modules |         mkdir -p node_modules | ||||||
|         cd node_modules |         cd node_modules | ||||||
|       '' |       '' | ||||||
|       + (lib.concatMapStrings (dependency: |       + (lib.concatMapStrings | ||||||
|         '' |         (dependency: | ||||||
|           if [ ! -e "${dependency.packageName}" ]; then |           '' | ||||||
|               ${composePackage dependency} |             if [ ! -e "${dependency.packageName}" ]; then | ||||||
|           fi |                 ${composePackage dependency} | ||||||
|         '' |             fi | ||||||
|       ) dependencies) |           '' | ||||||
|  |         ) | ||||||
|  |         dependencies) | ||||||
|       + '' |       + '' | ||||||
|         cd .. |         cd .. | ||||||
|       '' |       '' | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|   # Recursively composes the dependencies of a package |   # Recursively composes the dependencies of a package | ||||||
|   composePackage = { name, packageName, src, dependencies ? [], ... }@args: |   composePackage = { name, packageName, src, dependencies ? [ ], ... }@args: | ||||||
|     builtins.addErrorContext "while evaluating node package '${packageName}'" '' |     builtins.addErrorContext "while evaluating node package '${packageName}'" '' | ||||||
|       installPackage "${packageName}" "${src}" |       installPackage "${packageName}" "${src}" | ||||||
|       ${includeDependencies { inherit dependencies; }} |       ${includeDependencies { inherit dependencies; }} | ||||||
| @@ -117,7 +119,7 @@ let | |||||||
|       ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} |       ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} | ||||||
|     ''; |     ''; | ||||||
|  |  | ||||||
|   pinpointDependencies = {dependencies, production}: |   pinpointDependencies = { dependencies, production }: | ||||||
|     let |     let | ||||||
|       pinpointDependenciesFromPackageJSON = writeTextFile { |       pinpointDependenciesFromPackageJSON = writeTextFile { | ||||||
|         name = "pinpointDependencies.js"; |         name = "pinpointDependencies.js"; | ||||||
| @@ -194,7 +196,7 @@ let | |||||||
|   # dependencies in the package.json file to the versions that are actually |   # dependencies in the package.json file to the versions that are actually | ||||||
|   # being used. |   # being used. | ||||||
|  |  | ||||||
|   pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: |   pinpointDependenciesOfPackage = { packageName, dependencies ? [ ], production ? true, ... }@args: | ||||||
|     '' |     '' | ||||||
|       if [ -d "${packageName}" ] |       if [ -d "${packageName}" ] | ||||||
|       then |       then | ||||||
| @@ -207,7 +209,7 @@ let | |||||||
|  |  | ||||||
|   # Extract the Node.js source code which is used to compile packages with |   # Extract the Node.js source code which is used to compile packages with | ||||||
|   # native bindings |   # native bindings | ||||||
|   nodeSources = runCommand "node-sources" {} '' |   nodeSources = runCommand "node-sources" { } '' | ||||||
|     tar --no-same-owner --no-same-permissions -xf ${nodejs.src} |     tar --no-same-owner --no-same-permissions -xf ${nodejs.src} | ||||||
|     mv node-* $out |     mv node-* $out | ||||||
|   ''; |   ''; | ||||||
| @@ -414,64 +416,64 @@ let | |||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: |   prepareAndInvokeNPM = { packageName, bypassCache, reconstructLock, npmFlags, production }: | ||||||
|     let |     let | ||||||
|       forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; |       forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; | ||||||
|     in |     in | ||||||
|     '' |     '' | ||||||
|         # Pinpoint the versions of all dependencies to the ones that are actually being used |       # Pinpoint the versions of all dependencies to the ones that are actually being used | ||||||
|         echo "pinpointing versions of dependencies..." |       echo "pinpointing versions of dependencies..." | ||||||
|         source $pinpointDependenciesScriptPath |       source $pinpointDependenciesScriptPath | ||||||
|  |  | ||||||
|         # Patch the shebangs of the bundled modules to prevent them from |       # Patch the shebangs of the bundled modules to prevent them from | ||||||
|         # calling executables outside the Nix store as much as possible |       # calling executables outside the Nix store as much as possible | ||||||
|         patchShebangs . |       patchShebangs . | ||||||
|  |  | ||||||
|         # Deploy the Node.js package by running npm install. Since the |       # Deploy the Node.js package by running npm install. Since the | ||||||
|         # dependencies have been provided already by ourselves, it should not |       # dependencies have been provided already by ourselves, it should not | ||||||
|         # attempt to install them again, which is good, because we want to make |       # attempt to install them again, which is good, because we want to make | ||||||
|         # it Nix's responsibility. If it needs to install any dependencies |       # it Nix's responsibility. If it needs to install any dependencies | ||||||
|         # anyway (e.g. because the dependency parameters are |       # anyway (e.g. because the dependency parameters are | ||||||
|         # incomplete/incorrect), it fails. |       # incomplete/incorrect), it fails. | ||||||
|         # |       # | ||||||
|         # The other responsibilities of NPM are kept -- version checks, build |       # The other responsibilities of NPM are kept -- version checks, build | ||||||
|         # steps, postprocessing etc. |       # steps, postprocessing etc. | ||||||
|  |  | ||||||
|         export HOME=$TMPDIR |       export HOME=$TMPDIR | ||||||
|         cd "${packageName}" |       cd "${packageName}" | ||||||
|         runHook preRebuild |       runHook preRebuild | ||||||
|  |  | ||||||
|         ${lib.optionalString bypassCache '' |       ${lib.optionalString bypassCache '' | ||||||
|           ${lib.optionalString reconstructLock '' |         ${lib.optionalString reconstructLock '' | ||||||
|             if [ -f package-lock.json ] |           if [ -f package-lock.json ] | ||||||
|             then |           then | ||||||
|                 echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" |               echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" | ||||||
|                 echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" |               echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" | ||||||
|                 rm package-lock.json |               rm package-lock.json | ||||||
|             else |           else | ||||||
|                 echo "No package-lock.json file found, reconstructing..." |               echo "No package-lock.json file found, reconstructing..." | ||||||
|             fi |           fi | ||||||
|  |  | ||||||
|             node ${reconstructPackageLock} |           node ${reconstructPackageLock} | ||||||
|           ''} |  | ||||||
|  |  | ||||||
|           node ${addIntegrityFieldsScript} |  | ||||||
|         ''} |         ''} | ||||||
|  |  | ||||||
|         npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild |         node ${addIntegrityFieldsScript} | ||||||
|  |       ''} | ||||||
|  |  | ||||||
|         runHook postRebuild |       npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild | ||||||
|  |  | ||||||
|         if [ "''${dontNpmInstall-}" != "1" ] |       runHook postRebuild | ||||||
|         then |  | ||||||
|             # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. |  | ||||||
|             rm -f npm-shrinkwrap.json |  | ||||||
|  |  | ||||||
|             npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install |       if [ "''${dontNpmInstall-}" != "1" ] | ||||||
|         fi |       then | ||||||
|  |           # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. | ||||||
|  |           rm -f npm-shrinkwrap.json | ||||||
|  |  | ||||||
|         # Link executables defined in package.json |           npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install | ||||||
|         node ${linkBinsScript} |       fi | ||||||
|  |  | ||||||
|  |       # Link executables defined in package.json | ||||||
|  |       node ${linkBinsScript} | ||||||
|     ''; |     ''; | ||||||
|  |  | ||||||
|   # Builds and composes an NPM package including all its dependencies |   # Builds and composes an NPM package including all its dependencies | ||||||
| @@ -479,8 +481,8 @@ let | |||||||
|     { name |     { name | ||||||
|     , packageName |     , packageName | ||||||
|     , version ? null |     , version ? null | ||||||
|     , dependencies ? [] |     , dependencies ? [ ] | ||||||
|     , buildInputs ? [] |     , buildInputs ? [ ] | ||||||
|     , production ? true |     , production ? true | ||||||
|     , npmFlags ? "" |     , npmFlags ? "" | ||||||
|     , dontNpmInstall ? false |     , dontNpmInstall ? false | ||||||
| @@ -490,8 +492,9 @@ let | |||||||
|     , dontStrip ? true |     , dontStrip ? true | ||||||
|     , unpackPhase ? "true" |     , unpackPhase ? "true" | ||||||
|     , buildPhase ? "true" |     , buildPhase ? "true" | ||||||
|     , meta ? {} |     , meta ? { } | ||||||
|     , ... }@args: |     , ... | ||||||
|  |     }@args: | ||||||
|  |  | ||||||
|     let |     let | ||||||
|       extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; |       extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; | ||||||
| @@ -572,8 +575,8 @@ let | |||||||
|     , packageName |     , packageName | ||||||
|     , version ? null |     , version ? null | ||||||
|     , src |     , src | ||||||
|     , dependencies ? [] |     , dependencies ? [ ] | ||||||
|     , buildInputs ? [] |     , buildInputs ? [ ] | ||||||
|     , production ? true |     , production ? true | ||||||
|     , npmFlags ? "" |     , npmFlags ? "" | ||||||
|     , dontNpmInstall ? false |     , dontNpmInstall ? false | ||||||
| @@ -582,60 +585,61 @@ let | |||||||
|     , dontStrip ? true |     , dontStrip ? true | ||||||
|     , unpackPhase ? "true" |     , unpackPhase ? "true" | ||||||
|     , buildPhase ? "true" |     , buildPhase ? "true" | ||||||
|     , ... }@args: |     , ... | ||||||
|  |     }@args: | ||||||
|  |  | ||||||
|     let |     let | ||||||
|       extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; |       extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; | ||||||
|     in |     in | ||||||
|       stdenv.mkDerivation ({ |     stdenv.mkDerivation ({ | ||||||
|         name = "node-dependencies-${name}${if version == null then "" else "-${version}"}"; |       name = "node-dependencies-${name}${if version == null then "" else "-${version}"}"; | ||||||
|  |  | ||||||
|         buildInputs = [ tarWrapper python nodejs ] |       buildInputs = [ tarWrapper python nodejs ] | ||||||
|           ++ lib.optional (stdenv.isLinux) utillinux |         ++ lib.optional (stdenv.isLinux) utillinux | ||||||
|           ++ lib.optional (stdenv.isDarwin) libtool |         ++ lib.optional (stdenv.isDarwin) libtool | ||||||
|           ++ buildInputs; |         ++ buildInputs; | ||||||
|  |  | ||||||
|         inherit dontStrip; # Stripping may fail a build for some package deployments |       inherit dontStrip; # Stripping may fail a build for some package deployments | ||||||
|         inherit dontNpmInstall unpackPhase buildPhase; |       inherit dontNpmInstall unpackPhase buildPhase; | ||||||
|  |  | ||||||
|         includeScript = includeDependencies { inherit dependencies; }; |       includeScript = includeDependencies { inherit dependencies; }; | ||||||
|         pinpointDependenciesScript = pinpointDependenciesOfPackage args; |       pinpointDependenciesScript = pinpointDependenciesOfPackage args; | ||||||
|  |  | ||||||
|         passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; |       passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; | ||||||
|  |  | ||||||
|         installPhase = '' |       installPhase = '' | ||||||
|           source ${installPackage} |         source ${installPackage} | ||||||
|  |  | ||||||
|           mkdir -p $out/${packageName} |         mkdir -p $out/${packageName} | ||||||
|           cd $out/${packageName} |         cd $out/${packageName} | ||||||
|  |  | ||||||
|           source $includeScriptPath |         source $includeScriptPath | ||||||
|  |  | ||||||
|           # Create fake package.json to make the npm commands work properly |         # Create fake package.json to make the npm commands work properly | ||||||
|           cp ${src}/package.json . |         cp ${src}/package.json . | ||||||
|           chmod 644 package.json |         chmod 644 package.json | ||||||
|           ${lib.optionalString bypassCache '' |         ${lib.optionalString bypassCache '' | ||||||
|             if [ -f ${src}/package-lock.json ] |           if [ -f ${src}/package-lock.json ] | ||||||
|             then |           then | ||||||
|                 cp ${src}/package-lock.json . |               cp ${src}/package-lock.json . | ||||||
|                 chmod 644 package-lock.json |               chmod 644 package-lock.json | ||||||
|             fi |           fi | ||||||
|           ''} |         ''} | ||||||
|  |  | ||||||
|           # Go to the parent folder to make sure that all packages are pinpointed |         # Go to the parent folder to make sure that all packages are pinpointed | ||||||
|           cd .. |         cd .. | ||||||
|           ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} |         ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} | ||||||
|  |  | ||||||
|           ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} |         ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} | ||||||
|  |  | ||||||
|           # Expose the executables that were installed |         # Expose the executables that were installed | ||||||
|           cd .. |         cd .. | ||||||
|           ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} |         ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} | ||||||
|  |  | ||||||
|           mv ${packageName} lib |         mv ${packageName} lib | ||||||
|           ln -s $out/lib/node_modules/.bin $out/bin |         ln -s $out/lib/node_modules/.bin $out/bin | ||||||
|         ''; |       ''; | ||||||
|       } // extraArgs); |     } // extraArgs); | ||||||
|  |  | ||||||
|   # Builds a development shell |   # Builds a development shell | ||||||
|   buildNodeShell = |   buildNodeShell = | ||||||
| @@ -643,8 +647,8 @@ let | |||||||
|     , packageName |     , packageName | ||||||
|     , version ? null |     , version ? null | ||||||
|     , src |     , src | ||||||
|     , dependencies ? [] |     , dependencies ? [ ] | ||||||
|     , buildInputs ? [] |     , buildInputs ? [ ] | ||||||
|     , production ? true |     , production ? true | ||||||
|     , npmFlags ? "" |     , npmFlags ? "" | ||||||
|     , dontNpmInstall ? false |     , dontNpmInstall ? false | ||||||
| @@ -653,7 +657,8 @@ let | |||||||
|     , dontStrip ? true |     , dontStrip ? true | ||||||
|     , unpackPhase ? "true" |     , unpackPhase ? "true" | ||||||
|     , buildPhase ? "true" |     , buildPhase ? "true" | ||||||
|     , ... }@args: |     , ... | ||||||
|  |     }@args: | ||||||
|  |  | ||||||
|     let |     let | ||||||
|       nodeDependencies = buildNodeDependencies args; |       nodeDependencies = buildNodeDependencies args; | ||||||
| @@ -675,7 +680,7 @@ let | |||||||
|  |  | ||||||
|       # Provide the dependencies in a development shell through the NODE_PATH environment variable |       # Provide the dependencies in a development shell through the NODE_PATH environment variable | ||||||
|       inherit nodeDependencies; |       inherit nodeDependencies; | ||||||
|       shellHook = lib.optionalString (dependencies != []) '' |       shellHook = lib.optionalString (dependencies != [ ]) '' | ||||||
|         export NODE_PATH=${nodeDependencies}/lib/node_modules |         export NODE_PATH=${nodeDependencies}/lib/node_modules | ||||||
|         export PATH="${nodeDependencies}/bin:$PATH" |         export PATH="${nodeDependencies}/bin:$PATH" | ||||||
|       ''; |       ''; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # This file has been generated by node2nix 1.11.1. Do not edit! | # This file has been generated by node2nix 1.11.1. Do not edit! | ||||||
|  |  | ||||||
| {nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: | { nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? [ ] }: | ||||||
|  |  | ||||||
| let | let | ||||||
|   sources = { |   sources = { | ||||||
| @@ -9196,8 +9196,7 @@ let | |||||||
|       }) |       }) | ||||||
|     ]; |     ]; | ||||||
|     buildInputs = globalBuildInputs; |     buildInputs = globalBuildInputs; | ||||||
|     meta = { |     meta = { }; | ||||||
|     }; |  | ||||||
|     production = false; |     production = false; | ||||||
|     bypassCache = true; |     bypassCache = true; | ||||||
|     reconstructLock = false; |     reconstructLock = false; | ||||||
| @@ -9216,7 +9215,8 @@ in | |||||||
|         "*" |         "*" | ||||||
|         "!package.json" |         "!package.json" | ||||||
|         "!package-lock.json" |         "!package-lock.json" | ||||||
|       ] args.src; |       ] | ||||||
|  |         args.src; | ||||||
|       dontBuild = true; |       dontBuild = true; | ||||||
|       installPhase = "mkdir -p $out; cp -r ./* $out;"; |       installPhase = "mkdir -p $out; cp -r ./* $out;"; | ||||||
|     }; |     }; | ||||||
|   | |||||||
| @@ -9,14 +9,14 @@ | |||||||
|  |  | ||||||
| let | let | ||||||
|   pname = "cura5"; |   pname = "cura5"; | ||||||
|   version = "5.5.0"; |   version = "5.4.0"; | ||||||
|   name = "${pname}-${version}"; |   name = "${pname}-${version}"; | ||||||
|  |  | ||||||
|   cura5 = appimageTools.wrapType2 { |   cura5 = appimageTools.wrapType2 { | ||||||
|     inherit pname version; |     inherit pname version; | ||||||
|     src = fetchurl { |     src = fetchurl { | ||||||
|       url = "https://github.com/Ultimaker/Cura/releases/download/${version}/Ultimaker-Cura-${version}-linux-X64.AppImage"; |       url = "https://github.com/Ultimaker/Cura/releases/download/${version}/Ultimaker-Cura-${version}-linux-modern.AppImage"; | ||||||
|       hash = "sha256-EG5LMiDFUSXFbtRhd15egPkbp12kEp2TdUdLssSy7Jg="; |       hash = "sha256-QVv7Wkfo082PH6n6rpsB79st2xK2+Np9ivBg/PYZd74="; | ||||||
|     }; |     }; | ||||||
|     extraPkgs = _: [ ]; |     extraPkgs = _: [ ]; | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -1,25 +0,0 @@ | |||||||
| { lib |  | ||||||
| , stdenv |  | ||||||
| , python3 |  | ||||||
| }: |  | ||||||
| let |  | ||||||
|   python = python3.withPackages (py: [ py.requests ]); |  | ||||||
| in |  | ||||||
| stdenv.mkDerivation { |  | ||||||
|   name = "porkbun-ddns"; |  | ||||||
|  |  | ||||||
|   src = ./.; |  | ||||||
|   inherit python; |  | ||||||
|  |  | ||||||
|   installPhase = '' |  | ||||||
|     mkdir -p $out/bin |  | ||||||
|     install -Dm0755 $src/porkbun-ddns.py $out/bin/porkbun-ddns |  | ||||||
|     substituteAllInPlace $out/bin/porkbun-ddns |  | ||||||
|   ''; |  | ||||||
|  |  | ||||||
|   meta = { |  | ||||||
|     description = "Porkbun dynamic DNS script"; |  | ||||||
|     license = lib.licenses.gpl3; |  | ||||||
|     platforms = python.meta.platforms; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @@ -1,176 +0,0 @@ | |||||||
| #!@python@/bin/python |  | ||||||
|  |  | ||||||
| import argparse |  | ||||||
| import json |  | ||||||
| import os |  | ||||||
| import re |  | ||||||
| import requests |  | ||||||
| from dataclasses import dataclass, fields as datafields |  | ||||||
| from enum import Enum, unique |  | ||||||
| from typing import List, Optional |  | ||||||
|  |  | ||||||
| APIBASE = "https://porkbun.com/api/json/v3/dns" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def dataclass_from_dict(klass: object, d: dict): |  | ||||||
|     try: |  | ||||||
|         fieldtypes = {f.name: f.type for f in datafields(klass)} |  | ||||||
|         return klass(**{f: dataclass_from_dict(fieldtypes[f], d[f]) for f in d}) |  | ||||||
|     except: |  | ||||||
|         return d  # Not a dataclass field |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def remove_domain(domain: str, name: str): |  | ||||||
|     return re.sub(f"\\.?{domain}$", "", name) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @unique |  | ||||||
| class RecordType(Enum): |  | ||||||
|     a = "A" |  | ||||||
|     aaaa = "AAAA" |  | ||||||
|     cname = "CNAME" |  | ||||||
|     mx = "MX" |  | ||||||
|     srv = "SRV" |  | ||||||
|     txt = "TXT" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @dataclass |  | ||||||
| class Record: |  | ||||||
|     id: str |  | ||||||
|     name: str |  | ||||||
|     type: str |  | ||||||
|     content: str |  | ||||||
|     ttl: str |  | ||||||
|     prio: str = "" |  | ||||||
|     notes: str = "" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @dataclass |  | ||||||
| class Retrieval: |  | ||||||
|     status: str |  | ||||||
|     records: List[Record] |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ApiError(Exception): |  | ||||||
|     pass |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ArgumentError(Exception): |  | ||||||
|     pass |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class PorkbunClient: |  | ||||||
|     def __init__(self, apikey: str, secretapikey: str): |  | ||||||
|         self.apikey = apikey |  | ||||||
|         self.secretapikey = secretapikey |  | ||||||
|  |  | ||||||
|     def _make_payload(self, **kwargs): |  | ||||||
|         return json.dumps( |  | ||||||
|             {"apikey": self.apikey, "secretapikey": self.secretapikey, **kwargs} |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def edit_record( |  | ||||||
|         self, |  | ||||||
|         domain: str, |  | ||||||
|         record: Record, |  | ||||||
|         name: Optional[str] = None, |  | ||||||
|         type: Optional[RecordType] = None, |  | ||||||
|         content: Optional[str] = None, |  | ||||||
|         ttl: Optional[int] = None, |  | ||||||
|         priority: Optional[str] = None, |  | ||||||
|     ) -> bool: |  | ||||||
|         return self.edit( |  | ||||||
|             domain, |  | ||||||
|             record.id, |  | ||||||
|             name=name or record.name, |  | ||||||
|             type=type or RecordType(record.type), |  | ||||||
|             content=content or record.content, |  | ||||||
|             ttl=ttl or record.ttl, |  | ||||||
|             priority=priority or record.prio, |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def edit( |  | ||||||
|         self, |  | ||||||
|         domain: str, |  | ||||||
|         id: str, |  | ||||||
|         name: str, |  | ||||||
|         type: RecordType, |  | ||||||
|         content: str, |  | ||||||
|         ttl: int = 300, |  | ||||||
|         priority: Optional[str] = None, |  | ||||||
|     ) -> bool: |  | ||||||
|         # API returns FQN name rather than the actual prefix, so scrub it |  | ||||||
|         name = remove_domain(domain, name) |  | ||||||
|         payload = self._make_payload( |  | ||||||
|             name=name, type=type.value, content=content, ttl=str(ttl), prio=priority |  | ||||||
|         ) |  | ||||||
|         res = requests.post(f"{APIBASE}/edit/{domain}/{id}", data=payload) |  | ||||||
|         body = res.json() |  | ||||||
|         if body["status"] != "SUCCESS": |  | ||||||
|             raise ApiError(body["message"]) |  | ||||||
|         return True |  | ||||||
|  |  | ||||||
|     def delete(self, domain: str, id: str) -> bool: |  | ||||||
|         payload = self._make_payload() |  | ||||||
|         res = requests.post(f"{APIBASE}/delete/{domain}/{id}", data=payload) |  | ||||||
|         body = res.json() |  | ||||||
|         if body["status"] != "SUCCESS": |  | ||||||
|             raise ApiError(body["message"]) |  | ||||||
|         return True |  | ||||||
|  |  | ||||||
|     def retrieve(self, domain: str) -> List[Retrieval]: |  | ||||||
|         payload = self._make_payload() |  | ||||||
|         res = requests.post(f"{APIBASE}/retrieve/{domain}", data=payload) |  | ||||||
|         body = res.json() |  | ||||||
|         if body["status"] != "SUCCESS": |  | ||||||
|             raise ApiError(body["message"]) |  | ||||||
|         return [dataclass_from_dict(Record, d) for d in body["records"]] |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def current_ip() -> str: |  | ||||||
|     return requests.get("https://ifconfig.me").text |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def _load_key(key: Optional[str], keyfile: Optional[str]) -> str: |  | ||||||
|     if keyfile is not None: |  | ||||||
|         with open(keyfile) as f: |  | ||||||
|             return f.read().strip() |  | ||||||
|     if key is not None: |  | ||||||
|         return key |  | ||||||
|     raise ArgumentError("key or key file is required") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     parser = argparse.ArgumentParser(description="Wrapper around Porkbun DNS API") |  | ||||||
|     keyarg = parser.add_mutually_exclusive_group(required=True) |  | ||||||
|     keyarg.add_argument("-k", "--key", metavar="KEY", type=str, help="API key") |  | ||||||
|     keyarg.add_argument( |  | ||||||
|         "-K", "--key-file", metavar="FILE", type=str, help="API key file" |  | ||||||
|     ) |  | ||||||
|     secretarg = parser.add_mutually_exclusive_group(required=True) |  | ||||||
|     secretarg.add_argument( |  | ||||||
|         "-s", "--secret", metavar="SECRET", type=str, help="secret API key" |  | ||||||
|     ) |  | ||||||
|     secretarg.add_argument( |  | ||||||
|         "-S", "--secret-file", metavar="FILE", type=str, help="secret API key file" |  | ||||||
|     ) |  | ||||||
|     parser.add_argument("domains", type=str, nargs="+", help="domain(s) to update") |  | ||||||
|  |  | ||||||
|     args = parser.parse_args() |  | ||||||
|     try: |  | ||||||
|         apikey = _load_key(args.key, args.key_file) |  | ||||||
|         secretapikey = _load_key(args.secret, args.secret_file) |  | ||||||
|     except Exception as e: |  | ||||||
|         print("error: " + str(e)) |  | ||||||
|         parser.print_help() |  | ||||||
|         exit(1) |  | ||||||
|  |  | ||||||
|     current_ip = current_ip() |  | ||||||
|     client = PorkbunClient(apikey, secretapikey) |  | ||||||
|     for domain in args.domains: |  | ||||||
|         recs = client.retrieve(domain) |  | ||||||
|         arecs = [r for r in recs if r.type == RecordType.a.value] |  | ||||||
|         for arec in arecs: |  | ||||||
|             if arec.content != current_ip: |  | ||||||
|                 client.edit_record(domain, arec, content=current_ip) |  | ||||||
|                 print(f"Pointed '{arec.name}' to {current_ip}") |  | ||||||
| @@ -14,7 +14,7 @@ | |||||||
| , mp4Support ? false | , mp4Support ? false | ||||||
| , fdk-aac-encoder | , fdk-aac-encoder | ||||||
| , oggSupport ? false | , oggSupport ? false | ||||||
| , vorbis-tools | , vorbisTools | ||||||
| , opusSupport ? false | , opusSupport ? false | ||||||
| , opusTools | , opusTools | ||||||
| }: | }: | ||||||
| @@ -23,7 +23,7 @@ assert aacSupport -> faac.meta.available; | |||||||
| assert alacSupport -> libav.meta.available; | assert alacSupport -> libav.meta.available; | ||||||
| assert flacSupport -> flac.meta.available; | assert flacSupport -> flac.meta.available; | ||||||
| assert m4aSupport || mp4Support -> fdk-aac-encoder.meta.available; | assert m4aSupport || mp4Support -> fdk-aac-encoder.meta.available; | ||||||
| assert oggSupport -> vorbis-tools.meta.available; | assert oggSupport -> vorbisTools.meta.available; | ||||||
| assert opusSupport -> opusTools.meta.available; | assert opusSupport -> opusTools.meta.available; | ||||||
|  |  | ||||||
| python3Packages.buildPythonApplication rec { | python3Packages.buildPythonApplication rec { | ||||||
| @@ -51,7 +51,7 @@ python3Packages.buildPythonApplication rec { | |||||||
|     (if alacSupport then libav else null) |     (if alacSupport then libav else null) | ||||||
|     (if aacSupport then faac else null) |     (if aacSupport then faac else null) | ||||||
|     (if (m4aSupport || mp4Support) then fdk-aac-encoder else null) |     (if (m4aSupport || mp4Support) then fdk-aac-encoder else null) | ||||||
|     (if oggSupport then vorbis-tools else null) |     (if oggSupport then vorbisTools else null) | ||||||
|     (if opusSupport then opusTools else null) |     (if opusSupport then opusTools else null) | ||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,73 +0,0 @@ | |||||||
| { lib |  | ||||||
| , stdenvNoCC |  | ||||||
| , fetchFromGitHub |  | ||||||
| }: |  | ||||||
|  |  | ||||||
| let |  | ||||||
|   mkMonaspace = |  | ||||||
|     { pname |  | ||||||
|     , variants ? [ ] |  | ||||||
|     }: stdenvNoCC.mkDerivation rec { |  | ||||||
|       inherit pname; |  | ||||||
|       version = "1.000"; |  | ||||||
|  |  | ||||||
|       src = fetchFromGitHub { |  | ||||||
|         owner = "githubnext"; |  | ||||||
|         repo = "monaspace"; |  | ||||||
|         rev = "v${version}"; |  | ||||||
|         hash = "sha256-Zo56r0QoLwxwGQtcWP5cDlasx000G9BFeGINvvwEpQs="; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       _variants = map (builtins.replaceStrings [ " " ] [ "" ]) variants; |  | ||||||
|  |  | ||||||
|       installPhase = '' |  | ||||||
|         local out_font=$out/share/fonts/monaspace |  | ||||||
|       '' + (if variants == [ ] then '' |  | ||||||
|         install -m444 -Dt $out_font fonts/otf/*.otf |  | ||||||
|         install -m444 -Dt $out_font fonts/variable/*.ttf |  | ||||||
|       '' else '' |  | ||||||
|         for variant in $_variants; do |  | ||||||
|           install -m444 -Dt $out_font fonts/otf/"$variant"-*.otf |  | ||||||
|           install -m444 -Dt $out_font fonts/variable/"$variant"Var*.ttf |  | ||||||
|         done |  | ||||||
|       ''); |  | ||||||
|  |  | ||||||
|       meta = { |  | ||||||
|         description = "An innovative superfamily of fonts for code"; |  | ||||||
|         homepage = "https://monaspace.githubnext.com/"; |  | ||||||
|         longDescription = '' |  | ||||||
|           Since the earliest days of the teletype machine, code has been set in |  | ||||||
|           monospaced type — letters, on a grid. Monaspace is a new type system |  | ||||||
|           that advances the state of the art for the display of code on screen. |  | ||||||
|         ''; |  | ||||||
|         license = lib.licenses.ofl; |  | ||||||
|         platforms = lib.platforms.all; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   monaspace = mkMonaspace { |  | ||||||
|     pname = "monaspace"; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   monaspace-argon = mkMonaspace { |  | ||||||
|     pname = "monaspace-argon"; |  | ||||||
|     variants = [ "Monaspace Argon" ]; |  | ||||||
|   }; |  | ||||||
|   monaspace-krypton = mkMonaspace { |  | ||||||
|     pname = "monaspace-krypton"; |  | ||||||
|     variants = [ "Monaspace Krypton" ]; |  | ||||||
|   }; |  | ||||||
|   monaspace-neon = mkMonaspace { |  | ||||||
|     pname = "monaspace-neon"; |  | ||||||
|     variants = [ "Monaspace Neon" ]; |  | ||||||
|   }; |  | ||||||
|   monaspace-radon = mkMonaspace { |  | ||||||
|     pname = "monaspace-radon"; |  | ||||||
|     variants = [ "Monaspace Radon" ]; |  | ||||||
|   }; |  | ||||||
|   monaspace-xenon = mkMonaspace { |  | ||||||
|     pname = "monaspace-xenon"; |  | ||||||
|     variants = [ "Monaspace Xenon" ]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
							
								
								
									
										68
									
								
								pkgs/development/go-modules/qt/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								pkgs/development/go-modules/qt/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | |||||||
|  | { lib | ||||||
|  | , fetchFromGitHub | ||||||
|  | , buildGoModule | ||||||
|  | , makeWrapper | ||||||
|  |  | ||||||
|  | , go | ||||||
|  | , pkg-config | ||||||
|  | , qmake | ||||||
|  | , removeReferencesTo | ||||||
|  | }: | ||||||
|  |  | ||||||
|  | buildGoModule rec { | ||||||
|  |   pname = "go-qt"; | ||||||
|  |   version = "20200904.gc0c124a"; | ||||||
|  |  | ||||||
|  |   src = fetchFromGitHub { | ||||||
|  |     owner = "therecipe"; | ||||||
|  |     repo = "qt"; | ||||||
|  |     rev = "c0c124a5770d357908f16fa57e0aa0ec6ccd3f91"; | ||||||
|  |     sha256 = "197wdh2v0g5g2dpb1gcd5gp0g4wqzip34cawisvy6z7mygmsc8rd"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   # fails with `GOFLAGS=-vendor=mod -trimpath` | ||||||
|  |   allowGoReference = true; | ||||||
|  |   preFixup = '' | ||||||
|  |     find $out -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${go} '{}' + | ||||||
|  |   ''; | ||||||
|  |  | ||||||
|  |   vendorSha256 = "00wghn93xz240ddj47b8mkbx3cg7c0486igp6vv0x9r6ylhywsm6"; | ||||||
|  |   subPackages = [ "cmd/..." ]; | ||||||
|  |  | ||||||
|  |   nativeBuildInputs = [ makeWrapper ]; | ||||||
|  |  | ||||||
|  |   # Fixes inconsistent vendoring. | ||||||
|  |   postPatch = '' | ||||||
|  |     cat <<EOM >>go.mod | ||||||
|  |     require ( | ||||||
|  |       github.com/therecipe/env_darwin_amd64_513 v0.0.0-20190626001412-d8e92e8db4d0 | ||||||
|  |       github.com/therecipe/env_linux_amd64_513 v0.0.0-20190626000307-e137a3934da6 | ||||||
|  |       github.com/therecipe/env_windows_amd64_513 v0.0.0-20190626000028-79ec8bd06fb2 | ||||||
|  |       github.com/therecipe/env_windows_amd64_513/Tools v0.0.0-20190626000028-79ec8bd06fb2 | ||||||
|  |       github.com/therecipe/qt/internal/binding/files/docs/5.12.0 v0.0.0-20200904063919-c0c124a5770d | ||||||
|  |       github.com/therecipe/qt/internal/binding/files/docs/5.13.0 v0.0.0-20200904063919-c0c124a5770d | ||||||
|  |     ) | ||||||
|  |     EOM | ||||||
|  |   ''; | ||||||
|  |  | ||||||
|  |   doCheck = true; | ||||||
|  |   checkPhase = '' | ||||||
|  |     $GOPATH/bin/qtsetup test | ||||||
|  |   ''; | ||||||
|  |  | ||||||
|  |   postFixup = '' | ||||||
|  |     for bin in $out/bin/*; do | ||||||
|  |       wrapProgram $bin \ | ||||||
|  |         --set QT_PKG_CONFIG true \ | ||||||
|  |         --prefix PATH : ${pkg-config}/bin \ | ||||||
|  |         --prefix PATH : ${qmake}/bin | ||||||
|  |     done | ||||||
|  |   ''; | ||||||
|  |  | ||||||
|  |   meta = with lib; { | ||||||
|  |     homepage = "https://github.com/therecipe/qt"; | ||||||
|  |     description = "Qt bindings for Go"; | ||||||
|  |     license = licenses.lgpl3; | ||||||
|  |     broken = true; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										111
									
								
								pkgs/development/go-modules/qt/deps.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								pkgs/development/go-modules/qt/deps.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,111 @@ | |||||||
|  | # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) | ||||||
|  | [ | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/davecgh/go-spew"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/davecgh/go-spew"; | ||||||
|  |       rev = "v1.1.1"; | ||||||
|  |       sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/gopherjs/gopherjs"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/gopherjs/gopherjs"; | ||||||
|  |       rev = "bd77b112433e"; | ||||||
|  |       sha256 = "0bsj69jb0glfvqhqld4c78840iagd0iy2b92878i5w4sgp40k7i1"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/konsorten/go-windows-terminal-sequences"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/konsorten/go-windows-terminal-sequences"; | ||||||
|  |       rev = "v1.0.2"; | ||||||
|  |       sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/pmezard/go-difflib"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/pmezard/go-difflib"; | ||||||
|  |       rev = "v1.0.0"; | ||||||
|  |       sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/sirupsen/logrus"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/sirupsen/logrus"; | ||||||
|  |       rev = "v1.4.1"; | ||||||
|  |       sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/stretchr/objx"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/stretchr/objx"; | ||||||
|  |       rev = "v0.2.0"; | ||||||
|  |       sha256 = "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "github.com/stretchr/testify"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/stretchr/testify"; | ||||||
|  |       rev = "v1.3.0"; | ||||||
|  |       sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/crypto"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/golang/crypto"; | ||||||
|  |       rev = "df01cb2cc480549d72034218dd98bf97671450ac"; | ||||||
|  |       sha256 = "1fhz0rym06j0fds0wg8xf6i9mm37m6qgdv83qxfh3nh0mgzf19qs"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/net"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/golang/net"; | ||||||
|  |       rev = "afa5a82059c6356159f699d81beff22a81842231"; | ||||||
|  |       sha256 = "1zhcr1m7n550m0lqjqg1rl2qrnghkl3a25vcm6cgpiqvk89f8lba"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/sys"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/golang/sys"; | ||||||
|  |       rev = "e8e3143a4f4a00f1fafef0dd82ba78223281b01b"; | ||||||
|  |       sha256 = "02pdj4gr658r99kqwxy6v4lb8w2h0zaiqq1jyqrsxqiyapijhw87"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/text"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/golang/text"; | ||||||
|  |       rev = "f4905fbd45b6790792202848439271c74074bbfd"; | ||||||
|  |       sha256 = "184d6ap2g92jvx0532lymdqbnx9vi9ips4dq5lnqbby0caccc6r1"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |   { | ||||||
|  |     goPackagePath = "golang.org/x/tools"; | ||||||
|  |     fetch = { | ||||||
|  |       type = "git"; | ||||||
|  |       url = "https://github.com/golang/tools"; | ||||||
|  |       rev = "aa740d4807891cb493e9f727901baf334b9fabce"; | ||||||
|  |       sha256 = "0431y2xw39dss0ldxhbmm7ip4d2cr2w9km2a5psgwan6v481kz0a"; | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  | ] | ||||||
| @@ -1,6 +1,10 @@ | |||||||
| { pkgs }: | { pkgs }: | ||||||
|  |  | ||||||
| rec { | rec { | ||||||
|  |   goModules = pkgs.recurseIntoAttrs rec { | ||||||
|  |     qt = pkgs.libsForQt5.callPackage ../development/go-modules/qt { }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|   # A functional Jetbrains IDE-with-plugins package set. |   # A functional Jetbrains IDE-with-plugins package set. | ||||||
|   jetbrains = pkgs.dontRecurseIntoAttrs rec { |   jetbrains = pkgs.dontRecurseIntoAttrs rec { | ||||||
|     jetbrainsPluginsFor = variant: import ../top-level/jetbrains-plugins.nix { |     jetbrainsPluginsFor = variant: import ../top-level/jetbrains-plugins.nix { | ||||||
| @@ -21,22 +25,37 @@ rec { | |||||||
|     ideaUltimateWithPlugins = ideaUltimatePlugins.jetbrainsWithPlugins; |     ideaUltimateWithPlugins = ideaUltimatePlugins.jetbrainsWithPlugins; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   monaspace-fonts = pkgs.callPackage ../data/fonts/monaspace/default.nix { }; |  | ||||||
|   inherit (monaspace-fonts) |  | ||||||
|     monaspace |  | ||||||
|     monaspace-argon |  | ||||||
|     monaspace-krypton |  | ||||||
|     monaspace-neon |  | ||||||
|     monaspace-radon |  | ||||||
|     monaspace-xenon; |  | ||||||
|  |  | ||||||
|   mopidy-subidy = pkgs.callPackage ../applications/audio/mopidy/subidy.nix { |   mopidy-subidy = pkgs.callPackage ../applications/audio/mopidy/subidy.nix { | ||||||
|     python3Packages = pkgs.python3Packages // python3Packages; |     python3Packages = pkgs.python3Packages // python3Packages; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  |   picom-animations = pkgs.picom.overrideAttrs (_oldAttrs: { | ||||||
|  |     pname = "picom-animations"; | ||||||
|  |     src = pkgs.fetchFromGitHub { | ||||||
|  |       owner = "jonaburg"; | ||||||
|  |       repo = "picom"; | ||||||
|  |       rev = "d718c94"; | ||||||
|  |       sha256 = "165mc53ryyxn2ybkhikmk51ay3k18mvlsym3am3mgr8cpivmf2rm"; | ||||||
|  |     }; | ||||||
|  |   }); | ||||||
|  |  | ||||||
|  |   polybar = pkgs.polybar.overrideAttrs (oldAttrs: { | ||||||
|  |     # Enables an extra button in formatting, indirectly allowing the use of | ||||||
|  |     # the mouse forward and backward buttons. | ||||||
|  |     patches = (oldAttrs.patches or [ ]) ++ [ ../applications/misc/polybar/9button.patch ]; | ||||||
|  |   }); | ||||||
|  |  | ||||||
|   python3Packages = pkgs.recurseIntoAttrs { |   python3Packages = pkgs.recurseIntoAttrs { | ||||||
|     py-sonic = pkgs.python3.pkgs.callPackage ../development/python-modules/py-sonic { }; |     py-sonic = pkgs.python3.pkgs.callPackage ../development/python-modules/py-sonic { }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  |   # The one in Nixpkgs still extracts the pre-built Debian package instead | ||||||
|  |   # of building from source. | ||||||
|  |   protonmailBridgePackages = pkgs.libsForQt5.callPackage ../applications/networking/protonmail-bridge { | ||||||
|  |     inherit goModules; | ||||||
|  |   }; | ||||||
|  |   protonmail-bridge = protonmailBridgePackages.protonmail-bridge; | ||||||
|  |   protonmail-bridge-headless = protonmailBridgePackages.protonmail-bridge-headless; | ||||||
|  |  | ||||||
|   radeon-profile-daemon = pkgs.libsForQt5.callPackage ../tools/misc/radeon-profile-daemon { }; |   radeon-profile-daemon = pkgs.libsForQt5.callPackage ../tools/misc/radeon-profile-daemon { }; | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user