๐Ÿ’พ Archived View for source.community โ€บ Fuwn โ€บ space โ€บ blob โ€บ main โ€บ space.go captured on 2024-02-05 at 09:50:49. Gemini links have been rewritten to link to archived content

View Raw

More Information

โฌ…๏ธ Previous capture (2023-01-29)

๐Ÿšง View Differences

-=-=-=-=-=-=-

                                                         .
,-. ,-. . . ,-. ,-. ,-.    ,-. ,-. ,-,-. ,-,-. . . ,-. . |- . .
`-. | | | | |   |   |-'    |   | | | | | | | | | | | | | |  | |
`-' `-' `-^ '   `-' `-' :: `-' `-' ' ' ' ' ' ' `-^ ' ' ' `' `-|
                                                             /|
                                                            `-'

Profile for Fuwn

Fuwn / space

git clone https://source.community/Fuwn/space.git

Branches

Log

Tree

/space.go (main)

โ†‘ /

blob

View raw contents of /space.go (main)

โ”€โ”€โ”€โ”€โ•ฎ
   1โ”‚ // Copyright (C) 2021-2021 Fuwn
   2โ”‚ // SPDX-License-Identifier: GPL-3.0-only
   3โ”‚ 
   4โ”‚ package main
   5โ”‚ 
   6โ”‚ import (
   7โ”‚ 	"embed"
   8โ”‚ 	"io/fs"
   9โ”‚ 	"log"
  10โ”‚ 	"strings"
  11โ”‚ 	"text/template"
  12โ”‚ 
  13โ”‚ 	"github.com/fuwn/space/pkg/utilities"
  14โ”‚ 	"github.com/pitr/gig"
  15โ”‚ 	"github.com/spf13/viper"
  16โ”‚ )
  17โ”‚ 
  18โ”‚ //go:embed content
  19โ”‚ var contentFilesystem embed.FS
  20โ”‚ 
  21โ”‚ var g = gig.Default()
  22โ”‚ 
  23โ”‚ var hitsTracker = make(map[string]int)
  24โ”‚ 
  25โ”‚ // var startTime = time.Now()
  26โ”‚ 
  27โ”‚ // Initialize templates
  28โ”‚ func init() {
  29โ”‚ 	templates, _ := fs.Sub(contentFilesystem, "content/templates")
  30โ”‚ 	g.Renderer = &Template{template.Must(template.New("").ParseFS(templates, "*.gmi"))}
  31โ”‚ }
  32โ”‚ 
  33โ”‚ // Initialize configuration system
  34โ”‚ func init() {
  35โ”‚ 	viper.SetConfigName("config.yml")
  36โ”‚ 	viper.SetConfigType("yaml")
  37โ”‚ 	viper.AddConfigPath(".space/")
  38โ”‚ 	viper.AddConfigPath(".space-data/")
  39โ”‚ 	viper.AddConfigPath("/app/.space/")
  40โ”‚ 
  41โ”‚ 	if err := viper.ReadInConfig(); err != nil {
  42โ”‚ 		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
  43โ”‚ 			log.Panicln("Cannot read configuration file:", err)
  44โ”‚ 		} else {
  45โ”‚ 			log.Panicln("Read configuration file but an error occurred anyway:", err)
  46โ”‚ 		}
  47โ”‚ 	}
  48โ”‚ 
  49โ”‚ 	viper.WatchConfig()
  50โ”‚ }
  51โ”‚ 
  52โ”‚ func main() {
  53โ”‚ 	// Route handler
  54โ”‚ 	handle()
  55โ”‚ 
  56โ”‚ 	// Certificate check
  57โ”‚ 	nonExistent := utilities.DoesFilesExist([]string{
  58โ”‚ 		".space/.certificates/space.crt",
  59โ”‚ 		".space/.certificates/space.key",
  60โ”‚ 	})
  61โ”‚ 	if len(nonExistent) != 0 {
  62โ”‚ 		panic("The following files crucial to execution DO NOT exist: " + strings.Join(nonExistent, ", "))
  63โ”‚ 	}
  64โ”‚ 
  65โ”‚ 	// Start
  66โ”‚ 	g.Run(
  67โ”‚ 		":"+viper.GetString("space.port"),
  68โ”‚ 		".space/.certificates/space.crt",
  69โ”‚ 		".space/.certificates/space.key",
  70โ”‚ 	)
  71โ”‚ }
โ”€โ”€โ”€โ”€โ•ฏ

ยท ยท ยท

๐Ÿก Home

FAQs

Privacy Policy

Terms & Conditions

Official Gemlog

info@source.community

ยฉ 2024 source.community