Skip to content

Commit

Permalink
Feature/generation (italiaremote#1)
Browse files Browse the repository at this point in the history
* Add data.json

* Add template and code

* Add gitignore
  • Loading branch information
alessandromr authored Feb 12, 2022
1 parent 4b2b3be commit 1299507
Show file tree
Hide file tree
Showing 3 changed files with 376 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.idea/
.vscode/
310 changes: 310 additions & 0 deletions src/data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,310 @@
{
"cloud_software": [
{
"name": "Claranet Italia",
"career_page_url": "https://claranetitalia.recruitee.com/l/it",
"url": "https://www.claranet.it/",
"type": "Consulting",
"tags": [
"AWS"
]
},
{
"name": "Flowing",
"career_page_url": "https://www.flowing.it/job-opportunity/",
"url": "https://flowing.it",
"type": "Consulting",
"tags": [
"AWS",
"PHP",
"JS"
]
},
{
"name": "Madisoft",
"career_page_url": "https://labs.madisoft.it/",
"url": "https://labs.madisoft.it",
"type": "Product",
"tags": [
"AWS",
"PHP",
"React"
]
},
{
"name": "Prima",
"career_page_url": "https://it.prima.jobs/?lang=it-it",
"url": "https://www.prima.it/",
"type": "Product",
"tags": [
"AWS"
]
},
{
"name": "Docplanner",
"career_page_url": "https://www.docplanner.com/career",
"url": "https://www.docplanner.com",
"type": "Product",
"tags": [
"AWS",
"PHP"
]
},
{
"name": "Sysdig",
"career_page_url": "https://sysdig.com/jobs/",
"url": "https://sysdig.com/",
"type": "Product",
"tags": [
"Go",
"K8S",
"AWS",
"GCP"
]
},
{
"name": "Immobiliare.it",
"career_page_url": "https://www.immobiliare.it/info/lavora-con-noi/",
"url": "https://www.immobiliare.it/",
"type": "Product",
"tags": [
"PHP",
"Openstack"
]
},
{
"name": "lastminute.com",
"career_page_url": "https://careers.lastminute.com/",
"url": "https://www.lastminute.com/",
"type": "Product",
"tags": [
"AWS",
"Kubernetes",
"Go",
"Python"
]
},
{
"name": "EDB",
"career_page_url": "https://www.enterprisedb.com/careers",
"url": "https://www.enterprisedb.com/",
"type": "Product",
"tags": [
"Azure",
"C",
"Kubernetes",
"PostgreSQL"
]
},
{
"name": "Docebo",
"career_page_url": "https://www.docebo.com/company/careers/",
"url": "https://www.docebo.com/",
"type": "Product",
"tags": [
"AWS",
"Terraform",
"JS",
"PHP"
]
},
{
"name": "ShippyPro",
"career_page_url": "https://www.shippypro.com/en/work-with-us/",
"url": "https://www.shippypro.com/",
"type": "Product",
"tags": [
"PHP",
"Terraform"
]
},
{
"name": "Datadog",
"career_page_url": "https://www.datadoghq.com/careers/",
"url": "https://www.datadoghq.com/",
"type": "Product",
"tags": [
"Go",
"Kubernetes"
]
},
{
"name": "Aruba S.p.A.",
"career_page_url": "https://www.aruba.it/en/home.aspx",
"url": "https://www.aruba.it/en/home.aspx",
"type": "Product",
"tags": [
"OpenShift",
"Serverless",
"Istio"
]
},
{
"name": "ProntoPro",
"career_page_url": "https://jobs.jobvite.com/prontopro/jobs",
"url": "https://www.prontopro.it/",
"type": "Product",
"tags": [
"PHP",
"Go",
"AWS",
"Terraform",
"Kubernetes"
]
},
{
"name": "Canonical",
"career_page_url": "https://canonical.com/careers",
"url": "https://canonical.com/",
"type": "Product",
"tags": [
"Python",
"Go",
"OpenStack",
"Kubernetes"
]
},
{
"name": "GitLab",
"career_page_url": "https://about.gitlab.com/jobs/",
"url": "https://about.gitlab.com/",
"type": "Product",
"tags": [
"Go",
"Kubernetes",
"Python",
"Ruby on Rails"
]
},
{
"name": "Facile.it",
"career_page_url": "https://inrecruiting.intervieweb.it/facileit/it/career#vacancies",
"url": "https://www.facile.it/",
"type": "Product",
"tags": [
"PHP"
]
},
{
"name": "MailUp",
"career_page_url": "https://www.growens.io/en/work-with-us/",
"url": "https://www.mailup.com/",
"type": "Product",
"tags": [
"Linux",
"Go",
"AWS",
"IaC",
"JS"
]
},
{
"name": "Mattermost",
"career_page_url": "https://mattermost.com/careers/",
"url": "https://mattermost.com/",
"type": "Product",
"tags": [
"Go",
"Terraform",
"AWS",
"Kubernetes",
"CircleCI"
]
},
{
"name": "CrowdStrike",
"career_page_url": "https://www.crowdstrike.com/careers/",
"url": "https://www.crowdstrike.com/",
"type": "Product",
"tags": [
"Go",
"AWS",
"IoT",
"Security"
]
},
{
"name": "TUI Musement",
"career_page_url": "https://careers.tuigroup.com/jobs/",
"url": "https://www.musement.com/us/",
"type": "Product",
"tags": [
"AWS",
"PHP"
]
},
{
"name": "elastic",
"career_page_url": "https://www.elastic.co/about/careers/",
"url": "https://www.elastic.co/",
"type": "Product",
"tags": [
"Go",
"Cloud",
"Scala",
"OpenStack"
]
},
{
"name": "everli",
"career_page_url": "https://it.everli.com/it/lavora-con-noi",
"url": "https://it.everli.com/it",
"type": "Product",
"tags": [
"PHP",
"JS"
]
},
{
"name": "Cortilia",
"career_page_url": "https://about.cortilia.it/lavora-con-noi",
"url": "https://about.cortilia.it/",
"type": "Product",
"tags": [
"AWS",
"Java"
]
}
],
"marketing_writing": [
{
"name": "Meta",
"career_page_url": "https://www.metacareers.com/jobs?roles[0]=full-time&offices[0]=Remote%2C%20Italy",
"url": "https://about.facebook.com/meta/"
},
{
"name": "BendingSpoons",
"career_page_url": "https://bendingspoons.com/careers.html",
"url": "https://bendingspoons.com/"
},
{
"name": "everli",
"career_page_url": "https://it.everli.com/it/lavora-con-noi",
"url": "https://it.everli.com/it"
}
],
"hr": [
{
"name": "Meta",
"career_page_url": "https://www.metacareers.com/jobs?roles[0]=full-time&offices[0]=Remote%2C%20Italy",
"url": "https://about.facebook.com/meta/"
},
{
"name": "TUI",
"career_page_url": "https://careers.tuigroup.com/",
"url": "https://www.tuigroup.com/en-en"
}
],
"design_ux": [
{
"name": "Meta",
"career_page_url": "https://www.metacareers.com/jobs?roles[0]=full-time&offices[0]=Remote%2C%20Italy",
"url": "https://about.facebook.com/meta/"
},
{
"name": "TUI",
"career_page_url": "https://careers.tuigroup.com/",
"url": "https://www.tuigroup.com/en-en"
}
]
}
64 changes: 64 additions & 0 deletions src/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package main

import (
"encoding/json"
"log"
"os"
"strings"
"text/template"
)

type Companies map[string][]Company

type Company struct {
Name string `json:"name"`
URL string `json:"url"`
CareerPageURL string `json:"career_page_url"`
Type string `json:"type,omitempty"`
Tags []string `json:"tags,omitempty"`
TagsString string `json:"-"`
}

func main() {
var companies Companies

file, err := os.ReadFile("./data.json")
if err != nil {
log.Fatalln(err)
}
err = json.Unmarshal(file, &companies)
if err != nil {
log.Fatalln(err)
}

for typeName, companiesType := range companies {
for k, company := range companiesType {
tagsString := ""
for _, tag := range company.Tags {
tagsString += tag + " - "
}
tagsString = strings.Trim(tagsString, " - ")
companies[typeName][k].TagsString = tagsString
}
}

templ, err := template.ParseFiles("./template.md")
if err != nil {
log.Fatalln(err)
}

f, err := os.Create("../README.md")
if err != nil {
log.Fatalln(err)
}

err = templ.Execute(f, companies)
if err != nil {
log.Fatalln(err)
}

err = f.Close()
if err != nil {
log.Fatalln(err)
}
}

0 comments on commit 1299507

Please sign in to comment.