소스 검색

Added an opening for the client

Steve Thielemann 5 달 전
부모
커밋
90ea1c7cc2
8개의 변경된 파일190개의 추가작업 그리고 0개의 파일을 삭제
  1. 6 0
      .gitignore
  2. 16 0
      build.sh
  3. 61 0
      client/main.go
  4. 46 0
      client/version.go
  5. 4 0
      connect.sh
  6. 4 0
      runclient.sh
  7. 7 0
      server/main.go
  8. 46 0
      server/version.go

+ 6 - 0
.gitignore

@@ -1,3 +1,9 @@
 # Directories
 doorgo/
 
+# Files
+door32.sys
+*.log
+mud-server
+mud-client
+

+ 16 - 0
build.sh

@@ -0,0 +1,16 @@
+#!/bin/bash
+
+if ! [ -f "doorgo/door32" ]; then
+	cd doorgo
+	make door32
+	cd ..
+fi
+
+cd client
+go build
+cd ..
+
+cd server
+go build
+cd ..
+

+ 61 - 0
client/main.go

@@ -0,0 +1,61 @@
+package main
+
+import (
+	"errors"
+	"fmt"
+	"log"
+	"time"
+
+	door "git.red-green.com/RedGreen/doorgo"
+)
+
+func PrintErr(d *door.Door, err error) {
+	d.Write([]byte(fmt.Sprintf("%sErr: %v"+door.Reset+door.CRNL, door.ColorTextS("BRI RED ON BLA"), err)))
+	_, _, err = d.WaitKey(door.Inactivity)
+	if err != nil {
+		if !errors.Is(err, door.ErrDisconnected) {
+			log.Printf("PrintErr: %v", err)
+		}
+	}
+}
+
+func main() {
+	var d *door.Door = &door.Door{}
+	d.Init("mud")
+	defer d.Close()
+
+	d.WriteS(door.Clrscr)
+
+	slash := "/"
+	mud := fmt.Sprintf("%sM%sU%sD"+door.Reset+" v%s"+door.CRNL, door.ColorText("BRI RED ON BLA"), door.ColorText("BRI GRE ON BLA"), door.ColorText("BRI CYA ON BLA"), Version())
+OPENING:
+	for range make([]byte, 4*10) {
+		d.Write([]byte(fmt.Sprintf(door.GotoS(0, 0)+"%s %s", slash, mud)))
+		switch slash {
+		case "/":
+			slash = "-"
+		case "-":
+			slash = "\\"
+		case "\\":
+			slash = "|"
+		case "|":
+			slash = "/"
+		}
+		r, ext, err := d.WaitKey(time.Duration(250) * time.Millisecond)
+		if err != nil {
+			if errors.Is(err, door.ErrDisconnected) {
+				return
+			}
+			if errors.Is(err, door.ErrTimeout) {
+				continue
+			}
+			PrintErr(d, err)
+			return
+		}
+		if ext != door.NOP || r != 0 {
+			break OPENING
+		}
+	}
+	d.Write([]byte(door.Reset + door.CRNL))
+	d.WriteS(door.Clrscr)
+}

+ 46 - 0
client/version.go

@@ -0,0 +1,46 @@
+package main
+
+import (
+	"fmt"
+	"log"
+	"os/exec"
+	"strings"
+)
+
+// 1.0.0-dev
+const (
+	VERSION_MAJ = 1
+	VERSION_MIN = 0
+	VERSION_PAT = 0
+	VERSION_TAG = "dev"
+)
+
+func GitVersion() string {
+	var (
+		cmd    *exec.Cmd
+		err    error
+		stdout []byte
+	)
+	cmd = exec.Command("git", "describe",
+		"--abbrev=8",
+		"--long",
+		"--tags",
+		"--dirty",
+		"--always",
+		"--match",
+		"v[0-9]*")
+	stdout, err = cmd.Output()
+	if err != nil {
+		log.Println("Err (GitVersion):", err)
+		return ""
+	}
+	return strings.TrimSpace(string(stdout))
+}
+
+func Version() string {
+	var hash string = GitVersion()
+	if hash != "" {
+		return fmt.Sprintf("%d.%d.%d-%s#%s", VERSION_MAJ, VERSION_MIN, VERSION_PAT, VERSION_TAG, hash)
+	}
+	return fmt.Sprintf("%d.%d.%d-%s", VERSION_MAJ, VERSION_MIN, VERSION_PAT, VERSION_TAG)
+}

+ 4 - 0
connect.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+telnet 0.0.0.0 4000
+

+ 4 - 0
runclient.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+./doorgo/door32 -p 4000 "./client/mud-client -d ../door32.sys"
+

+ 7 - 0
server/main.go

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

+ 46 - 0
server/version.go

@@ -0,0 +1,46 @@
+package main
+
+import (
+	"fmt"
+	"log"
+	"os/exec"
+	"strings"
+)
+
+// 1.0.0-dev
+const (
+	VERSION_MAJ = 1
+	VERSION_MIN = 0
+	VERSION_PAT = 0
+	VERSION_TAG = "dev"
+)
+
+func GitVersion() string {
+	var (
+		cmd    *exec.Cmd
+		err    error
+		stdout []byte
+	)
+	cmd = exec.Command("git", "describe",
+		"--abbrev=8",
+		"--long",
+		"--tags",
+		"--dirty",
+		"--always",
+		"--match",
+		"v[0-9]*")
+	stdout, err = cmd.Output()
+	if err != nil {
+		log.Println("Err (GitVersion):", err)
+		return ""
+	}
+	return strings.TrimSpace(string(stdout))
+}
+
+func Version() string {
+	var hash string = GitVersion()
+	if hash != "" {
+		return fmt.Sprintf("%d.%d.%d-%s#%s", VERSION_MAJ, VERSION_MIN, VERSION_PAT, VERSION_TAG, hash)
+	}
+	return fmt.Sprintf("%d.%d.%d-%s", VERSION_MAJ, VERSION_MIN, VERSION_PAT, VERSION_TAG)
+}