Pull request: all: mv IsOpenWrt
Updates #2829. Squashed commit of the following: commit a284a26ba5df101c78e6f866d1bdfa540d205666 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Apr 8 20:34:20 2021 +0300 aghos: fix darwin commit 9dbd42d75ebb048c83dbd06a1f09d950b3d12181 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Apr 8 20:11:56 2021 +0300 all: mv IsOpenWrt
This commit is contained in:
@@ -3,7 +3,11 @@
|
||||
package aghos
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
@@ -37,3 +41,41 @@ func haveAdminRights() (bool, error) {
|
||||
func sendProcessSignal(pid int, sig syscall.Signal) error {
|
||||
return syscall.Kill(pid, sig)
|
||||
}
|
||||
|
||||
func isOpenWrt() (ok bool) {
|
||||
const etcDir = "/etc"
|
||||
|
||||
// TODO(e.burkov): Take care of dealing with fs package after updating
|
||||
// Go version to 1.16.
|
||||
fileInfos, err := ioutil.ReadDir(etcDir)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// fNameSubstr is a part of a name of the desired file.
|
||||
const fNameSubstr = "release"
|
||||
osNameData := []byte("OpenWrt")
|
||||
|
||||
for _, fileInfo := range fileInfos {
|
||||
if fileInfo.IsDir() {
|
||||
continue
|
||||
}
|
||||
|
||||
fn := fileInfo.Name()
|
||||
if !strings.Contains(fn, fNameSubstr) {
|
||||
continue
|
||||
}
|
||||
|
||||
var body []byte
|
||||
body, err = ioutil.ReadFile(filepath.Join(etcDir, fn))
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if bytes.Contains(body, osNameData) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user