From 078790bd0f10bd31db12f6057f68675bd96cb17b Mon Sep 17 00:00:00 2001 From: Tobias Nygren Date: Thu, 5 Feb 2015 20:29:27 +0100 Subject: [PATCH] Implement memorySize() for NetBSD --- AUTHORS | 1 + cmd/syncthing/memsize_netbsd.go | 40 +++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 cmd/syncthing/memsize_netbsd.go diff --git a/AUTHORS b/AUTHORS index dc21e702e..ad0066bd6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -36,6 +36,7 @@ Piotr Bejda Ryan Sullivan Stefan Tatschner Tim Abell +Tobias Nygren Tomas Cerveny Tully Robinson Veeti Paananen diff --git a/cmd/syncthing/memsize_netbsd.go b/cmd/syncthing/memsize_netbsd.go new file mode 100644 index 000000000..0aab95dbc --- /dev/null +++ b/cmd/syncthing/memsize_netbsd.go @@ -0,0 +1,40 @@ +// Copyright (C) 2014 The Syncthing Authors. +// +// This program is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation, either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along +// with this program. If not, see . + +package main + +import ( + "errors" + "os/exec" + "strconv" + "strings" +) + +func memorySize() (int64, error) { + cmd := exec.Command("/sbin/sysctl", "hw.physmem64") + out, err := cmd.Output() + if err != nil { + return 0, err + } + fs := strings.Fields(string(out)) + if len(fs) != 3 { + return 0, errors.New("sysctl parse error") + } + bytes, err := strconv.ParseInt(fs[2], 10, 64) + if err != nil { + return 0, err + } + return bytes, nil +}