stub some things; table display name for now
parent
69b832c1ab
commit
15ba7dc3ae
37
main.go
37
main.go
|
@ -21,8 +21,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO read ENV var for additional system users but hard code the ones we know about
|
|
||||||
|
|
||||||
const default_html_filename = "/etc/skel/public_html/index.html"
|
const default_html_filename = "/etc/skel/public_html/index.html"
|
||||||
const description = `an intentional digital community for creating and sharing
|
const description = `an intentional digital community for creating and sharing
|
||||||
works of art, peer education, and technological anachronism. we are
|
works of art, peer education, and technological anachronism. we are
|
||||||
|
@ -40,9 +38,8 @@ type User struct {
|
||||||
PageTitle string `json:"title"` // Title of user's HTML page, if they have one
|
PageTitle string `json:"title"` // Title of user's HTML page, if they have one
|
||||||
Mtime int `json:"mtime"` // Timestamp representing the last time a user's index.html was modified
|
Mtime int `json:"mtime"` // Timestamp representing the last time a user's index.html was modified
|
||||||
// Town additions
|
// Town additions
|
||||||
DisplayName string `json:"display_name"` // Display Name of user
|
DefaultPage bool `json:"default"` // Whether or not user has updated their default index.html
|
||||||
DefaultPage bool `json:"default"` // Whether or not user has updated their default index.html
|
Favicon string `json:"favicon"` // URL to a small image representing the user
|
||||||
Favicon string `json:"favicon"` // URL to a small image representing the user
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type TildeData struct {
|
type TildeData struct {
|
||||||
|
@ -73,6 +70,11 @@ func userCount(users []User) int {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func pageTitleFor(username string) string {
|
||||||
|
// TODO
|
||||||
|
return "TODO"
|
||||||
|
}
|
||||||
|
|
||||||
func systemUsers() map[string]bool {
|
func systemUsers() map[string]bool {
|
||||||
systemUsers := map[string]bool{
|
systemUsers := map[string]bool{
|
||||||
"ubuntu": true,
|
"ubuntu": true,
|
||||||
|
@ -89,6 +91,21 @@ func systemUsers() map[string]bool {
|
||||||
return systemUsers
|
return systemUsers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func mtimeFor(username string) int {
|
||||||
|
// TODO
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func detectDefaultPageFor(username string) bool {
|
||||||
|
// TODO
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func detectFaviconFor(username string) string {
|
||||||
|
// TODO
|
||||||
|
return "TODO.jpg"
|
||||||
|
}
|
||||||
|
|
||||||
func getUsers() (users []User) {
|
func getUsers() (users []User) {
|
||||||
// For the purposes of this program, we discover users via:
|
// For the purposes of this program, we discover users via:
|
||||||
// - presence in /home/
|
// - presence in /home/
|
||||||
|
@ -115,8 +132,11 @@ func getUsers() (users []User) {
|
||||||
username := scanner.Text()
|
username := scanner.Text()
|
||||||
if !systemUsers[username] {
|
if !systemUsers[username] {
|
||||||
user := User{
|
user := User{
|
||||||
Username: username,
|
Username: username,
|
||||||
// TODO other fields
|
PageTitle: pageTitleFor(username),
|
||||||
|
Mtime: mtimeFor(username),
|
||||||
|
DefaultPage: detectDefaultPageFor(username),
|
||||||
|
Favicon: detectFaviconFor(username),
|
||||||
}
|
}
|
||||||
users = append(users, user)
|
users = append(users, user)
|
||||||
}
|
}
|
||||||
|
@ -132,11 +152,12 @@ func liveUserCount(users []User) int {
|
||||||
|
|
||||||
func activeUserCount() int {
|
func activeUserCount() int {
|
||||||
out, err := exec.Command("who").Output()
|
out, err := exec.Command("who").Output()
|
||||||
scanner := bufio.NewScanner(bytes.NewReader(out))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("could not run who %s", err)
|
log.Fatalf("could not run who %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(bytes.NewReader(out))
|
||||||
|
|
||||||
activeUsers := map[string]bool{}
|
activeUsers := map[string]bool{}
|
||||||
|
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
|
|
Loading…
Reference in New Issue