initial commit
This commit is contained in:
commit
85d50ee958
26 files changed
+2146
No files matched your search
@@ -0,0 +1,45 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func MountStatus(w http.ResponseWriter, req *http.Request) {
|
||||
var MOUNT_POINT = os.Getenv("MOUNT_POINT")
|
||||
var DEVICE = os.Getenv("DEVICE")
|
||||
mounted := false
|
||||
|
||||
// Проверяем, смонтировано ли устройство, читая /proc/mounts
|
||||
f, err := os.Open("/proc/mounts")
|
||||
if err == nil {
|
||||
defer f.Close()
|
||||
scanner := bufio.NewScanner(f)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
if strings.Contains(line, MOUNT_POINT) {
|
||||
mounted = true
|
||||
break
|
||||
}
|
||||
}
|
||||
// Ошибки сканера игнорируем (аналогично C‑версии)
|
||||
}
|
||||
|
||||
// Формируем JSON‑ответ
|
||||
response := map[string]interface{}{
|
||||
"mounted": mounted,
|
||||
"mount_point": MOUNT_POINT,
|
||||
"device": DEVICE,
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
// json.NewEncoder автоматически добавляет символ новой строки в конце,
|
||||
// что соответствует формату "%s\n" в C.
|
||||
if err := json.NewEncoder(w).Encode(response); err != nil {
|
||||
// В случае ошибки кодирования уже ничего не сделать,
|
||||
// можно только залогировать (здесь опущено для краткости)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user