aboutsummaryrefslogblamecommitdiff
path: root/shell.nix
blob: da6b3e07a16dc6df65a7ebaf48a547164795c910 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                                  








                             

                                    
    










































                                                                                            






                                                                                                     


                      




                                 
                                                    
              
     









                          
            
              
     



                      

    
{
  system ? builtins.currentSystem,
  rust ? true,
  integration ? true,
  release ? true,
}:

with import ./nix/common.nix;

let
  pkgs = import pkgsSrc {
    inherit system;
    overlays = [ cargo2nixOverlay ];
  };
  kaniko = (import ./nix/kaniko.nix) pkgs;

in

pkgs.mkShell {
  shellHook = ''
function to_s3 {
  aws \
      --endpoint-url https://garage.deuxfleurs.fr \
      --region garage \
    s3 cp \
      ./result/bin/garage \
      s3://garagehq.deuxfleurs.fr/_releases/''${DRONE_TAG:-$DRONE_COMMIT}/''${TARGET}/garage
}

function to_docker {
  executor  \
    --force \
    --customPlatform="''${DOCKER_PLATFORM}" \
    --destination "''${CONTAINER_NAME}:''${CONTAINER_TAG}" \
    --context dir://`pwd` \
    --verbosity=debug
}

function refresh_index {
  aws \
      --endpoint-url https://garage.deuxfleurs.fr \
      --region garage \
    s3 ls \
      --recursive \
      s3://garagehq.deuxfleurs.fr/_releases/ \
  > aws-list.txt

  nix-build nix/build_index.nix

  aws \
      --endpoint-url https://garage.deuxfleurs.fr \
      --region garage \
    s3 cp \
      --content-type "text/html" \
      result \
      s3://garagehq.deuxfleurs.fr/_releases.html
}

function refresh_toolchain {
  nix copy \
    --to 's3://nix?endpoint=garage.deuxfleurs.fr&region=garage&secret-key=/etc/nix/signing-key.sec' \
    $(nix-store -qR \
      $(nix-build --quiet --no-build-output --no-out-link nix/toolchain.nix))
}
  '';

  nativeBuildInputs = 
   (if rust then [
     pkgs.rustPlatform.rust.rustc
     pkgs.rustPlatform.rust.cargo
     pkgs.clippy
     pkgs.rustfmt
     /* cargo2nix.packages.x86_64-linux.cargo2nix */
    ] else [])
   ++
   (if integration then [ 
     pkgs.s3cmd
     pkgs.awscli2
     pkgs.minio-client
     pkgs.rclone
     pkgs.socat
     pkgs.psmisc
     pkgs.which
     pkgs.openssl
     pkgs.curl
     pkgs.jq
    ] else [])
   ++
   (if release then [ 
     pkgs.awscli2
     kaniko 
    ] else [])
   ;
}