generate `Hello, 世界` demo code when creating user
This commit is contained in:
parent
289257503a
commit
f3c0edde4f
|
@ -18,6 +18,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -233,6 +234,12 @@ func SignUpUser(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// addUser add a user with the specified username and password.
|
||||||
|
//
|
||||||
|
// 1. create the user's workspace
|
||||||
|
// 2. generate 'Hello, 世界' demo code in the workspace
|
||||||
|
// 3. update the user customized configurations, such as style.css
|
||||||
|
// 4. serve files of the user's workspace via HTTP
|
||||||
func addUser(username, password string) string {
|
func addUser(username, password string) string {
|
||||||
for _, user := range conf.Wide.Users {
|
for _, user := range conf.Wide.Users {
|
||||||
if user.Name == username {
|
if user.Name == username {
|
||||||
|
@ -254,6 +261,7 @@ func addUser(username, password string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
conf.CreateWorkspaceDir(workspace)
|
conf.CreateWorkspaceDir(workspace)
|
||||||
|
helloWorld(workspace)
|
||||||
conf.UpdateCustomizedConf(username)
|
conf.UpdateCustomizedConf(username)
|
||||||
|
|
||||||
http.Handle("/workspace/"+username+"/",
|
http.Handle("/workspace/"+username+"/",
|
||||||
|
@ -263,3 +271,31 @@ func addUser(username, password string) string {
|
||||||
|
|
||||||
return UserCreated
|
return UserCreated
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// helloWorld generates the 'Hello, 世界' source code in workspace/src/hello/main.go.
|
||||||
|
func helloWorld(workspace string) {
|
||||||
|
dir := workspace + conf.PathSeparator + "src" + conf.PathSeparator + "hello"
|
||||||
|
if err := os.MkdirAll(dir, 0755); nil != err {
|
||||||
|
glog.Error(err)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fout, err := os.Create(dir + conf.PathSeparator + "main.go")
|
||||||
|
if nil != err {
|
||||||
|
glog.Error(err)
|
||||||
|
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
fout.WriteString(`package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println("Hello, 世界")
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
|
||||||
|
fout.Close()
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue