Fix #104
This commit is contained in:
parent
70e4b4efca
commit
1aaa3ba719
64
conf/wide.go
64
conf/wide.go
|
@ -128,6 +128,10 @@ func (c *conf) GetUserWorkspace(username string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取主工作空间路径.
|
// 获取主工作空间路径.
|
||||||
|
//
|
||||||
|
// 相比起使用 Wide.Workspace,该函数会做如下处理:
|
||||||
|
// 1. 替换里面的 {pwd} 变量为实际的目录路径
|
||||||
|
// 2. 把 / 替换为 \\ (Windows)
|
||||||
func (c *conf) GetWorkspace() string {
|
func (c *conf) GetWorkspace() string {
|
||||||
return filepath.FromSlash(strings.Replace(c.Workspace, "{pwd}", c.Pwd, 1))
|
return filepath.FromSlash(strings.Replace(c.Workspace, "{pwd}", c.Pwd, 1))
|
||||||
}
|
}
|
||||||
|
@ -151,6 +155,15 @@ func (c *conf) GetGoFmt(username string) string {
|
||||||
return "gofmt"
|
return "gofmt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取用户的工作空间路径.
|
||||||
|
//
|
||||||
|
// 相比起使用 User.Workspace,该函数会做如下处理:
|
||||||
|
// 1. 替换里面的 {pwd} 变量为实际的目录路径
|
||||||
|
// 2. 把 / 替换为 \\ (Windows)
|
||||||
|
func (u *User) GetWorkspace() string {
|
||||||
|
return filepath.FromSlash(strings.Replace(u.Workspace, "{pwd}", Wide.Pwd, 1))
|
||||||
|
}
|
||||||
|
|
||||||
// 获取 username 指定的用户配置.
|
// 获取 username 指定的用户配置.
|
||||||
func (*conf) GetUser(username string) *User {
|
func (*conf) GetUser(username string) *User {
|
||||||
for _, user := range Wide.Users {
|
for _, user := range Wide.Users {
|
||||||
|
@ -259,6 +272,57 @@ func Load() {
|
||||||
glog.V(3).Infof("pwd [%s]", pwd)
|
glog.V(3).Infof("pwd [%s]", pwd)
|
||||||
|
|
||||||
glog.V(3).Info("Conf: \n" + string(bytes))
|
glog.V(3).Info("Conf: \n" + string(bytes))
|
||||||
|
|
||||||
|
initWorkspaceDirs()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化主工作空间、各个用户的工作空间目录.
|
||||||
|
//
|
||||||
|
// 如果不存在 Workspace 配置所指定的目录路径则创建该目录.
|
||||||
|
func initWorkspaceDirs() {
|
||||||
|
paths := strings.Split(Wide.GetWorkspace(), PathListSeparator)
|
||||||
|
|
||||||
|
for _, user := range Wide.Users {
|
||||||
|
paths = append(paths, strings.Split(user.GetWorkspace(), PathListSeparator)...)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, path := range paths {
|
||||||
|
createWorkspaceDir(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 在 path 指定的路径下创建工作空间目录.
|
||||||
|
//
|
||||||
|
// 1. 根目录:{path}
|
||||||
|
// 2. 源码目录:{path}/src
|
||||||
|
// 3. 包目录:{path}/pkg
|
||||||
|
// 4. 可执行文件目录:{path}/bin
|
||||||
|
func createWorkspaceDir(path string) {
|
||||||
|
// {path}, workspace root
|
||||||
|
createDir(path)
|
||||||
|
|
||||||
|
// {path}/src
|
||||||
|
createDir(path + PathSeparator + "src")
|
||||||
|
|
||||||
|
// {path}/pkg
|
||||||
|
createDir(path + PathSeparator + "pkg")
|
||||||
|
|
||||||
|
// {path}/bin
|
||||||
|
createDir(path + PathSeparator + "bin")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 在 path 指定的路径下不存在目录或文件则创建目录.
|
||||||
|
func createDir(path string) {
|
||||||
|
if !isExist(path) {
|
||||||
|
if err := os.MkdirAll(path, 0775); nil != err {
|
||||||
|
glog.Error(err)
|
||||||
|
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
glog.V(7).Infof("Created a directory [%s]", path)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查文件或目录是否存在.
|
// 检查文件或目录是否存在.
|
||||||
|
|
Loading…
Reference in New Issue