Use filepath.Join() for adding paths together

This commit is contained in:
morganamilo 2018-04-17 01:32:31 +01:00
parent bab050a354
commit 110a905a0c
No known key found for this signature in database
GPG key ID: 6FE9E7996B0B082E
6 changed files with 27 additions and 27 deletions

View file

@ -68,9 +68,9 @@ func complete(shell string) error {
var path string var path string
if shell == "fish" { if shell == "fish" {
path = completionFile + "fish" + ".cache" path = filepath.Join(completionFile, "fish"+".cache")
} else { } else {
path = completionFile + "sh" + ".cache" path = filepath.Join(completionFile, "sh"+".cache")
} }
info, err := os.Stat(path) info, err := os.Stat(path)

View file

@ -132,7 +132,7 @@ func (config *Configuration) saveConfig() error {
} }
func defaultSettings(config *Configuration) { func defaultSettings(config *Configuration) {
config.BuildDir = cacheHome + "/" config.BuildDir = cacheHome
config.CleanAfter = false config.CleanAfter = false
config.Editor = "" config.Editor = ""
config.EditorFlags = "" config.EditorFlags = ""

View file

@ -89,7 +89,7 @@ func downloadAndUnpack(url string, path string, trim bool) (err error) {
tokens := strings.Split(url, "/") tokens := strings.Split(url, "/")
fileName := tokens[len(tokens)-1] fileName := tokens[len(tokens)-1]
tarLocation := path + fileName tarLocation := filepath.Join(path, fileName)
defer os.Remove(tarLocation) defer os.Remove(tarLocation)
err = downloadFile(tarLocation, url) err = downloadFile(tarLocation, url)
@ -117,7 +117,6 @@ func getPkgbuilds(pkgs []string) error {
if err != nil { if err != nil {
return err return err
} }
wd = wd + "/"
missing, err := getPkgbuildsfromABS(pkgs, wd) missing, err := getPkgbuildsfromABS(pkgs, wd)
if err != nil { if err != nil {

View file

@ -344,7 +344,7 @@ func cleanEditNumberMenu(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, installed
toEdit := make([]*rpc.Pkg, 0) toEdit := make([]*rpc.Pkg, 0)
for n, pkg := range pkgs { for n, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
toPrint += fmt.Sprintf(magenta("%3d")+" %-40s", len(pkgs)-n, toPrint += fmt.Sprintf(magenta("%3d")+" %-40s", len(pkgs)-n,
bold(formatPkgbase(pkg, bases))) bold(formatPkgbase(pkg, bases)))
@ -380,7 +380,7 @@ func cleanEditNumberMenu(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, installed
if !cOtherInclude.get("n") && !cOtherInclude.get("none") { if !cOtherInclude.get("n") && !cOtherInclude.get("none") {
for i, pkg := range pkgs { for i, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
if _, err := os.Stat(dir); os.IsNotExist(err) { if _, err := os.Stat(dir); os.IsNotExist(err) {
continue continue
} }
@ -470,7 +470,7 @@ func cleanEditNumberMenu(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, installed
func cleanBuilds(pkgs []*rpc.Pkg) { func cleanBuilds(pkgs []*rpc.Pkg) {
for i, pkg := range pkgs { for i, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase dir := filepath.Join(config.BuildDir, pkg.PackageBase)
fmt.Printf(bold(cyan("::")+" Deleting (%d/%d): %s\n"), i+1, len(pkgs), cyan(dir)) fmt.Printf(bold(cyan("::")+" Deleting (%d/%d): %s\n"), i+1, len(pkgs), cyan(dir))
os.RemoveAll(dir) os.RemoveAll(dir)
} }
@ -479,8 +479,8 @@ func cleanBuilds(pkgs []*rpc.Pkg) {
func editPkgBuilds(pkgs []*rpc.Pkg) error { func editPkgBuilds(pkgs []*rpc.Pkg) error {
pkgbuilds := make([]string, 0, len(pkgs)) pkgbuilds := make([]string, 0, len(pkgs))
for _, pkg := range pkgs { for _, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
pkgbuilds = append(pkgbuilds, dir+"PKGBUILD") pkgbuilds = append(pkgbuilds, filepath.Join(dir, "PKGBUILD"))
} }
editor, editorArgs := editor() editor, editorArgs := editor()
@ -497,12 +497,12 @@ func editPkgBuilds(pkgs []*rpc.Pkg) error {
func parseSRCINFOFiles(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bases map[string][]*rpc.Pkg) error { func parseSRCINFOFiles(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bases map[string][]*rpc.Pkg) error {
for k, pkg := range pkgs { for k, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
str := bold(cyan("::") + " Parsing SRCINFO (%d/%d): %s\n") str := bold(cyan("::") + " Parsing SRCINFO (%d/%d): %s\n")
fmt.Printf(str, k+1, len(pkgs), cyan(formatPkgbase(pkg, bases))) fmt.Printf(str, k+1, len(pkgs), cyan(formatPkgbase(pkg, bases)))
pkgbuild, err := gopkg.ParseSRCINFO(dir + ".SRCINFO") pkgbuild, err := gopkg.ParseSRCINFO(filepath.Join(dir, ".SRCINFO"))
if err != nil { if err != nil {
return fmt.Errorf("%s: %s", pkg.Name, err) return fmt.Errorf("%s: %s", pkg.Name, err)
} }
@ -515,12 +515,12 @@ func parseSRCINFOFiles(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bas
func tryParsesrcinfosFile(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bases map[string][]*rpc.Pkg) { func tryParsesrcinfosFile(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bases map[string][]*rpc.Pkg) {
for k, pkg := range pkgs { for k, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
str := bold(cyan("::") + " Parsing SRCINFO (%d/%d): %s\n") str := bold(cyan("::") + " Parsing SRCINFO (%d/%d): %s\n")
fmt.Printf(str, k+1, len(pkgs), cyan(formatPkgbase(pkg, bases))) fmt.Printf(str, k+1, len(pkgs), cyan(formatPkgbase(pkg, bases)))
pkgbuild, err := gopkg.ParseSRCINFO(dir + ".SRCINFO") pkgbuild, err := gopkg.ParseSRCINFO(filepath.Join(dir, ".SRCINFO"))
if err != nil { if err != nil {
fmt.Printf("cannot parse %s skipping: %s\n", pkg.Name, err) fmt.Printf("cannot parse %s skipping: %s\n", pkg.Name, err)
continue continue
@ -533,7 +533,7 @@ func tryParsesrcinfosFile(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD,
func downloadPkgBuilds(pkgs []*rpc.Pkg, targets stringSet, bases map[string][]*rpc.Pkg) error { func downloadPkgBuilds(pkgs []*rpc.Pkg, targets stringSet, bases map[string][]*rpc.Pkg) error {
for k, pkg := range pkgs { for k, pkg := range pkgs {
if config.ReDownload == "no" || (config.ReDownload == "yes" && !targets.get(pkg.Name)) { if config.ReDownload == "no" || (config.ReDownload == "yes" && !targets.get(pkg.Name)) {
dir := config.BuildDir + pkg.PackageBase + "/.SRCINFO" dir := filepath.Join(config.BuildDir, pkg.PackageBase, ".SRCINFO")
pkgbuild, err := gopkg.ParseSRCINFO(dir) pkgbuild, err := gopkg.ParseSRCINFO(dir)
if err == nil { if err == nil {
@ -568,7 +568,7 @@ func downloadPkgBuilds(pkgs []*rpc.Pkg, targets stringSet, bases map[string][]*r
func downloadPkgBuildsSources(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, incompatable stringSet) (err error) { func downloadPkgBuildsSources(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, incompatable stringSet) (err error) {
for _, pkg := range pkgs { for _, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
args := []string{"--verifysource", "-Ccf"} args := []string{"--verifysource", "-Ccf"}
if incompatable.get(pkg.PackageBase) { if incompatable.get(pkg.PackageBase) {
@ -591,7 +591,7 @@ func buildInstallPkgBuilds(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD,
} }
for _, pkg := range pkgs { for _, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
built := true built := true
srcinfo := srcinfos[pkg.PackageBase] srcinfo := srcinfos[pkg.PackageBase]
@ -719,7 +719,7 @@ func buildInstallPkgBuilds(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD,
func clean(pkgs []*rpc.Pkg) { func clean(pkgs []*rpc.Pkg) {
for _, pkg := range pkgs { for _, pkg := range pkgs {
dir := config.BuildDir + pkg.PackageBase + "/" dir := filepath.Join(config.BuildDir, pkg.PackageBase)
fmt.Println(bold(green(arrow + fmt.Println(bold(green(arrow +
" CleanAfter enabled. Deleting " + pkg.Name + " source folder."))) " CleanAfter enabled. Deleting " + pkg.Name + " source folder.")))

16
main.go
View file

@ -15,25 +15,25 @@ func initPaths() {
if info, err := os.Stat(configHome); err == nil && info.IsDir() { if info, err := os.Stat(configHome); err == nil && info.IsDir() {
configHome = configHome + "/yay" configHome = configHome + "/yay"
} else { } else {
configHome = os.Getenv("HOME") + "/.config/yay" configHome = filepath.Join(os.Getenv("HOME"), ".config/yay")
} }
} else { } else {
configHome = os.Getenv("HOME") + "/.config/yay" configHome = filepath.Join(os.Getenv("HOME"), ".config/yay")
} }
if cacheHome = os.Getenv("XDG_CACHE_HOME"); cacheHome != "" { if cacheHome = os.Getenv("XDG_CACHE_HOME"); cacheHome != "" {
if info, err := os.Stat(cacheHome); err == nil && info.IsDir() { if info, err := os.Stat(cacheHome); err == nil && info.IsDir() {
cacheHome = cacheHome + "/yay" cacheHome = filepath.Join(cacheHome, "yay")
} else { } else {
cacheHome = os.Getenv("HOME") + "/.cache/yay" cacheHome = filepath.Join(os.Getenv("HOME"), ".cache/yay")
} }
} else { } else {
cacheHome = os.Getenv("HOME") + "/.cache/yay" cacheHome = filepath.Join(os.Getenv("HOME"), "/.cache/yay")
} }
configFile = configHome + "/" + configFileName configFile = filepath.Join(configHome, configFileName)
vcsFile = cacheHome + "/" + vcsFileName vcsFile = filepath.Join(cacheHome, vcsFileName)
completionFile = cacheHome + "/" + completionFilePrefix completionFile = filepath.Join(cacheHome, completionFilePrefix)
} }
func initConfig() (err error) { func initConfig() (err error) {

View file

@ -2,6 +2,7 @@ package main
import ( import (
"io/ioutil" "io/ioutil"
"path/filepath"
"strings" "strings"
"unicode" "unicode"
) )
@ -76,7 +77,7 @@ func completeFileName(dir, name string) (string, error) {
} }
if strings.HasPrefix(file.Name(), name) { if strings.HasPrefix(file.Name(), name) {
return dir + file.Name(), nil return filepath.Join(dir, file.Name()), nil
} }
} }