fork download
  1. import re
  2.  
  3. def process(p, provider, version):
  4. return re.sub(r'(provider\s+"{}"\s+{{[\s\S]*?version\s+=\s+"~>\s*)[^"]*'.format(provider),
  5. r'\g<1>{}'.format(version),
  6. p)
  7.  
  8. p = """
  9. provider "aws" {
  10. region = var.region
  11. version = "~> 2.59"
  12.  
  13. assume_role {
  14. role_arn = "tes_role"
  15. }
  16. }
  17. """
  18.  
  19. r = process(p, "aws", "2.61")
  20. print(r)
Success #stdin #stdout 0.02s 9768KB
stdin
Standard input is empty
stdout
provider "aws" {
  region  = var.region
  version = "~> 2.61"

  assume_role {
    role_arn = "tes_role"
  }
}