aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/admin/azure-cli/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/admin/azure-cli/default.nix257
1 files changed, 257 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/admin/azure-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
new file mode 100644
index 000000000000..81389f39dd38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
@@ -0,0 +1,257 @@
+{ stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
+
+let
+ version = "2.15.1";
+ src = fetchFromGitHub {
+ owner = "Azure";
+ repo = "azure-cli";
+ rev = "azure-cli-${version}";
+ sha256 = "05vwaafb6yzvrhig0gjkb4803yj6qr00gqh41rws9520899f2m9d";
+ };
+
+ # put packages that needs to be overriden in the py package scope
+ py = import ./python-packages.nix {
+ inherit stdenv lib src version;
+ python = python3;
+ };
+in
+py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
+ pname = "azure-cli";
+ inherit version src;
+
+ sourceRoot = "source/src/azure-cli";
+
+ prePatch = ''
+ substituteInPlace setup.py \
+ --replace "javaproperties==0.5.1" "javaproperties" \
+ --replace "pytz==2019.1" "pytz" \
+ --replace "antlr4-python3-runtime~=4.7.2" "antlr4-python3-runtime~=4.7" \
+ --replace "mock~=4.0" "mock"
+
+ # remove namespace hacks
+ # remove urllib3 because it was added as 'urllib3[secure]', which doesn't get handled well
+ sed -i setup.py \
+ -e '/azure-cli-command_modules-nspkg/d' \
+ -e '/azure-cli-nspkg/d' \
+ -e '/urllib3/d'
+ '';
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ propagatedBuildInputs = with py.pkgs; [
+ azure-appconfiguration
+ azure-batch
+ azure-cli-core
+ azure-cli-telemetry
+ azure-cosmos
+ azure-datalake-store
+ azure-functions-devops-build
+ azure-graphrbac
+ azure-keyvault
+ azure-keyvault-administration
+ azure-loganalytics
+ azure-mgmt-advisor
+ azure-mgmt-apimanagement
+ azure-mgmt-applicationinsights
+ azure-mgmt-appconfiguration
+ azure-mgmt-authorization
+ azure-mgmt-batch
+ azure-mgmt-batchai
+ azure-mgmt-billing
+ azure-mgmt-botservice
+ azure-mgmt-cdn
+ azure-mgmt-cognitiveservices
+ azure-mgmt-compute
+ azure-mgmt-consumption
+ azure-mgmt-containerinstance
+ azure-mgmt-containerregistry
+ azure-mgmt-containerservice
+ azure-mgmt-cosmosdb
+ azure-mgmt-datalake-analytics
+ azure-mgmt-datalake-store
+ azure-mgmt-datamigration
+ azure-mgmt-deploymentmanager
+ azure-mgmt-devtestlabs
+ azure-mgmt-dns
+ azure-mgmt-eventgrid
+ azure-mgmt-eventhub
+ azure-mgmt-hdinsight
+ azure-mgmt-imagebuilder
+ azure-mgmt-iotcentral
+ azure-mgmt-iothub
+ azure-mgmt-iothubprovisioningservices
+ azure-mgmt-keyvault
+ azure-mgmt-kusto
+ azure-mgmt-loganalytics
+ azure-mgmt-managedservices
+ azure-mgmt-managementgroups
+ azure-mgmt-maps
+ azure-mgmt-marketplaceordering
+ azure-mgmt-media
+ azure-mgmt-monitor
+ azure-mgmt-msi
+ azure-mgmt-network
+ azure-mgmt-netapp
+ azure-mgmt-policyinsights
+ azure-mgmt-privatedns
+ azure-mgmt-rdbms
+ azure-mgmt-recoveryservices
+ azure-mgmt-recoveryservicesbackup
+ azure-mgmt-redhatopenshift
+ azure-mgmt-redis
+ azure-mgmt-relay
+ azure-mgmt-reservations
+ azure-mgmt-resource
+ azure-mgmt-search
+ azure-mgmt-security
+ azure-mgmt-servicebus
+ azure-mgmt-servicefabric
+ azure-mgmt-signalr
+ azure-mgmt-sql
+ azure-mgmt-sqlvirtualmachine
+ azure-mgmt-storage
+ azure-mgmt-synapse
+ azure-mgmt-trafficmanager
+ azure-mgmt-web
+ azure-multiapi-storage
+ azure-storage-blob
+ azure-synapse-accesscontrol
+ azure-synapse-artifacts
+ azure-synapse-spark
+ colorama
+ cryptography
+ Fabric
+ jsmin
+ knack
+ mock
+ paramiko
+ pydocumentdb
+ pygments
+ pyopenssl
+ pytz
+ pyyaml
+ psutil
+ requests
+ scp
+ six
+ sshtunnel
+ urllib3
+ vsts-cd-manager
+ websocket_client
+ xmltodict
+ javaproperties
+ jsondiff
+ # urllib3[secure]
+ ipaddress
+ # shell completion
+ argcomplete
+ ];
+
+ # TODO: make shell completion actually work
+ # uses argcomplete, so completion needs PYTHONPATH to work
+ postInstall = ''
+ installShellCompletion --bash --name az.bash az.completion.sh
+ installShellCompletion --zsh --name _az az.completion.sh
+
+ # remove garbage
+ rm $out/bin/az.bat
+ rm $out/bin/az.completion.sh
+ '';
+
+ # wrap the executable so that the python packages are available
+ # it's just a shebang script which calls `python -m azure.cli "$@"`
+ postFixup = ''
+ wrapProgram $out/bin/az \
+ --set PYTHONPATH $PYTHONPATH
+ '';
+
+ # almost the entire test suite requires an azure account setup and networking
+ # ensure that the azure namespaces are setup correctly and that azure.cli can be accessed
+ checkPhase = ''
+ HOME=$TMPDIR $out/bin/az --help > /dev/null
+ '';
+
+ # ensure these namespaces are able to be accessed
+ pythonImportsCheck = [
+ "azure.batch"
+ "azure.cli.core"
+ "azure.cli.telemetry"
+ "azure.cosmos"
+ "azure.datalake.store"
+ "azure_functions_devops_build"
+ "azure.graphrbac"
+ "azure.keyvault"
+ "azure.loganalytics"
+ "azure.mgmt.advisor"
+ "azure.mgmt.apimanagement"
+ "azure.mgmt.applicationinsights"
+ "azure.mgmt.appconfiguration"
+ "azure.mgmt.authorization"
+ "azure.mgmt.batch"
+ "azure.mgmt.batchai"
+ "azure.mgmt.billing"
+ "azure.mgmt.botservice"
+ "azure.mgmt.cdn"
+ "azure.mgmt.cognitiveservices"
+ "azure.mgmt.compute"
+ "azure.mgmt.consumption"
+ "azure.mgmt.containerinstance"
+ "azure.mgmt.containerregistry"
+ "azure.mgmt.containerservice"
+ "azure.mgmt.cosmosdb"
+ "azure.mgmt.datalake.analytics"
+ "azure.mgmt.datalake.store"
+ "azure.mgmt.datamigration"
+ "azure.mgmt.deploymentmanager"
+ "azure.mgmt.devtestlabs"
+ "azure.mgmt.dns"
+ "azure.mgmt.eventgrid"
+ "azure.mgmt.eventhub"
+ "azure.mgmt.hdinsight"
+ "azure.mgmt.imagebuilder"
+ "azure.mgmt.iotcentral"
+ "azure.mgmt.iothub"
+ "azure.mgmt.iothubprovisioningservices"
+ "azure.mgmt.keyvault"
+ "azure.mgmt.kusto"
+ "azure.mgmt.loganalytics"
+ "azure.mgmt.managedservices"
+ "azure.mgmt.managementgroups"
+ "azure.mgmt.maps"
+ "azure.mgmt.marketplaceordering"
+ "azure.mgmt.media"
+ "azure.mgmt.monitor"
+ "azure.mgmt.msi"
+ "azure.mgmt.network"
+ "azure.mgmt.netapp"
+ "azure.mgmt.policyinsights"
+ "azure.mgmt.privatedns"
+ "azure.mgmt.rdbms"
+ "azure.mgmt.recoveryservices"
+ "azure.mgmt.recoveryservicesbackup"
+ "azure.mgmt.redis"
+ "azure.mgmt.relay"
+ "azure.mgmt.reservations"
+ "azure.mgmt.resource"
+ "azure.mgmt.search"
+ "azure.mgmt.security"
+ "azure.mgmt.servicebus"
+ "azure.mgmt.servicefabric"
+ "azure.mgmt.signalr"
+ "azure.mgmt.sql"
+ "azure.mgmt.sqlvirtualmachine"
+ "azure.mgmt.storage"
+ "azure.mgmt.trafficmanager"
+ "azure.mgmt.web"
+ "azure.storage.blob"
+ "azure.storage.common"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/Azure/azure-cli";
+ description = "Next generation multi-platform command line experience for Azure";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jonringer ];
+ };
+})
+