mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.3 KiB
100 lines
2.3 KiB
// Copyright 2013 gopm authors. |
|
// |
|
// Licensed under the Apache License, Version 2.0 (the "License"): you may |
|
// not use this file except in compliance with the License. You may obtain |
|
// a copy of the License at |
|
// |
|
// http://www.apache.org/licenses/LICENSE-2.0 |
|
// |
|
// Unless required by applicable law or agreed to in writing, software |
|
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
|
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
|
// License for the specific language governing permissions and limitations |
|
// under the License. |
|
|
|
package doc |
|
|
|
import ( |
|
"os" |
|
"strings" |
|
|
|
"github.com/Unknwon/com" |
|
"github.com/Unknwon/goconfig" |
|
|
|
"github.com/gpmgo/gopm/log" |
|
) |
|
|
|
const ( |
|
GopmFileName = ".gopmfile" |
|
RawHomeDir = "~/.gopm" |
|
) |
|
|
|
var ( |
|
HomeDir = "~/.gopm" |
|
LocalNodesFile = "/data/localnodes.list" |
|
LocalNodes *goconfig.ConfigFile |
|
) |
|
|
|
func init() { |
|
hd, err := com.HomeDir() |
|
if err != nil { |
|
log.Error("", "Fail to get current user") |
|
log.Fatal("", err.Error()) |
|
} |
|
|
|
HomeDir = strings.Replace(RawHomeDir, "~", hd, -1) |
|
} |
|
|
|
func NewGopmfile(dirPath string) *goconfig.ConfigFile { |
|
gf, err := goconfig.LoadConfigFile(dirPath + "/" + GopmFileName) |
|
if err != nil { |
|
log.Error("", "Fail to load gopmfile") |
|
log.Fatal("", err.Error()) |
|
} |
|
return gf |
|
} |
|
|
|
var PackageNameList map[string]string |
|
|
|
func LoadPkgNameList(filePath string) { |
|
PackageNameList = make(map[string]string) |
|
|
|
// If file does not exist, simply ignore. |
|
if !com.IsFile(filePath) { |
|
return |
|
} |
|
|
|
data, err := com.ReadFile(filePath) |
|
if err != nil { |
|
log.Error("Package name list", "Fail to read file") |
|
log.Fatal("", err.Error()) |
|
} |
|
|
|
pkgs := strings.Split(string(data), "\n") |
|
for _, line := range pkgs { |
|
infos := strings.Split(line, "=") |
|
if len(infos) != 2 { |
|
log.Error("", "Fail to parse package name: "+line) |
|
log.Fatal("", "Invalid package name information") |
|
} |
|
PackageNameList[strings.TrimSpace(infos[0])] = |
|
strings.TrimSpace(infos[1]) |
|
} |
|
} |
|
|
|
func LoadLocalNodes() { |
|
if !com.IsDir(HomeDir + "/data") { |
|
os.MkdirAll(HomeDir+"/data", os.ModePerm) |
|
} |
|
|
|
if !com.IsFile(HomeDir + LocalNodesFile) { |
|
os.Create(HomeDir + LocalNodesFile) |
|
} |
|
|
|
var err error |
|
LocalNodes, err = goconfig.LoadConfigFile(HomeDir + LocalNodesFile) |
|
if err != nil { |
|
log.Error("Load node", "Fail to load localnodes.list") |
|
log.Fatal("", err.Error()) |
|
} |
|
}
|
|
|