nixpkgs-github-update: ensure attribute_exists is true/false
This commit is contained in:
parent
95dfa8b8cf
commit
b5b15d76f1
@ -2,7 +2,7 @@ defmodule NixpkgsGitHubUpdate.Nix do
|
|||||||
def executable do
|
def executable do
|
||||||
nix = System.find_executable("nix")
|
nix = System.find_executable("nix")
|
||||||
|
|
||||||
if nil === nix do
|
if nix == nil do
|
||||||
raise RuntimeError, message: "missing executable for 'nix'"
|
raise RuntimeError, message: "missing executable for 'nix'"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -22,19 +22,29 @@ defmodule NixpkgsGitHubUpdate.Nix do
|
|||||||
|> handle_eval
|
|> handle_eval
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_eval({eval_result, 0}) do
|
defp handle_eval({eval_result, 0}) do
|
||||||
case eval_result do
|
case eval_result do
|
||||||
"" -> eval_result
|
"" -> eval_result
|
||||||
_ -> Poison.Parser.parse!(eval_result, %{})
|
_ -> Poison.Parser.parse!(eval_result, %{})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_eval({eval_result, _}) do
|
defp handle_eval({eval_result, _}) do
|
||||||
IO.puts("Error running nix eval: #{eval_result}")
|
raise RuntimeError, message: "Error running nix eval: #{eval_result}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def attribute_exists?(attribute) do
|
def attribute_exists?(attribute) do
|
||||||
eval!("(with import <nixpkgs> {}; lib.isDerivation #{attribute})")
|
attr_exist_expression = """
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
let
|
||||||
|
attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." "#{attribute}") null pkgs;
|
||||||
|
in
|
||||||
|
if attrSet == null then false
|
||||||
|
else true
|
||||||
|
"""
|
||||||
|
|
||||||
|
eval!("(#{attr_exist_expression})")
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_source_version(attribute, version) do
|
def update_source_version(attribute, version) do
|
||||||
@ -45,9 +55,9 @@ defmodule NixpkgsGitHubUpdate.Nix do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def get_url_attr(attribute) do
|
def get_url_attr(attribute) do
|
||||||
case eval!("nixpkgs.#{attribute}.src.fetchSubmodules") do
|
case attribute_exists?("#{attribute}.src.fetchSubmodules") do
|
||||||
true -> "url"
|
true -> "url"
|
||||||
_ -> "urls"
|
false -> "urls"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user