fetchs3: init simple S3 downloader

This commit is contained in:
Dan Peebles 2017-04-25 22:01:18 -04:00
parent 5aa936d0ee
commit 9e764af72f
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,29 @@
{ stdenv, runCommand, awscli }:
{ s3url
, sha256
, region ? "us-east-1"
, credentials ? null # Default to looking at local EC2 metadata service
, executable ? false
, recursiveHash ? false
, postFetch ? null
}:
let
credentialAttrs = stdenv.lib.optionalAttrs (credentials != null) {
AWS_ACCESS_KEY_ID = credentials.access_key_id;
AWS_SECRET_ACCESS_KEY = credentials.secret_access_key;
AWS_SESSION_TOKEN = credentials.session_token ? null;
};
in runCommand "foo" ({
buildInputs = [ awscli ];
outputHashAlgo = "sha256";
outputHash = sha256;
outputHashMode = if recursiveHash then "recursive" else "flat";
} // credentialAttrs) (if postFetch != null then ''
downloadedFile="$(mktemp)"
aws s3 cp ${s3url} $downloadedFile
${postFetch}
'' else ''
aws s3 cp ${s3url} $out
'')

View File

@ -153,6 +153,8 @@ with pkgs;
fetchpatch = callPackage ../build-support/fetchpatch { };
fetchs3 = callPackage ../build-support/fetchs3 { };
fetchsvn = callPackage ../build-support/fetchsvn {
sshSupport = true;
};