diff options
-rw-r--r-- | README.md | 9 | ||||
-rw-r--r-- | default.nix | 22 | ||||
-rw-r--r-- | directory.go | 2 | ||||
-rw-r--r-- | invite.go | 4 | ||||
-rw-r--r-- | main.go | 19 | ||||
-rw-r--r-- | profile.go | 2 |
6 files changed, 31 insertions, 27 deletions
@@ -30,6 +30,15 @@ Guichet requires go 1.13 or later. To build Guichet, clone this repository outside of your `$GOPATH`. Then, run `make` in the root of the repo. +## Releasing Guichet + +To build Guichet in a controlled environment, because you plan to release it for example, please use Nix. + +```bash +nix-build -A bin # build only the Go binary +nix-build -A pkg # build the binary and add the ressources +nix-build -A docker # build a docker container +``` ## Configuration of Guichet diff --git a/default.nix b/default.nix index 24b759c..cd17475 100644 --- a/default.nix +++ b/default.nix @@ -11,7 +11,8 @@ let }) ]; }; - bin = pkgs.gomod.buildGoApplication { +in rec { + bin = pkgs.gomod.buildGoApplication { pname = "guichet-bin"; version = "0.1.0"; src = ./.; @@ -26,23 +27,18 @@ let platforms = platforms.linux; }; }; -in - pkgs.stdenv.mkDerivation { + pkg = pkgs.stdenv.mkDerivation { pname = "guichet"; version = "0.1.0"; src = ./.; installPhase = '' mkdir -p $out/ - - cat > guichet <<EOF - #!${pkgs.bash}/bin/bash - cd $out - ${bin}/bin/guichet \$@ - EOF - chmod +x guichet - - cp guichet $out/guichet + cp ${bin}/bin/guichet $out/guichet cp -r templates static $out/ ''; - } + }; + /*docker = pkgs.xxx { + + };*/ +} diff --git a/directory.go b/directory.go index 4f4a5a2..213b11b 100644 --- a/directory.go +++ b/directory.go @@ -37,7 +37,7 @@ type SearchResults struct { } func handleDirectorySearch(w http.ResponseWriter, r *http.Request) { - templateDirectoryResults := template.Must(template.ParseFiles(config.Resources[0]+"/templates/directory_results.html")) + templateDirectoryResults := template.Must(template.ParseFiles(config.Resources[0] + "/templates/directory_results.html")) //Get input value by user r.ParseMultipartForm(1024) @@ -174,7 +174,7 @@ func tryCreateAccount(l *ldap.Conn, data *NewAccountData, pass1 string, pass2 st if checkFailed { return - } + } // Actually create user req := ldap.NewAddRequest(userDn, nil) @@ -298,7 +298,7 @@ func trySendCode(login *LoginStatus, choice string, sendto string, data *SendCod return } - templateMail := template.Must(template.ParseFiles(config.Resources[0]+"/templates/invite_mail.txt")) + templateMail := template.Must(template.ParseFiles(config.Resources[0] + "/templates/invite_mail.txt")) buf := bytes.NewBuffer([]byte{}) templateMail.Execute(buf, &CodeMailFields{ To: sendto, @@ -21,9 +21,9 @@ import ( type ConfigFile struct { Resources []string `json:"resources"` - HttpBindAddr string `json:"http_bind_addr"` - LdapServerAddr string `json:"ldap_server_addr"` - LdapTLS bool `json:"ldap_tls"` + HttpBindAddr string `json:"http_bind_addr"` + LdapServerAddr string `json:"ldap_server_addr"` + LdapTLS bool `json:"ldap_tls"` BaseDN string `json:"base_dn"` UserBaseDN string `json:"user_base_dn"` @@ -64,7 +64,7 @@ var store sessions.Store = nil func readConfig() ConfigFile { // Default configuration values for certain fields config_file := ConfigFile{ - Resources: []string{}, + Resources: []string{}, HttpBindAddr: ":9991", LdapServerAddr: "ldap://127.0.0.1:389", @@ -97,17 +97,16 @@ func readConfig() ConfigFile { // Enrich the Resource entry with default values config_file.Resources = append(config_file.Resources, ".") ex, err := os.Executable() - if err == nil { - exPath := filepath.Dir(ex) + if err == nil { + exPath := filepath.Dir(ex) config_file.Resources = append(config_file.Resources, exPath) - } - fmt.Println(config_file.Resources) + } return config_file } func selectResource(conf *ConfigFile) { - ResourceLoop: +ResourceLoop: for _, p := range conf.Resources { for _, suffix := range []string{"", "/templates", "/static"} { _, err := os.Stat(p + suffix) @@ -157,7 +156,7 @@ func main() { r.HandleFunc("/admin/ldap/{dn}", handleAdminLDAP) r.HandleFunc("/admin/create/{template}/{super_dn}", handleAdminCreate) - staticfiles := http.FileServer(http.Dir(config.Resources[0]+"/static")) + staticfiles := http.FileServer(http.Dir(config.Resources[0] + "/static")) r.Handle("/static/{file:.*}", http.StripPrefix("/static/", staticfiles)) log.Printf("Starting HTTP server on %s", config.HttpBindAddr) @@ -122,7 +122,7 @@ func handlePasswd(w http.ResponseWriter, r *http.Request) { data.NoMatchError = true } else { modify_request := ldap.NewModifyRequest(login.Info.DN, nil) - pw, err := SSHAEncode(password); + pw, err := SSHAEncode(password) if err == nil { modify_request.Replace("userpassword", []string{pw}) err := login.conn.Modify(modify_request) |