Skip to content

Commit

Permalink
Make fast-archiver build on Windows
Browse files Browse the repository at this point in the history
partially functional; file modes and owners are not preserved
  • Loading branch information
repl-mathieu-fenniak committed Sep 4, 2012
1 parent 860b1dc commit 6b8e030
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitattributes
@@ -0,0 +1 @@
* -text
1 change: 1 addition & 0 deletions .gitignore
@@ -1,3 +1,4 @@
fast-archiver
fast-archiver.exe
*.swp
*.swo
21 changes: 0 additions & 21 deletions falib/archiver.go
Expand Up @@ -10,7 +10,6 @@ import (
"path/filepath"
"strings"
"sync"
"syscall"
)

type Archiver struct {
Expand Down Expand Up @@ -149,26 +148,6 @@ func (a *Archiver) directoryScanner() {
}
}

func (a *Archiver) getModeOwnership(file *os.File) (int, int, os.FileMode) {
var uid int = 0
var gid int = 0
var mode os.FileMode = 0
fi, err := file.Stat()
if err != nil {
a.Logger.Warning("file stat error; uid/gid/mode will be incorrect:", err.Error())
} else {
mode = fi.Mode()
stat_t := fi.Sys().(*syscall.Stat_t)
if stat_t != nil {
uid = int(stat_t.Uid)
gid = int(stat_t.Gid)
} else {
a.Logger.Warning("unable to find file uid/gid")
}
}
return uid, gid, mode
}

func (a *Archiver) fileReader() {
for filePath := range a.fileReadQueue {
a.Logger.Verbose(filePath)
Expand Down
26 changes: 26 additions & 0 deletions falib/util_linux.go
@@ -0,0 +1,26 @@
package falib

import (
"os"
"syscall"
)

func (a *Archiver) getModeOwnership(file *os.File) (int, int, os.FileMode) {
var uid int = 0
var gid int = 0
var mode os.FileMode = 0
fi, err := file.Stat()
if err != nil {
a.Logger.Warning("file stat error; uid/gid/mode will be incorrect:", err.Error())
} else {
mode = fi.Mode()
stat_t := fi.Sys().(*syscall.Stat_t)
if stat_t != nil {
uid = int(stat_t.Uid)
gid = int(stat_t.Gid)
} else {
a.Logger.Warning("unable to find file uid/gid")
}
}
return uid, gid, mode
}
13 changes: 13 additions & 0 deletions falib/util_windows.go
@@ -0,0 +1,13 @@
package falib

import "os"

func (a *Archiver) getModeOwnership(file *os.File) (uid int, gid int, mode os.FileMode) {
fi, err := file.Stat()
if err != nil {
a.Logger.Warning("file stat error; uid/gid/mode will be incorrect:", err.Error())
} else {
mode = fi.Mode()
}
return
}

0 comments on commit 6b8e030

Please sign in to comment.