aboutsummaryrefslogtreecommitdiff
path: root/internal/internal.go
blob: f21624e01326a7606edb300b4f7038f68fb707d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package internal

import (
	"encoding/json"
	"flag"
	"fmt"
	"log"
	"net/http"
	"os"

	"github.com/Xe/x/tools/license/licenses"
	"go4.org/legal"
)

var (
	licenseShow = flag.Bool("license", false, "show software license?")
)

func init() {
	legal.RegisterLicense(licenses.CC0License)
	legal.RegisterLicense(licenses.SQLiteBlessing)

	http.HandleFunc("/.within/licenses", func(w http.ResponseWriter, r *http.Request) {
		json.NewEncoder(w).Encode(legal.Licenses())
	})
}

// HandleLicense optionally shows all software licenses.
func HandleLicense() {
	if *licenseShow {
		log.Printf("Licenses for %v", os.Args)

		for _, li := range legal.Licenses() {
			fmt.Println(li)
			fmt.Println()
		}

		os.Exit(0)
	}
}