Use filepath package throughout for Windows support

The "path" package supports only forward slashes in paths, like those
found in *nix operating systems or URLs.

Meanwhile Windows with its CP/M and QDOS ancestry requires drive letters
and backslashes, and thus the "filepath" package needs to be used.
This commit is contained in:
Bert Jacobs 2021-09-11 14:01:23 +02:00
parent 72ff78498b
commit edb42a0e3b
5 changed files with 15 additions and 16 deletions

View File

@ -26,7 +26,7 @@ import (
"encoding/json"
"fmt"
"io/ioutil"
"path"
"path/filepath"
"github.com/naoina/toml"
"gopkg.in/yaml.v2"
@ -50,7 +50,7 @@ func newConfig(filename string) (*config, error) {
}
conf := &config{handled: make(map[string]bool)}
switch path.Ext(filename) {
switch filepath.Ext(filename) {
case ".json":
if err := json.Unmarshal(bytes, &conf); err != nil {
return nil, err

View File

@ -27,7 +27,7 @@ import (
"fmt"
"log"
"os"
"path"
"path/filepath"
"strings"
)
@ -43,7 +43,7 @@ const (
)
func usage() {
fmt.Fprintf(os.Stderr, "Usage: %s [options] conf src\n", path.Base(os.Args[0]))
fmt.Fprintf(os.Stderr, "Usage: %s [options] conf src\n", filepath.Base(os.Args[0]))
fmt.Fprintf(os.Stderr, "https://foosoft.net/projects/homemaker/\n\n")
fmt.Fprintf(os.Stderr, "Parameters:\n")
flag.PrintDefaults()

10
link.go
View File

@ -26,7 +26,7 @@ import (
"fmt"
"log"
"os"
"path"
"path/filepath"
"strconv"
)
@ -65,13 +65,13 @@ func processLink(params []string, conf *config) error {
}
srcPathAbs := srcPath
if !path.IsAbs(srcPathAbs) {
srcPathAbs = path.Join(conf.srcDir, srcPath)
if !filepath.IsAbs(srcPathAbs) {
srcPathAbs = filepath.Join(conf.srcDir, srcPath)
}
dstPathAbs := dstPath
if !path.IsAbs(dstPathAbs) {
dstPathAbs = path.Join(conf.dstDir, dstPath)
if !filepath.IsAbs(dstPathAbs) {
dstPathAbs = filepath.Join(conf.dstDir, dstPath)
}
if conf.flags&flagUnlink != flagUnlink {

View File

@ -26,7 +26,7 @@ import (
"fmt"
"log"
"os"
"path"
"path/filepath"
"strconv"
"strings"
"text/template"
@ -79,13 +79,13 @@ func processTemplate(params []string, conf *config) (err error) {
}
srcPathAbs := srcPath
if !path.IsAbs(srcPathAbs) {
srcPathAbs = path.Join(conf.srcDir, srcPath)
if !filepath.IsAbs(srcPathAbs) {
srcPathAbs = filepath.Join(conf.srcDir, srcPath)
}
dstPathAbs := dstPath
if !path.IsAbs(dstPathAbs) {
dstPathAbs = path.Join(conf.dstDir, dstPath)
if !filepath.IsAbs(dstPathAbs) {
dstPathAbs = filepath.Join(conf.dstDir, dstPath)
}
if _, err = os.Stat(srcPathAbs); os.IsNotExist(err) {

View File

@ -26,7 +26,6 @@ import (
"fmt"
"log"
"os"
"path"
"path/filepath"
"strings"
)
@ -78,7 +77,7 @@ func cleanPath(loc string, flags int) (bool, error) {
}
func createPath(loc string, flags int, mode os.FileMode) error {
parentDir := path.Dir(loc)
parentDir := filepath.Dir(loc)
if _, err := os.Stat(parentDir); os.IsNotExist(err) {
if flags&flagForce != 0 || prompt("force create path", parentDir) {