mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
Improve Terraform (.tf) / HCL (.hcl) syntax highlighting (#3392)
* Add Terraform grammar, and change .tf and .hcl files from using Ruby to Terraform sublime syntax * Expand Terraform sample to demonstrate more language features * Revert terraform sample change * Add terraform sample - Dokku AWS deploy * Updated to latest Terraform * Update terraform string interpolation * Update terraform to latest
This commit is contained in:
committed by
Colin Seymour
parent
f7fe1fee66
commit
b66fcb2529
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -818,3 +818,6 @@
|
|||||||
[submodule "vendor/grammars/language-regexp"]
|
[submodule "vendor/grammars/language-regexp"]
|
||||||
path = vendor/grammars/language-regexp
|
path = vendor/grammars/language-regexp
|
||||||
url = https://github.com/Alhadis/language-regexp
|
url = https://github.com/Alhadis/language-regexp
|
||||||
|
[submodule "vendor/grammars/Terraform.tmLanguage"]
|
||||||
|
path = vendor/grammars/Terraform.tmLanguage
|
||||||
|
url = https://github.com/alexlouden/Terraform.tmLanguage
|
||||||
@@ -130,6 +130,8 @@ vendor/grammars/TLA:
|
|||||||
- source.tla
|
- source.tla
|
||||||
vendor/grammars/TXL:
|
vendor/grammars/TXL:
|
||||||
- source.txl
|
- source.txl
|
||||||
|
vendor/grammars/Terraform.tmLanguage:
|
||||||
|
- source.terraform
|
||||||
vendor/grammars/Textmate-Gosu-Bundle:
|
vendor/grammars/Textmate-Gosu-Bundle:
|
||||||
- source.gosu.2
|
- source.gosu.2
|
||||||
vendor/grammars/UrWeb-Language-Definition:
|
vendor/grammars/UrWeb-Language-Definition:
|
||||||
|
|||||||
@@ -1588,7 +1588,7 @@ HCL:
|
|||||||
ace_mode: ruby
|
ace_mode: ruby
|
||||||
codemirror_mode: ruby
|
codemirror_mode: ruby
|
||||||
codemirror_mime_type: text/x-ruby
|
codemirror_mime_type: text/x-ruby
|
||||||
tm_scope: source.ruby
|
tm_scope: source.terraform
|
||||||
language_id: 144
|
language_id: 144
|
||||||
HLSL:
|
HLSL:
|
||||||
type: programming
|
type: programming
|
||||||
|
|||||||
135
samples/HCL/main.tf
Normal file
135
samples/HCL/main.tf
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
resource "aws_security_group" "elb_sec_group" {
|
||||||
|
description = "Allow traffic from the internet to ELB port 80"
|
||||||
|
vpc_id = "${var.vpc_id}"
|
||||||
|
|
||||||
|
ingress {
|
||||||
|
from_port = 80
|
||||||
|
to_port = 80
|
||||||
|
protocol = "tcp"
|
||||||
|
cidr_blocks = ["${split(",", var.allowed_cidr_blocks)}"]
|
||||||
|
}
|
||||||
|
|
||||||
|
egress {
|
||||||
|
from_port = 0
|
||||||
|
to_port = 0
|
||||||
|
protocol = "-1"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_security_group" "dokku_allow_ssh_from_internal" {
|
||||||
|
description = "Allow git access over ssh from the private subnet"
|
||||||
|
vpc_id = "${var.vpc_id}"
|
||||||
|
|
||||||
|
ingress {
|
||||||
|
from_port = 22
|
||||||
|
to_port = 22
|
||||||
|
protocol = "tcp"
|
||||||
|
cidr_blocks = ["${var.private_subnet_cidr}"]
|
||||||
|
}
|
||||||
|
|
||||||
|
egress {
|
||||||
|
from_port = 0
|
||||||
|
to_port = 0
|
||||||
|
protocol = "-1"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_security_group" "allow_from_elb_to_instance" {
|
||||||
|
description = "Allow traffic from the ELB to the private instance"
|
||||||
|
vpc_id = "${var.vpc_id}"
|
||||||
|
|
||||||
|
ingress {
|
||||||
|
security_groups = ["${aws_security_group.elb_sec_group.id}"]
|
||||||
|
from_port = 80
|
||||||
|
to_port = 80
|
||||||
|
protocol = "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
egress {
|
||||||
|
from_port = 0
|
||||||
|
to_port = 0
|
||||||
|
protocol = "-1"
|
||||||
|
cidr_blocks = ["0.0.0.0/0"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_instance" "dokku" {
|
||||||
|
ami = "ami-47a23a30"
|
||||||
|
instance_type = "${var.instance_type}"
|
||||||
|
associate_public_ip_address = false
|
||||||
|
key_name = "${var.key_name}"
|
||||||
|
subnet_id = "${var.private_subnet_id}"
|
||||||
|
vpc_security_group_ids = [
|
||||||
|
"${var.bastion_sec_group_id}",
|
||||||
|
"${aws_security_group.allow_from_elb_to_instance.id}",
|
||||||
|
"${aws_security_group.dokku_allow_ssh_from_internal.id}"
|
||||||
|
]
|
||||||
|
tags {
|
||||||
|
Name = "${var.name}"
|
||||||
|
}
|
||||||
|
connection {
|
||||||
|
user = "ubuntu"
|
||||||
|
private_key = "${var.private_key}"
|
||||||
|
bastion_host = "${var.bastion_host}"
|
||||||
|
bastion_port = "${var.bastion_port}"
|
||||||
|
bastion_user = "${var.bastion_user}"
|
||||||
|
bastion_private_key = "${var.bastion_private_key}"
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
source = "${path.module}/../scripts/install-dokku.sh"
|
||||||
|
destination = "/home/ubuntu/install-dokku.sh"
|
||||||
|
}
|
||||||
|
provisioner "remote-exec" {
|
||||||
|
inline = [
|
||||||
|
"chmod +x /home/ubuntu/install-dokku.sh",
|
||||||
|
"HOSTNAME=${var.hostname} /home/ubuntu/install-dokku.sh"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_elb" "elb_dokku" {
|
||||||
|
name = "elb-dokku-${var.name}"
|
||||||
|
subnets = ["${var.public_subnet_id}"]
|
||||||
|
security_groups = ["${aws_security_group.elb_sec_group.id}"]
|
||||||
|
|
||||||
|
listener {
|
||||||
|
instance_port = 80
|
||||||
|
instance_protocol = "http"
|
||||||
|
lb_port = 80
|
||||||
|
lb_protocol = "http"
|
||||||
|
}
|
||||||
|
|
||||||
|
health_check {
|
||||||
|
healthy_threshold = 2
|
||||||
|
unhealthy_threshold = 2
|
||||||
|
timeout = 3
|
||||||
|
target = "HTTP:80/"
|
||||||
|
interval = 30
|
||||||
|
}
|
||||||
|
|
||||||
|
instances = ["${aws_instance.dokku.id}"]
|
||||||
|
cross_zone_load_balancing = false
|
||||||
|
idle_timeout = 400
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "elb-dokku-${var.name}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route53_record" "dokku-deploy" {
|
||||||
|
zone_id = "${var.zone_id}"
|
||||||
|
name = "deploy.${var.hostname}"
|
||||||
|
type = "A"
|
||||||
|
ttl = "300"
|
||||||
|
records = ["${aws_instance.dokku.private_ip}"]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route53_record" "dokku-wildcard" {
|
||||||
|
zone_id = "${var.zone_id}"
|
||||||
|
name = "*.${var.hostname}"
|
||||||
|
type = "CNAME"
|
||||||
|
ttl = "300"
|
||||||
|
records = ["${aws_elb.elb_dokku.dns_name}"]
|
||||||
|
}
|
||||||
2
vendor/README.md
vendored
2
vendor/README.md
vendored
@@ -142,7 +142,7 @@ This is a list of grammars that Linguist selects to provide syntax highlighting
|
|||||||
- **Harbour:** [hernad/atom-language-harbour](https://github.com/hernad/atom-language-harbour)
|
- **Harbour:** [hernad/atom-language-harbour](https://github.com/hernad/atom-language-harbour)
|
||||||
- **Haskell:** [atom-haskell/language-haskell](https://github.com/atom-haskell/language-haskell)
|
- **Haskell:** [atom-haskell/language-haskell](https://github.com/atom-haskell/language-haskell)
|
||||||
- **Haxe:** [clemos/haxe-sublime-bundle](https://github.com/clemos/haxe-sublime-bundle)
|
- **Haxe:** [clemos/haxe-sublime-bundle](https://github.com/clemos/haxe-sublime-bundle)
|
||||||
- **HCL:** [aroben/ruby.tmbundle](https://github.com/aroben/ruby.tmbundle)
|
- **HCL:** [alexlouden/Terraform.tmLanguage](https://github.com/alexlouden/Terraform.tmLanguage)
|
||||||
- **HTML:** [textmate/html.tmbundle](https://github.com/textmate/html.tmbundle)
|
- **HTML:** [textmate/html.tmbundle](https://github.com/textmate/html.tmbundle)
|
||||||
- **HTML+Django:** [textmate/python-django.tmbundle](https://github.com/textmate/python-django.tmbundle)
|
- **HTML+Django:** [textmate/python-django.tmbundle](https://github.com/textmate/python-django.tmbundle)
|
||||||
- **HTML+ECR:** [atom-crystal/language-crystal](https://github.com/atom-crystal/language-crystal)
|
- **HTML+ECR:** [atom-crystal/language-crystal](https://github.com/atom-crystal/language-crystal)
|
||||||
|
|||||||
1
vendor/grammars/Terraform.tmLanguage
vendored
Submodule
1
vendor/grammars/Terraform.tmLanguage
vendored
Submodule
Submodule vendor/grammars/Terraform.tmLanguage added at 93b11ff8ab
26
vendor/licenses/grammar/Terraform.tmLanguage.txt
vendored
Normal file
26
vendor/licenses/grammar/Terraform.tmLanguage.txt
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
type: grammar
|
||||||
|
name: Terraform.tmLanguage
|
||||||
|
license: mit
|
||||||
|
---
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2016 Alex Louden
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
Reference in New Issue
Block a user