depot/third_party/nixpkgs/pkgs/development/python-modules/mypy-boto3/update.sh

392 lines
10 KiB
Bash
Raw Normal View History

#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nixpkgs-fmt nix-update xmlstarlet
set -eu -o pipefail
source_file=pkgs/development/python-modules/mypy-boto3/default.nix
#nix-update python312Packages.botocore-stubs --commit --build
packages=(
mypy-boto3-accessanalyzer
mypy-boto3-account
mypy-boto3-acm
mypy-boto3-acm-pca
mypy-boto3-amp
mypy-boto3-amplify
mypy-boto3-amplifybackend
mypy-boto3-amplifyuibuilder
mypy-boto3-apigateway
mypy-boto3-apigatewaymanagementapi
mypy-boto3-apigatewayv2
mypy-boto3-appconfig
mypy-boto3-appconfigdata
mypy-boto3-appfabric
mypy-boto3-appflow
mypy-boto3-appintegrations
mypy-boto3-application-autoscaling
mypy-boto3-application-insights
mypy-boto3-applicationcostprofiler
mypy-boto3-appmesh
mypy-boto3-apprunner
mypy-boto3-appstream
mypy-boto3-appsync
mypy-boto3-arc-zonal-shift
mypy-boto3-athena
mypy-boto3-auditmanager
mypy-boto3-autoscaling
mypy-boto3-autoscaling-plans
mypy-boto3-backup
mypy-boto3-backup-gateway
mypy-boto3-batch
mypy-boto3-billingconductor
mypy-boto3-braket
mypy-boto3-budgets
mypy-boto3-ce
mypy-boto3-chime
mypy-boto3-chime-sdk-identity
mypy-boto3-chime-sdk-media-pipelines
mypy-boto3-chime-sdk-meetings
mypy-boto3-chime-sdk-messaging
mypy-boto3-chime-sdk-voice
mypy-boto3-cleanrooms
mypy-boto3-cloud9
mypy-boto3-cloudcontrol
mypy-boto3-clouddirectory
mypy-boto3-cloudformation
mypy-boto3-cloudfront
mypy-boto3-cloudhsm
mypy-boto3-cloudhsmv2
mypy-boto3-cloudsearch
mypy-boto3-cloudsearchdomain
mypy-boto3-cloudtrail
mypy-boto3-cloudtrail-data
mypy-boto3-cloudwatch
mypy-boto3-codeartifact
mypy-boto3-codebuild
mypy-boto3-codecatalyst
mypy-boto3-codecommit
mypy-boto3-codedeploy
mypy-boto3-codeguru-reviewer
mypy-boto3-codeguru-security
mypy-boto3-codeguruprofiler
mypy-boto3-codepipeline
mypy-boto3-codestar
mypy-boto3-codestar-connections
mypy-boto3-codestar-notifications
mypy-boto3-cognito-identity
mypy-boto3-cognito-idp
mypy-boto3-cognito-sync
mypy-boto3-comprehend
mypy-boto3-comprehendmedical
mypy-boto3-compute-optimizer
mypy-boto3-config
mypy-boto3-connect
mypy-boto3-connect-contact-lens
mypy-boto3-connectcampaigns
mypy-boto3-connectcases
mypy-boto3-connectparticipant
mypy-boto3-controltower
mypy-boto3-cur
mypy-boto3-customer-profiles
mypy-boto3-databrew
mypy-boto3-dataexchange
mypy-boto3-datapipeline
mypy-boto3-datasync
mypy-boto3-dax
mypy-boto3-detective
mypy-boto3-devicefarm
mypy-boto3-devops-guru
mypy-boto3-directconnect
mypy-boto3-discovery
mypy-boto3-dlm
mypy-boto3-dms
mypy-boto3-docdb
mypy-boto3-docdb-elastic
mypy-boto3-drs
mypy-boto3-ds
mypy-boto3-dynamodb
mypy-boto3-dynamodbstreams
mypy-boto3-ebs
mypy-boto3-ec2
mypy-boto3-ec2-instance-connect
mypy-boto3-ecr
mypy-boto3-ecr-public
mypy-boto3-ecs
mypy-boto3-efs
mypy-boto3-eks
mypy-boto3-elastic-inference
mypy-boto3-elasticache
mypy-boto3-elasticbeanstalk
mypy-boto3-elastictranscoder
mypy-boto3-elb
mypy-boto3-elbv2
mypy-boto3-emr
mypy-boto3-emr-containers
mypy-boto3-emr-serverless
mypy-boto3-entityresolution
mypy-boto3-es
mypy-boto3-events
mypy-boto3-evidently
mypy-boto3-finspace
mypy-boto3-finspace-data
mypy-boto3-firehose
mypy-boto3-fis
mypy-boto3-fms
mypy-boto3-forecast
mypy-boto3-forecastquery
mypy-boto3-frauddetector
mypy-boto3-fsx
mypy-boto3-gamelift
mypy-boto3-glacier
mypy-boto3-globalaccelerator
mypy-boto3-glue
mypy-boto3-grafana
mypy-boto3-greengrass
mypy-boto3-greengrassv2
mypy-boto3-groundstation
mypy-boto3-guardduty
mypy-boto3-health
mypy-boto3-healthlake
mypy-boto3-iam
mypy-boto3-identitystore
mypy-boto3-imagebuilder
mypy-boto3-importexport
mypy-boto3-inspector
mypy-boto3-inspector2
mypy-boto3-internetmonitor
mypy-boto3-iot
mypy-boto3-iot-data
mypy-boto3-iot-jobs-data
mypy-boto3-iot1click-devices
mypy-boto3-iot1click-projects
mypy-boto3-iotanalytics
mypy-boto3-iotdeviceadvisor
mypy-boto3-iotevents
mypy-boto3-iotevents-data
mypy-boto3-iotfleethub
mypy-boto3-iotfleetwise
mypy-boto3-iotsecuretunneling
mypy-boto3-iotsitewise
mypy-boto3-iotthingsgraph
mypy-boto3-iottwinmaker
mypy-boto3-iotwireless
mypy-boto3-ivs
mypy-boto3-ivs-realtime
mypy-boto3-ivschat
mypy-boto3-kafka
mypy-boto3-kafkaconnect
mypy-boto3-kendra
mypy-boto3-kendra-ranking
mypy-boto3-keyspaces
mypy-boto3-kinesis
mypy-boto3-kinesis-video-archived-media
mypy-boto3-kinesis-video-media
mypy-boto3-kinesis-video-signaling
mypy-boto3-kinesis-video-webrtc-storage
mypy-boto3-kinesisanalytics
mypy-boto3-kinesisanalyticsv2
mypy-boto3-kinesisvideo
mypy-boto3-kms
mypy-boto3-lakeformation
mypy-boto3-lambda
mypy-boto3-lex-models
mypy-boto3-lex-runtime
mypy-boto3-lexv2-models
mypy-boto3-lexv2-runtime
mypy-boto3-license-manager
mypy-boto3-license-manager-linux-subscriptions
mypy-boto3-license-manager-user-subscriptions
mypy-boto3-lightsail
mypy-boto3-location
mypy-boto3-logs
mypy-boto3-lookoutequipment
mypy-boto3-lookoutmetrics
mypy-boto3-lookoutvision
mypy-boto3-m2
mypy-boto3-machinelearning
mypy-boto3-macie2
mypy-boto3-managedblockchain
mypy-boto3-managedblockchain-query
mypy-boto3-marketplace-catalog
mypy-boto3-marketplace-entitlement
mypy-boto3-marketplacecommerceanalytics
mypy-boto3-mediaconnect
mypy-boto3-mediaconvert
mypy-boto3-medialive
mypy-boto3-mediapackage
mypy-boto3-mediapackage-vod
mypy-boto3-mediapackagev2
mypy-boto3-mediastore
mypy-boto3-mediastore-data
mypy-boto3-mediatailor
mypy-boto3-medical-imaging
mypy-boto3-memorydb
mypy-boto3-meteringmarketplace
mypy-boto3-mgh
mypy-boto3-mgn
mypy-boto3-migration-hub-refactor-spaces
mypy-boto3-migrationhub-config
mypy-boto3-migrationhuborchestrator
mypy-boto3-migrationhubstrategy
mypy-boto3-mobile
mypy-boto3-mq
mypy-boto3-mturk
mypy-boto3-mwaa
mypy-boto3-neptune
mypy-boto3-neptunedata
mypy-boto3-network-firewall
mypy-boto3-networkmanager
mypy-boto3-nimble
mypy-boto3-oam
mypy-boto3-omics
mypy-boto3-opensearch
mypy-boto3-opensearchserverless
mypy-boto3-opsworks
mypy-boto3-opsworkscm
mypy-boto3-organizations
mypy-boto3-osis
mypy-boto3-outposts
mypy-boto3-panorama
mypy-boto3-payment-cryptography
mypy-boto3-payment-cryptography-data
mypy-boto3-pca-connector-ad
mypy-boto3-personalize
mypy-boto3-personalize-events
mypy-boto3-personalize-runtime
mypy-boto3-pi
mypy-boto3-pinpoint
mypy-boto3-pinpoint-email
mypy-boto3-pinpoint-sms-voice
mypy-boto3-pinpoint-sms-voice-v2
mypy-boto3-pipes
mypy-boto3-polly
mypy-boto3-pricing
mypy-boto3-privatenetworks
mypy-boto3-proton
mypy-boto3-qldb
mypy-boto3-qldb-session
mypy-boto3-quicksight
mypy-boto3-ram
mypy-boto3-rbin
mypy-boto3-rds
mypy-boto3-rds-data
mypy-boto3-redshift
mypy-boto3-redshift-data
mypy-boto3-redshift-serverless
mypy-boto3-rekognition
mypy-boto3-resiliencehub
mypy-boto3-resource-explorer-2
mypy-boto3-resource-groups
mypy-boto3-resourcegroupstaggingapi
mypy-boto3-robomaker
mypy-boto3-rolesanywhere
mypy-boto3-route53
mypy-boto3-route53-recovery-cluster
mypy-boto3-route53-recovery-control-config
mypy-boto3-route53-recovery-readiness
mypy-boto3-route53domains
mypy-boto3-route53resolver
mypy-boto3-rum
mypy-boto3-s3
mypy-boto3-s3control
mypy-boto3-s3outposts
mypy-boto3-sagemaker
mypy-boto3-sagemaker-a2i-runtime
mypy-boto3-sagemaker-edge
mypy-boto3-sagemaker-featurestore-runtime
mypy-boto3-sagemaker-geospatial
mypy-boto3-sagemaker-metrics
mypy-boto3-sagemaker-runtime
mypy-boto3-savingsplans
mypy-boto3-scheduler
mypy-boto3-schemas
mypy-boto3-sdb
mypy-boto3-secretsmanager
mypy-boto3-securityhub
mypy-boto3-securitylake
mypy-boto3-serverlessrepo
mypy-boto3-service-quotas
mypy-boto3-servicecatalog
mypy-boto3-servicecatalog-appregistry
mypy-boto3-servicediscovery
mypy-boto3-ses
mypy-boto3-sesv2
mypy-boto3-shield
mypy-boto3-signer
mypy-boto3-simspaceweaver
mypy-boto3-sms
mypy-boto3-sms-voice
mypy-boto3-snow-device-management
mypy-boto3-snowball
mypy-boto3-sns
mypy-boto3-sqs
mypy-boto3-ssm
mypy-boto3-ssm-contacts
mypy-boto3-ssm-incidents
mypy-boto3-ssm-sap
mypy-boto3-sso
mypy-boto3-sso-admin
mypy-boto3-sso-oidc
mypy-boto3-stepfunctions
mypy-boto3-storagegateway
mypy-boto3-sts
mypy-boto3-support
mypy-boto3-support-app
mypy-boto3-swf
mypy-boto3-synthetics
mypy-boto3-textract
mypy-boto3-timestream-query
mypy-boto3-timestream-write
mypy-boto3-tnb
mypy-boto3-transcribe
mypy-boto3-transfer
mypy-boto3-translate
mypy-boto3-verifiedpermissions
mypy-boto3-voice-id
mypy-boto3-vpc-lattice
mypy-boto3-waf
mypy-boto3-waf-regional
mypy-boto3-wafv2
mypy-boto3-wellarchitected
mypy-boto3-wisdom
mypy-boto3-workdocs
mypy-boto3-worklink
mypy-boto3-workmail
mypy-boto3-workmailmessageflow
mypy-boto3-workspaces
mypy-boto3-workspaces-web
mypy-boto3-xray)
for package in "${packages[@]}"; do
package_short_name="${package#mypy-boto3-}"
old_version=$(awk -v pkg="\"$package_short_name\"" -F'"' '$0 ~ pkg {printf $4}' ${source_file})
version=$(curl -s https://pypi.org/pypi/${package}/json | jq -r '.info.version')
echo "Updating ${package} from ${old_version} to ${version}"
if [ "${version}" != "${old_version}" ]; then
url="https://pypi.io/packages/source/m/${package//-/_}/${package//-/_}-${version}.tar.gz"
hash=$(nix-prefetch-url --type sha256 $url)
sri_hash="$(nix hash to-sri --type sha256 $hash)"
awk -i inplace -v pkg="\"$package_short_name\"" -v new_version="$version" -v new_sha256="$sri_hash" '
# Match the line containing the package name
$0 ~ pkg && $0 ~ /buildMypyBoto3Package/ {
# Update the version
sub(/"[^"]+"/, "\"" new_version "\"", $3);
print;
# Update the next line with the new sha256
getline;
sub(/"[^"]+"/, "\"" new_sha256 "\"");
}
{ print }
' ${source_file}
nixfmt ${source_file}
git commit ${source_file} -m "python312Packages.${package}: ${old_version} -> ${version}"
fi
done