1#!/usr/bin/env nix-shell 2#!nix-shell -i bash -p curl jq nixpkgs-fmt nix-update xmlstarlet 3 4set -eu -o pipefail 5 6source_file=pkgs/development/python-modules/mypy-boto3/default.nix 7 8#nix-update python312Packages.botocore-stubs --commit --build 9 10packages=( 11 mypy-boto3-accessanalyzer 12 mypy-boto3-account 13 mypy-boto3-acm 14 mypy-boto3-acm-pca 15 mypy-boto3-amp 16 mypy-boto3-amplify 17 mypy-boto3-amplifybackend 18 mypy-boto3-amplifyuibuilder 19 mypy-boto3-apigateway 20 mypy-boto3-apigatewaymanagementapi 21 mypy-boto3-apigatewayv2 22 mypy-boto3-appconfig 23 mypy-boto3-appconfigdata 24 mypy-boto3-appfabric 25 mypy-boto3-appflow 26 mypy-boto3-appintegrations 27 mypy-boto3-application-autoscaling 28 mypy-boto3-application-insights 29 mypy-boto3-applicationcostprofiler 30 mypy-boto3-appmesh 31 mypy-boto3-apprunner 32 mypy-boto3-appstream 33 mypy-boto3-appsync 34 mypy-boto3-arc-zonal-shift 35 mypy-boto3-athena 36 mypy-boto3-auditmanager 37 mypy-boto3-autoscaling 38 mypy-boto3-autoscaling-plans 39 mypy-boto3-backup 40 mypy-boto3-backup-gateway 41 mypy-boto3-batch 42 mypy-boto3-billingconductor 43 mypy-boto3-braket 44 mypy-boto3-budgets 45 mypy-boto3-ce 46 mypy-boto3-chime 47 mypy-boto3-chime-sdk-identity 48 mypy-boto3-chime-sdk-media-pipelines 49 mypy-boto3-chime-sdk-meetings 50 mypy-boto3-chime-sdk-messaging 51 mypy-boto3-chime-sdk-voice 52 mypy-boto3-cleanrooms 53 mypy-boto3-cloud9 54 mypy-boto3-cloudcontrol 55 mypy-boto3-clouddirectory 56 mypy-boto3-cloudformation 57 mypy-boto3-cloudfront 58 mypy-boto3-cloudhsm 59 mypy-boto3-cloudhsmv2 60 mypy-boto3-cloudsearch 61 mypy-boto3-cloudsearchdomain 62 mypy-boto3-cloudtrail 63 mypy-boto3-cloudtrail-data 64 mypy-boto3-cloudwatch 65 mypy-boto3-codeartifact 66 mypy-boto3-codebuild 67 mypy-boto3-codecatalyst 68 mypy-boto3-codecommit 69 mypy-boto3-codedeploy 70 mypy-boto3-codeguru-reviewer 71 mypy-boto3-codeguru-security 72 mypy-boto3-codeguruprofiler 73 mypy-boto3-codepipeline 74 mypy-boto3-codestar 75 mypy-boto3-codestar-connections 76 mypy-boto3-codestar-notifications 77 mypy-boto3-cognito-identity 78 mypy-boto3-cognito-idp 79 mypy-boto3-cognito-sync 80 mypy-boto3-comprehend 81 mypy-boto3-comprehendmedical 82 mypy-boto3-compute-optimizer 83 mypy-boto3-config 84 mypy-boto3-connect 85 mypy-boto3-connect-contact-lens 86 mypy-boto3-connectcampaigns 87 mypy-boto3-connectcases 88 mypy-boto3-connectparticipant 89 mypy-boto3-controltower 90 mypy-boto3-cur 91 mypy-boto3-customer-profiles 92 mypy-boto3-databrew 93 mypy-boto3-dataexchange 94 mypy-boto3-datapipeline 95 mypy-boto3-datasync 96 mypy-boto3-dax 97 mypy-boto3-detective 98 mypy-boto3-devicefarm 99 mypy-boto3-devops-guru 100 mypy-boto3-directconnect 101 mypy-boto3-discovery 102 mypy-boto3-dlm 103 mypy-boto3-dms 104 mypy-boto3-docdb 105 mypy-boto3-docdb-elastic 106 mypy-boto3-drs 107 mypy-boto3-ds 108 mypy-boto3-dynamodb 109 mypy-boto3-dynamodbstreams 110 mypy-boto3-ebs 111 mypy-boto3-ec2 112 mypy-boto3-ec2-instance-connect 113 mypy-boto3-ecr 114 mypy-boto3-ecr-public 115 mypy-boto3-ecs 116 mypy-boto3-efs 117 mypy-boto3-eks 118 mypy-boto3-elastic-inference 119 mypy-boto3-elasticache 120 mypy-boto3-elasticbeanstalk 121 mypy-boto3-elastictranscoder 122 mypy-boto3-elb 123 mypy-boto3-elbv2 124 mypy-boto3-emr 125 mypy-boto3-emr-containers 126 mypy-boto3-emr-serverless 127 mypy-boto3-entityresolution 128 mypy-boto3-es 129 mypy-boto3-events 130 mypy-boto3-evidently 131 mypy-boto3-finspace 132 mypy-boto3-finspace-data 133 mypy-boto3-firehose 134 mypy-boto3-fis 135 mypy-boto3-fms 136 mypy-boto3-forecast 137 mypy-boto3-forecastquery 138 mypy-boto3-frauddetector 139 mypy-boto3-fsx 140 mypy-boto3-gamelift 141 mypy-boto3-glacier 142 mypy-boto3-globalaccelerator 143 mypy-boto3-glue 144 mypy-boto3-grafana 145 mypy-boto3-greengrass 146 mypy-boto3-greengrassv2 147 mypy-boto3-groundstation 148 mypy-boto3-guardduty 149 mypy-boto3-health 150 mypy-boto3-healthlake 151 mypy-boto3-iam 152 mypy-boto3-identitystore 153 mypy-boto3-imagebuilder 154 mypy-boto3-importexport 155 mypy-boto3-inspector 156 mypy-boto3-inspector2 157 mypy-boto3-internetmonitor 158 mypy-boto3-iot 159 mypy-boto3-iot-data 160 mypy-boto3-iot-jobs-data 161 mypy-boto3-iot1click-devices 162 mypy-boto3-iot1click-projects 163 mypy-boto3-iotanalytics 164 mypy-boto3-iotdeviceadvisor 165 mypy-boto3-iotevents 166 mypy-boto3-iotevents-data 167 mypy-boto3-iotfleethub 168 mypy-boto3-iotfleetwise 169 mypy-boto3-iotsecuretunneling 170 mypy-boto3-iotsitewise 171 mypy-boto3-iotthingsgraph 172 mypy-boto3-iottwinmaker 173 mypy-boto3-iotwireless 174 mypy-boto3-ivs 175 mypy-boto3-ivs-realtime 176 mypy-boto3-ivschat 177 mypy-boto3-kafka 178 mypy-boto3-kafkaconnect 179 mypy-boto3-kendra 180 mypy-boto3-kendra-ranking 181 mypy-boto3-keyspaces 182 mypy-boto3-kinesis 183 mypy-boto3-kinesis-video-archived-media 184 mypy-boto3-kinesis-video-media 185 mypy-boto3-kinesis-video-signaling 186 mypy-boto3-kinesis-video-webrtc-storage 187 mypy-boto3-kinesisanalytics 188 mypy-boto3-kinesisanalyticsv2 189 mypy-boto3-kinesisvideo 190 mypy-boto3-kms 191 mypy-boto3-lakeformation 192 mypy-boto3-lambda 193 mypy-boto3-lex-models 194 mypy-boto3-lex-runtime 195 mypy-boto3-lexv2-models 196 mypy-boto3-lexv2-runtime 197 mypy-boto3-license-manager 198 mypy-boto3-license-manager-linux-subscriptions 199 mypy-boto3-license-manager-user-subscriptions 200 mypy-boto3-lightsail 201 mypy-boto3-location 202 mypy-boto3-logs 203 mypy-boto3-lookoutequipment 204 mypy-boto3-lookoutmetrics 205 mypy-boto3-lookoutvision 206 mypy-boto3-m2 207 mypy-boto3-machinelearning 208 mypy-boto3-macie2 209 mypy-boto3-managedblockchain 210 mypy-boto3-managedblockchain-query 211 mypy-boto3-marketplace-catalog 212 mypy-boto3-marketplace-entitlement 213 mypy-boto3-marketplacecommerceanalytics 214 mypy-boto3-mediaconnect 215 mypy-boto3-mediaconvert 216 mypy-boto3-medialive 217 mypy-boto3-mediapackage 218 mypy-boto3-mediapackage-vod 219 mypy-boto3-mediapackagev2 220 mypy-boto3-mediastore 221 mypy-boto3-mediastore-data 222 mypy-boto3-mediatailor 223 mypy-boto3-medical-imaging 224 mypy-boto3-memorydb 225 mypy-boto3-meteringmarketplace 226 mypy-boto3-mgh 227 mypy-boto3-mgn 228 mypy-boto3-migration-hub-refactor-spaces 229 mypy-boto3-migrationhub-config 230 mypy-boto3-migrationhuborchestrator 231 mypy-boto3-migrationhubstrategy 232 # mypy-boto3-mobile 233 mypy-boto3-mq 234 mypy-boto3-mturk 235 mypy-boto3-mwaa 236 mypy-boto3-neptune 237 mypy-boto3-neptunedata 238 mypy-boto3-network-firewall 239 mypy-boto3-networkmanager 240 mypy-boto3-nimble 241 mypy-boto3-oam 242 mypy-boto3-omics 243 mypy-boto3-opensearch 244 mypy-boto3-opensearchserverless 245 mypy-boto3-opsworks 246 mypy-boto3-opsworkscm 247 mypy-boto3-organizations 248 mypy-boto3-osis 249 mypy-boto3-outposts 250 mypy-boto3-panorama 251 mypy-boto3-payment-cryptography 252 mypy-boto3-payment-cryptography-data 253 mypy-boto3-pca-connector-ad 254 mypy-boto3-personalize 255 mypy-boto3-personalize-events 256 mypy-boto3-personalize-runtime 257 mypy-boto3-pi 258 mypy-boto3-pinpoint 259 mypy-boto3-pinpoint-email 260 mypy-boto3-pinpoint-sms-voice 261 mypy-boto3-pinpoint-sms-voice-v2 262 mypy-boto3-pipes 263 mypy-boto3-polly 264 mypy-boto3-pricing 265 mypy-boto3-privatenetworks 266 mypy-boto3-proton 267 mypy-boto3-qldb 268 mypy-boto3-qldb-session 269 mypy-boto3-quicksight 270 mypy-boto3-ram 271 mypy-boto3-rbin 272 mypy-boto3-rds 273 mypy-boto3-rds-data 274 mypy-boto3-redshift 275 mypy-boto3-redshift-data 276 mypy-boto3-redshift-serverless 277 mypy-boto3-rekognition 278 mypy-boto3-resiliencehub 279 mypy-boto3-resource-explorer-2 280 mypy-boto3-resource-groups 281 mypy-boto3-resourcegroupstaggingapi 282 mypy-boto3-robomaker 283 mypy-boto3-rolesanywhere 284 mypy-boto3-route53 285 mypy-boto3-route53-recovery-cluster 286 mypy-boto3-route53-recovery-control-config 287 mypy-boto3-route53-recovery-readiness 288 mypy-boto3-route53domains 289 mypy-boto3-route53resolver 290 mypy-boto3-rum 291 mypy-boto3-s3 292 mypy-boto3-s3control 293 mypy-boto3-s3outposts 294 mypy-boto3-sagemaker 295 mypy-boto3-sagemaker-a2i-runtime 296 mypy-boto3-sagemaker-edge 297 mypy-boto3-sagemaker-featurestore-runtime 298 mypy-boto3-sagemaker-geospatial 299 mypy-boto3-sagemaker-metrics 300 mypy-boto3-sagemaker-runtime 301 mypy-boto3-savingsplans 302 mypy-boto3-scheduler 303 mypy-boto3-schemas 304 mypy-boto3-sdb 305 mypy-boto3-secretsmanager 306 mypy-boto3-securityhub 307 mypy-boto3-securitylake 308 mypy-boto3-serverlessrepo 309 mypy-boto3-service-quotas 310 mypy-boto3-servicecatalog 311 mypy-boto3-servicecatalog-appregistry 312 mypy-boto3-servicediscovery 313 mypy-boto3-ses 314 mypy-boto3-sesv2 315 mypy-boto3-shield 316 mypy-boto3-signer 317 mypy-boto3-simspaceweaver 318 mypy-boto3-sms 319 mypy-boto3-sms-voice 320 mypy-boto3-snow-device-management 321 mypy-boto3-snowball 322 mypy-boto3-sns 323 mypy-boto3-sqs 324 mypy-boto3-ssm 325 mypy-boto3-ssm-contacts 326 mypy-boto3-ssm-incidents 327 mypy-boto3-ssm-sap 328 mypy-boto3-sso 329 mypy-boto3-sso-admin 330 mypy-boto3-sso-oidc 331 mypy-boto3-stepfunctions 332 mypy-boto3-storagegateway 333 mypy-boto3-sts 334 mypy-boto3-support 335 mypy-boto3-support-app 336 mypy-boto3-swf 337 mypy-boto3-synthetics 338 mypy-boto3-textract 339 mypy-boto3-timestream-query 340 mypy-boto3-timestream-write 341 mypy-boto3-tnb 342 mypy-boto3-transcribe 343 mypy-boto3-transfer 344 mypy-boto3-translate 345 mypy-boto3-verifiedpermissions 346 mypy-boto3-voice-id 347 mypy-boto3-vpc-lattice 348 mypy-boto3-waf 349 mypy-boto3-waf-regional 350 mypy-boto3-wafv2 351 mypy-boto3-wellarchitected 352 mypy-boto3-wisdom 353 mypy-boto3-workdocs 354 mypy-boto3-worklink 355 mypy-boto3-workmail 356 mypy-boto3-workmailmessageflow 357 mypy-boto3-workspaces 358 mypy-boto3-workspaces-web 359 mypy-boto3-xray) 360 361for package in "${packages[@]}"; do 362 package_short_name="${package#mypy-boto3-}" 363 old_version=$(awk -v pkg="\"$package_short_name\"" -F'"' '$0 ~ pkg {printf $4}' ${source_file}) 364 version=$(curl -s https://pypi.org/pypi/${package}/json | jq -r '.info.version') 365 366 echo "Updating ${package} from ${old_version} to ${version}" 367 368 if [ "${version}" != "${old_version}" ]; then 369 url="https://pypi.io/packages/source/m/${package//-/_}/${package//-/_}-${version}.tar.gz" 370 hash=$(nix-prefetch-url --type sha256 $url) 371 sri_hash="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $hash)" 372 373 awk -i inplace -v pkg="\"$package_short_name\"" -v new_version="$version" -v new_sha256="$sri_hash" ' 374 # Match the line containing the package name 375 $0 ~ pkg && $0 ~ /buildMypyBoto3Package/ { 376 # Update the version 377 sub(/"[^"]+"/, "\"" new_version "\"", $3); 378 print; 379 # Update the next line with the new sha256 380 getline; 381 sub(/"[^"]+"/, "\"" new_sha256 "\""); 382 } 383 { print } 384 ' ${source_file} 385 386 nixfmt ${source_file} 387 388 git commit ${source_file} -m "python312Packages.${package}: ${old_version} -> ${version}" 389 fi 390 391done