Harry de Boer před 9 roky
revize
ce2acb7ee4

+ 4 - 0
.gitignore

@@ -0,0 +1,4 @@
+.idea
+*.iml
+ex1-hello/ex1-hello
+ex2-hello/ex2-hello

+ 7 - 0
ex1-hello/main.go

@@ -0,0 +1,7 @@
+package main
+
+import "fmt"
+
+func main() {
+	fmt.Println("Hello Quintor");
+}

+ 11 - 0
ex2-hello/main.go

@@ -0,0 +1,11 @@
+package main
+
+import "fmt"
+
+func main() {
+	fmt.Println(hello("Quintor"));
+}
+
+func hello(someone string) string {
+	return fmt.Sprintf("Hello %s", someone);
+}

binární
ex3-hello/ex3-hello


+ 20 - 0
ex3-hello/main.go

@@ -0,0 +1,20 @@
+package main
+
+import (
+	"text/template"
+	"os"
+)
+
+func main() {
+	t, err := template.New("hello").Parse("Hello {{.}}\n")
+
+	if err != nil {
+		panic(err)
+	}
+
+	err = t.Execute(os.Stdout, "Quintor")
+
+	if err != nil {
+		panic(err)
+	}
+}

+ 20 - 0
ex4-hello/main.go

@@ -0,0 +1,20 @@
+package main
+
+import (
+	"text/template"
+	"os"
+)
+
+func main() {
+	t, err := template.ParseFiles("templates/hello.tpl")
+
+	if err != nil {
+		panic(err)
+	}
+
+	err = t.Execute(os.Stdout, "Quintor")
+
+	if err != nil {
+		panic(err)
+	}
+}

+ 1 - 0
ex4-hello/templates/hello.tpl

@@ -0,0 +1 @@
+Hello {{.}}

+ 25 - 0
ex5-hello/main.go

@@ -0,0 +1,25 @@
+package main
+
+import (
+	"log"
+	"net/http"
+	"text/template"
+)
+
+type server struct {
+	template *template.Template
+}
+
+func main() {
+	t := template.Must(template.ParseFiles("templates/main.tpl"))
+	s := server{template: t}
+	http.HandleFunc("/", s.handler)
+	log.Fatal(http.ListenAndServe(":8080", nil))
+}
+
+func (s *server) handler(w http.ResponseWriter, r *http.Request) {
+	err := s.template.Execute(w, "Devoxx")
+	if err != nil {
+		log.Println(err)
+	}
+}

+ 1 - 0
ex5-hello/templates/hello.tpl

@@ -0,0 +1 @@
+Hello {{.}}

+ 18 - 0
ex6-hello/certs/localhost.cert

@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC+zCCAeOgAwIBAgIJAOt7/gag9LjJMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
+BAMMCWxvY2FsaG9zdDAeFw0xNjExMTAxNDUxMDNaFw0yNjExMDgxNDUxMDNaMBQx
+EjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAPzIf9Oy1gB84/xpHTcPT14sRQGIo7REyParvRif5357G8vFs1PaMH5/pQCM
+K00mIMvLw56LZsz7byjYabNpXUFMAVJbmz3pX9Y0Mia0wTxB4uWCy0fJcaT7roQz
+fYKAJHlp2mBe9k/ozq2Trsy4Trz0KzrEYAAWnFbh2v3sikKRMvLIwOOjsWVKDySb
+4JZwDqLIdtYXRLPf66WvKDGRqPVLUKfbgl6511QBinCZDdcAffqNUWeMfk6/hxnJ
+u2CPOUUb1bOvWtnbSXL6MWxqtkysdSrmcK0JJ1/5HV6QhGoGDPyfzzSNnZVjqX6d
+9R1dn0TULD3t3mfuJVtDCTTuKTkCAwEAAaNQME4wHQYDVR0OBBYEFDogNDgBq4q4
+bnT3ekTboylmJqbbMB8GA1UdIwQYMBaAFDogNDgBq4q4bnT3ekTboylmJqbbMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAOxuM8I+1o9uDPngbGpnpXkK
+VOScfLQ6BA0ozdbaIvzhItvc0IYofwrXh9ja0MM3OGaGofOcrpHdfx1BVt5tjawv
+pePyZyrFCASg2mtGOaRiD+SfSi6xd1Z6GnKXRV+y7aSSI/R8W/wgstzwS9As540X
+RleXZ6Lo3JIKj8yzaRNylB3VUcBdtkfcL+ijeApfjubOwBYoRUilnXXHbvgwkmII
+qHPHiHAnUtcD94UnCIAHpIy31EPf0LyEZvocXmXAZ30zFoee//GB/q9uVKi+O7jv
+sy3tZD5O3t0c+XE60B+FJTj9tYGtEwlpraYcCPnwwQH0Vc69aG9F18doy6iyWzQ=
+-----END CERTIFICATE-----

+ 27 - 0
ex6-hello/certs/localhost.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpgIBAAKCAQEA/Mh/07LWAHzj/GkdNw9PXixFAYijtETI9qu9GJ/nfnsby8Wz
+U9owfn+lAIwrTSYgy8vDnotmzPtvKNhps2ldQUwBUlubPelf1jQyJrTBPEHi5YLL
+R8lxpPuuhDN9goAkeWnaYF72T+jOrZOuzLhOvPQrOsRgABacVuHa/eyKQpEy8sjA
+46OxZUoPJJvglnAOosh21hdEs9/rpa8oMZGo9UtQp9uCXrnXVAGKcJkN1wB9+o1R
+Z4x+Tr+HGcm7YI85RRvVs69a2dtJcvoxbGq2TKx1KuZwrQknX/kdXpCEagYM/J/P
+NI2dlWOpfp31HV2fRNQsPe3eZ+4lW0MJNO4pOQIDAQABAoIBAQCnMaoyiH+5NOHK
+qm+zYkH5pMhDmm/EpRZS6QaaifEgnCanYe0ZkiAvGxg0w4FEduqMQQrzC3sEK227
+k2BeVVtj+/SH16VXjstfr4hYR4fj5iQ/74GqypeLKxijwjbKoRz+3T+eLFE4S2Cg
+OCUOrP0PR2Rsa0Sf6lSftqUU/GX6XiTTHuP8ii3SYF7egQifpDQImWaNZbbZ8Y1U
+BA/HEq/qCrmbDSyNZcimjfG/trB9AMvFTBu9XCq9ZIfOE7MXkqHg/+QDdMaOPTWF
+FNzk2daEppIihvOIZsMa4T6EWuncdZmWnccYYRPCjxxPfmIFWqtFLjcVHa1WYFb2
+RjxxcDqdAoGBAP+SzZ4RzaS24+yojjLUVAE2/nw2uNjDBRjj8V0v7QuwkoaTnFwa
+GxLLKh8E264IvfdcVrG83IOZwx+6Ye29juZZtETh6Evuz7GtXk9STcnd898azBZM
+4MEdUKOKYOUDduK66BvrrmzEEs2wwHCdknkANhPCtikg7NsJrYz6D55fAoGBAP00
+gQO/HpzBr684o5LoBqnWjtNHcnnzlLUoyjbUDyBEardk9QEO1XSV17ULge/QtYgK
+cDwfCGab7QkhOFNHM+KRuFDnjbly6ouWIrakh40XgNMZXN66pSs+280V8GG60KMG
+FA6xtIg1VnbJi0aelR0FOLVtQfU8uA/absGqri9nAoGBAPpcDSDzv8fDgbOryuDw
+LvqhrNpxoNJ2+N9RLHhlIol5B5DduSZgTHU0oKaSU8FAvxc6VZL3t+0TC5phMt15
+/CqbZYS06KK55qvfcauyrJE75FKCJbsSxHlpBj2uqQyvQB8LiaUQU2YpDWKB64Jm
+Wb4+/rqM23We02gfKuwXaoVxAoGBAMQi/aU3ULFA36QtjZfon/DDwRMsjyKkapcC
+J9Hc5nKqTLgPPjI5mWOcBuG5LkfkNhpRa6tGpq1FL5IY55aq2ygwlMQm+gOjXsgN
+3on4XQAQKrxbMzNdBUDAimcNDY3GtoLx3GudgCjamEWfzYFAqmU2fD0dizA6fqHZ
+JF5kplUVAoGBAOIvnhNRXZxRZeT0xMDX7ZKSp8tEgTu9MMz6pg3KMBx2d0QK7MPL
+Dxt3r4nHo041dlKVWwEE9xImBatPb/6EFjSO+k8OsbLamAb/7e71BawV3BBmKIoP
+EBXENVT0AssHah3lkm840I+7ZeiFmBV+pollgwBPjSFIHRf1VE9TyKXw
+-----END RSA PRIVATE KEY-----

binární
ex6-hello/ex6-hello


+ 35 - 0
ex6-hello/main.go

@@ -0,0 +1,35 @@
+package main
+
+import (
+	"html/template"
+	"log"
+	"net/http"
+)
+
+type server struct {
+	template *template.Template
+}
+
+func main() {
+	t := template.Must(template.ParseFiles("templates/main.html"))
+	s := server{template: t}
+	http.HandleFunc("/", s.handleRoot)
+	http.Handle("/resource/", http.FileServer(http.Dir(".")))
+	log.Fatal(http.ListenAndServeTLS(":8443", "certs/localhost.cert", "certs/localhost.key", nil))
+}
+
+func (s *server) handleRoot(w http.ResponseWriter, r *http.Request) {
+
+	if r.RequestURI != "/" {
+		http.NotFound(w, r)
+		return
+	}
+
+	w.Header().Set("Content-Type", "text/html")
+	err := s.template.Execute(w, "Devoxx")
+
+	if err != nil {
+		log.Println(err)
+	}
+
+}

+ 3 - 0
ex6-hello/resource/main.css

@@ -0,0 +1,3 @@
+body {
+    background-color: #EEEEEE
+}

+ 8 - 0
ex6-hello/templates/main.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<head>
+    <title>Hello {{.}}</title>
+    <link rel="stylesheet" type="text/css" href="resource/main.css"/>
+</head>
+<body>
+<h1>Hello {{.}}</h1>
+</body>