From 27629e76ca79a5c71e81a195fa035d127991dcaf Mon Sep 17 00:00:00 2001 From: Christian Kellermann Date: Tue, 5 May 2015 20:13:55 +0200 Subject: [PATCH] initial openbsd support added --- node_openbsd.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 node_openbsd.go diff --git a/node_openbsd.go b/node_openbsd.go new file mode 100644 index 000000000..99651b719 --- /dev/null +++ b/node_openbsd.go @@ -0,0 +1,36 @@ +package restic + +import ( + "os" + "syscall" + "time" +) + +func (node *Node) OpenForReading() (*os.File, error) { + file, err := os.OpenFile(node.path, os.O_RDONLY, 0) + if os.IsPermission(err) { + return os.OpenFile(node.path, os.O_RDONLY, 0) + } + return file, err +} + +func (node *Node) createDevAt(path string) error { + return syscall.Mknod(path, syscall.S_IFBLK|0600, int(node.Device)) +} + +func (node *Node) createCharDevAt(path string) error { + return syscall.Mknod(path, syscall.S_IFCHR|0600, int(node.Device)) +} + +func (node *Node) createFifoAt(path string) error { + return syscall.Mkfifo(path, 0600) +} + +func (node *Node) fillTimes(stat *syscall.Stat_t) { + node.ChangeTime = time.Unix(stat.Ctim.Unix()) + node.AccessTime = time.Unix(stat.Atim.Unix()) +} + +func changeTime(stat *syscall.Stat_t) time.Time { + return time.Unix(stat.Ctim.Unix()) +}