aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md9
-rw-r--r--default.nix22
-rw-r--r--directory.go2
-rw-r--r--invite.go4
-rw-r--r--main.go19
-rw-r--r--profile.go2
6 files changed, 31 insertions, 27 deletions
diff --git a/README.md b/README.md
index fad0594..9751fab 100644
--- a/README.md
+++ b/README.md
@@ -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)
diff --git a/invite.go b/invite.go
index 2d01e44..654d179 100644
--- a/invite.go
+++ b/invite.go
@@ -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,
diff --git a/main.go b/main.go
index 51a23aa..c67a3dc 100644
--- a/main.go
+++ b/main.go
@@ -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)
diff --git a/profile.go b/profile.go
index 51f0b08..0b91e82 100644
--- a/profile.go
+++ b/profile.go
@@ -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)