From 60f039199482cbeffc865a259f31809aa17d9698 Mon Sep 17 00:00:00 2001 From: nsz Date: Thu, 8 Dec 2011 13:27:10 +0100 Subject: [PATCH] code reorganization --- Makefile | 10 ++++ cmd/epoint-client/Makefile | 7 +++ cmd/epoint-client/epoint-client.go | 4 ++ cmd/epoint-server/Makefile | 7 +++ .../epoint-server/epoint-server.go | 12 ++--- cmd/genkey/genkey.go | 6 +-- pkg/Makefile | 49 +++++++++++++++++++ pkg/deps.sh | 43 ++++++++++++++++ {document => pkg/document}/Makefile | 3 +- {document => pkg/document}/document.go | 0 {document => pkg/document}/document_test.go | 0 {logic => pkg/key}/Makefile | 5 +- dsakey/dsakey.go => pkg/key/key.go | 2 +- dsakey/dsakey_test.go => pkg/key/key_test.go | 0 {dsakey => pkg/server}/Makefile | 5 +- logic/logic.go => pkg/server/server.go | 12 ++--- {store => pkg/store}/Makefile | 3 +- {store => pkg/store}/store.go | 0 {store => pkg/store}/store_test.go | 0 19 files changed, 146 insertions(+), 22 deletions(-) create mode 100644 Makefile create mode 100644 cmd/epoint-client/Makefile create mode 100644 cmd/epoint-client/epoint-client.go create mode 100644 cmd/epoint-server/Makefile rename epoint-server.go => cmd/epoint-server/epoint-server.go (93%) create mode 100644 pkg/Makefile create mode 100755 pkg/deps.sh rename {document => pkg/document}/Makefile (78%) rename {document => pkg/document}/document.go (100%) rename {document => pkg/document}/document_test.go (100%) rename {logic => pkg/key}/Makefile (64%) rename dsakey/dsakey.go => pkg/key/key.go (99%) rename dsakey/dsakey_test.go => pkg/key/key_test.go (100%) rename {dsakey => pkg/server}/Makefile (61%) rename logic/logic.go => pkg/server/server.go (97%) rename {store => pkg/store}/Makefile (80%) rename {store => pkg/store}/store.go (100%) rename {store => pkg/store}/store_test.go (100%) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5c5c8fa --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +all: install +install: + make -C pkg install +test: + make -C pkg test +clean: + make -C pkg clean +nuke: + make -C pkg nuke +.PHONY: all install test clean nuke diff --git a/cmd/epoint-client/Makefile b/cmd/epoint-client/Makefile new file mode 100644 index 0000000..9f4116d --- /dev/null +++ b/cmd/epoint-client/Makefile @@ -0,0 +1,7 @@ +include $(GOROOT)/src/Make.inc + +TARG=epoint-client +GOFILES=\ + epoint-client.go + +include $(GOROOT)/src/Make.cmd diff --git a/cmd/epoint-client/epoint-client.go b/cmd/epoint-client/epoint-client.go new file mode 100644 index 0000000..da29a2c --- /dev/null +++ b/cmd/epoint-client/epoint-client.go @@ -0,0 +1,4 @@ +package main + +func main() { +} diff --git a/cmd/epoint-server/Makefile b/cmd/epoint-server/Makefile new file mode 100644 index 0000000..c14e7c1 --- /dev/null +++ b/cmd/epoint-server/Makefile @@ -0,0 +1,7 @@ +include $(GOROOT)/src/Make.inc + +TARG=epoint-server +GOFILES=\ + epoint-server.go + +include $(GOROOT)/src/Make.cmd diff --git a/epoint-server.go b/cmd/epoint-server/epoint-server.go similarity index 93% rename from epoint-server.go rename to cmd/epoint-server/epoint-server.go index 425ea45..10ddcbd 100644 --- a/epoint-server.go +++ b/cmd/epoint-server/epoint-server.go @@ -2,7 +2,7 @@ package main import ( "crypto/openpgp" - "epoint/logic" + "epoint/server" "fmt" "log" "net/http" @@ -88,7 +88,7 @@ func submitHandler(w http.ResponseWriter, r *http.Request) { key := r.FormValue("key") switch { case draft != "": - cert, err := logic.EvalDraft([]byte(draft), serverkey) + cert, err := server.EvalDraft([]byte(draft), serverkey) if err != nil { msg := fmt.Sprintf("eval draft failed: %s", err) httpError(w, 404, msg) @@ -96,7 +96,7 @@ func submitHandler(w http.ResponseWriter, r *http.Request) { w.Write(cert) } case debit != "": - cert, err := logic.EvalDebitCert([]byte(debit), serverkey) + cert, err := server.EvalDebitCert([]byte(debit), serverkey) if err != nil { msg := fmt.Sprintf("eval debit failed: %s", err) httpError(w, 404, msg) @@ -104,7 +104,7 @@ func submitHandler(w http.ResponseWriter, r *http.Request) { w.Write(cert) } case key != "": - err := logic.AddKeys([]byte(key)) + err := server.AddKeys([]byte(key)) if err != nil { msg := fmt.Sprintf("add keys failed: %s", err) httpError(w, 404, msg) @@ -122,11 +122,11 @@ func main() { if err != nil { log.Fatal(err) } - err = logic.Init(rootdir) + err = server.Init(rootdir) if err != nil { log.Fatal(err) } - err = logic.StoreSk(serverkey) + err = server.StoreSk(serverkey) if err != nil { log.Fatal(err) } diff --git a/cmd/genkey/genkey.go b/cmd/genkey/genkey.go index 3a8a256..7f3c518 100644 --- a/cmd/genkey/genkey.go +++ b/cmd/genkey/genkey.go @@ -2,7 +2,7 @@ package main import ( "crypto/openpgp" - "epoint/dsakey" + "epoint/key" "fmt" "log" "os" @@ -86,9 +86,9 @@ func main() { } var e *openpgp.Entity if isIssuer { - e, err = dsakey.NewIssuerEntity(b[:n], denom) + e, err = key.NewIssuerEntity(b[:n], denom) } else { - e, err = dsakey.NewHolderEntity(b[:n], issuer, denom) + e, err = key.NewHolderEntity(b[:n], issuer, denom) } if err != nil { log.Fatal(err) diff --git a/pkg/Makefile b/pkg/Makefile new file mode 100644 index 0000000..4917a98 --- /dev/null +++ b/pkg/Makefile @@ -0,0 +1,49 @@ +include $(GOROOT)/src/Make.inc + +all: install + +DIRS=\ + document\ + key\ + server\ + store\ + ../cmd/genkey\ + ../cmd/epoint-client\ + ../cmd/epoint-server\ + +clean.dirs: $(addsuffix .clean, $(DIRS)) +install.dirs: $(addsuffix .install, $(DIRS)) +nuke.dirs: $(addsuffix .nuke, $(DIRS)) +test.dirs: $(addsuffix .test, $(DIRS)) +testshort.dirs: $(addsuffix .testshort, $(DIRS)) + +%.clean: + +$(MAKE) -C $* clean + +%.install: + +@echo install $* + +@$(MAKE) -C $* install.clean >$*/build.out 2>&1 || (echo INSTALL FAIL $*; cat $*/build.out; exit 1) + +%.nuke: + +$(MAKE) -C $* nuke + +%.test: + +@echo test $* + +@$(MAKE) -C $* test.clean >$*/test.out 2>&1 || (echo TEST FAIL $*; cat $*/test.out; exit 1) + +clean: clean.dirs + +install: install.dirs + +test: test.dirs + +nuke: nuke.dirs + rm -rf "$(GOROOT)"/pkg/$(GOOS)_$(GOARCH)/epoint + +deps: + ./deps.sh + +echo-dirs: + @echo $(DIRS) + +-include Make.deps diff --git a/pkg/deps.sh b/pkg/deps.sh new file mode 100755 index 0000000..123ad3a --- /dev/null +++ b/pkg/deps.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +OUT="Make.deps" +TMP="Make.deps.tmp" + +if [ -f $OUT ] && ! [ -w $OUT ]; then + echo "$0: $OUT is read-only; aborting." 1>&2 + exit 1 +fi + +# Get list of directories from Makefile +dirs=$(make --no-print-directory echo-dirs) +dirpat=$(echo $dirs C | awk '{ + for(i=1;i<=NF;i++){ + x=$i + gsub("/", "\\/", x) + printf("/^(epoint\\/%s)$/\n", x) + } +}') + +for dir in $dirs; do ( + cd $dir >/dev/null || exit 1 + + sources=$(sed -n 's/^[ ]*\([^ ]*\.go\)[ ]*\\*[ ]*$/\1/p' Makefile) + sources=$(echo $sources | sed 's/\$(GOOS)/'$GOOS'/g') + sources=$(echo $sources | sed 's/\$(GOARCH)/'$GOARCH'/g') + # /dev/null here means we get an empty dependency list if $sources is empty + # instead of listing every file in the directory. + sources=$(ls $sources /dev/null 2> /dev/null) # remove .s, .c, etc. + + deps=$( + sed -n '/^import.*"/p; /^import[ \t]*(/,/^)/p' $sources /dev/null | + cut -d '"' -f2 | + awk "$dirpat" | + grep -v "^$dir\$" | + sed 's/epoint\///;s/$/.install/' | + sort -u + ) + + echo $dir.install: $deps +) done > $TMP + +mv $TMP $OUT diff --git a/document/Makefile b/pkg/document/Makefile similarity index 78% rename from document/Makefile rename to pkg/document/Makefile index 7a52d21..91080d9 100644 --- a/document/Makefile +++ b/pkg/document/Makefile @@ -1,6 +1,7 @@ include $(GOROOT)/src/Make.inc TARG=epoint/document -GOFILES=document.go +GOFILES=\ + document.go include $(GOROOT)/src/Make.pkg diff --git a/document/document.go b/pkg/document/document.go similarity index 100% rename from document/document.go rename to pkg/document/document.go diff --git a/document/document_test.go b/pkg/document/document_test.go similarity index 100% rename from document/document_test.go rename to pkg/document/document_test.go diff --git a/logic/Makefile b/pkg/key/Makefile similarity index 64% rename from logic/Makefile rename to pkg/key/Makefile index 89942c5..d3d31f5 100644 --- a/logic/Makefile +++ b/pkg/key/Makefile @@ -1,6 +1,7 @@ include $(GOROOT)/src/Make.inc -TARG=epoint/logic -GOFILES=logic.go +TARG=epoint/key +GOFILES=\ + key.go include $(GOROOT)/src/Make.pkg diff --git a/dsakey/dsakey.go b/pkg/key/key.go similarity index 99% rename from dsakey/dsakey.go rename to pkg/key/key.go index 23ab5fe..195b7c5 100644 --- a/dsakey/dsakey.go +++ b/pkg/key/key.go @@ -1,4 +1,4 @@ -package dsakey +package key import ( "crypto" diff --git a/dsakey/dsakey_test.go b/pkg/key/key_test.go similarity index 100% rename from dsakey/dsakey_test.go rename to pkg/key/key_test.go diff --git a/dsakey/Makefile b/pkg/server/Makefile similarity index 61% rename from dsakey/Makefile rename to pkg/server/Makefile index bd29402..6835a0e 100644 --- a/dsakey/Makefile +++ b/pkg/server/Makefile @@ -1,6 +1,7 @@ include $(GOROOT)/src/Make.inc -TARG=epoint/dsakey -GOFILES=dsakey.go +TARG=epoint/server +GOFILES=\ + server.go include $(GOROOT)/src/Make.pkg diff --git a/logic/logic.go b/pkg/server/server.go similarity index 97% rename from logic/logic.go rename to pkg/server/server.go index 602f458..5d9af8e 100644 --- a/logic/logic.go +++ b/pkg/server/server.go @@ -1,4 +1,4 @@ -package logic +package server // main transfer logic @@ -6,7 +6,7 @@ import ( "bytes" "crypto/openpgp" "epoint/document" - "epoint/dsakey" + "epoint/key" "epoint/store" "fmt" "time" @@ -52,7 +52,7 @@ func AddKeys(d []byte) (err error) { } for _, e := range entities { // TODO: various checks.. - isIssuer, issuer, denom, err1 := dsakey.CheckEntity(e) + isIssuer, issuer, denom, err1 := key.CheckEntity(e) err = err1 if err != nil { // TODO.. @@ -64,7 +64,7 @@ func AddKeys(d []byte) (err error) { // TODO.. continue } - ok, _, den, err := dsakey.CheckEntity(es[0]) + ok, _, den, err := key.CheckEntity(es[0]) if !ok || err != nil || den != denom { // TODO.. continue @@ -146,7 +146,7 @@ func ParseDraft(d []byte) (draft *document.Draft, draftid string, err error) { if err != nil { return } - _, issuer, denom, err := dsakey.CheckEntity(kr[0]) + _, issuer, denom, err := key.CheckEntity(kr[0]) if err != nil { return } @@ -159,7 +159,7 @@ func ParseDraft(d []byte) (draft *document.Draft, draftid string, err error) { // internal error: pubkey cannot be parsed return } - _, issuer2, denom2, err := dsakey.CheckEntity(kr[0]) + _, issuer2, denom2, err := key.CheckEntity(kr[0]) if err != nil { return } diff --git a/store/Makefile b/pkg/store/Makefile similarity index 80% rename from store/Makefile rename to pkg/store/Makefile index 23c7767..4bc5f57 100644 --- a/store/Makefile +++ b/pkg/store/Makefile @@ -1,6 +1,7 @@ include $(GOROOT)/src/Make.inc TARG=epoint/store -GOFILES=store.go +GOFILES=\ + store.go include $(GOROOT)/src/Make.pkg diff --git a/store/store.go b/pkg/store/store.go similarity index 100% rename from store/store.go rename to pkg/store/store.go diff --git a/store/store_test.go b/pkg/store/store_test.go similarity index 100% rename from store/store_test.go rename to pkg/store/store_test.go -- 2.20.1