[Nix-dev] Fetching variable and unpredictable URL download link

Berno Strik dutchman55 at gmx.com
Sun Mar 1 19:16:40 CET 2015


Op Sun, 1 Mar 2015 12:21:04 -0300
Anderson Torres <torres.anderson.85 at gmail.com> schreef:

> Hello, Nixers!
> 
> How can I "fetchurl" a variable url?
> 
> When I download a dockapp from Windowmaker site, like
> 
> "http://windowmaker.org/dockapps/?download=wmSMPmon-3.1.tar.gz",
> 
> it in fact downloads something like "wmSMPmon-${a long string of
> chars, like a checksum}.tar.gz". And the long string is unpredictable.
> 
> And when I run nix-prefetch-url
> "http://windowmaker.org/dockapps/?download=wmSMPmon-3.1.tar.gz" more
> than once, it just outputs different hashes:
> 
> > nix-prefetch-url
> > http://windowmaker.org/dockapps/\?download\=wmSMPmon-3.1.tar.gz
>   % Total    % Received % Xferd  Average Speed   Time    Time
> Time  Current Dload  Upload   Total   Spent    Left  Speed
>   0     0    0     0    0     0      0      0 --:--:--  0:00:01
> --:--:--     0 100 24113    0 24113    0     0   3809      0
> --:--:--  0:00:06 --:--:--  5139 path is
> ‘/nix/store/lqri8zgmwz3mbf3q07kp62zl81bc6fpq-?download=wmSMPmon-3.1.tar.gz’
> 104bcfj4j0vlnr4v1fzahgj9amccn1aq7rjcpy1jyqnq6lbrmc3g
> 
> > nix-prefetch-url
> > http://windowmaker.org/dockapps/\?download\=wmSMPmon-3.1.tar.gz
>   % Total    % Received % Xferd  Average Speed   Time    Time
> Time  Current Dload  Upload   Total   Spent    Left  Speed
>   0     0    0     0    0     0      0      0 --:--:-- --:--:--
> --:--:--     0 100 24110    0 24110    0     0   3193      0
> --:--:--  0:00:07 --:--:--  3985 path is
> ‘/nix/store/f2b7rksjfh6ajddjhx09xb0jzc04jxg9-?download=wmSMPmon-3.1.tar.gz’
> 1s01whvf51jrwdmrk3bdgysaa2rzmh56c9p0kv3ydxijaagvqi2x
> 
> How can I download it?

Use the following code:

  src = fetchgit {
     url = git://repo.or.cz/dockapps.git;
     rev = "38c74350b02f35824554ce0c4f0f251d71762040";
     sha256 = "0g9cwhlqg065fbhav4g4n16a4cqkk9jykl3y0zwbn5whhacfqyhl";
  };

Explanation:

When you download a dockapp from Windowmaker site you are redirected to
a git repo site where you get a snapshot out of it. The id of the
snapshot is the long hexadecimal string you are getting.
The above code does a checkout of the whole dockapp-git directory.
The only thing you have left to do is point to the directory where your
actual dockapp is:

postUnpack = "sourceRoot=\${sourceRoot}/dockapp-dir";

> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev



More information about the nix-dev mailing list