| | |
| | | "strconv" |
| | | "vamicro/config" |
| | | "vamicro/extend/util" |
| | | "vamicro/system-service/iwlist" |
| | | "vamicro/system-service/models" |
| | | sysVo "vamicro/system-service/vo" |
| | | |
| | |
| | | return info, err |
| | | } |
| | | |
| | | //获取网卡信息 |
| | | // 获取网卡信息 |
| | | func GetNetWorkCards() ([]sysVo.NetWorkCard, error) { |
| | | interfaces, err := net.Interfaces() |
| | | if nil != err { |
| | |
| | | return data, nil |
| | | } |
| | | |
| | | //修改IP发布消息 |
| | | // 修改IP发布消息 |
| | | func IpChangePublish(newIp string) bool { |
| | | //修改国标ip |
| | | tmpResourceConf := models.ResourceConfig{} |
| | |
| | | return false |
| | | } |
| | | |
| | | /** |
| | | /* |
| | | * |
| | | 更新配置 |
| | | @param serverName 服务名称 |
| | | @param newIp 服务Ip |
| | |
| | | return err == nil |
| | | } |
| | | |
| | | //设置语言 |
| | | // 设置语言 |
| | | func SetLang(lang string, language string) error { |
| | | // set env |
| | | envCMD := exec.Command("/bin/sh", "-c", "LANG=%s", lang) |
| | |
| | | return err |
| | | } |
| | | |
| | | //获取当前语言 |
| | | // 获取当前语言 |
| | | func GetLang() (string, error) { |
| | | content, err := execRootCommand("cat /etc/default/locale|grep LANG") |
| | | if nil == err { |
| | |
| | | return "", err |
| | | } |
| | | |
| | | //获取默认键盘布局 |
| | | // 获取默认键盘布局 |
| | | func GetDefKeyboard() (string, error) { |
| | | content, err := execRootCommand("cat /etc/default/keyboard|grep XKBLAYOUT") |
| | | if nil == err { |
| | |
| | | return "", err |
| | | } |
| | | |
| | | //获取键盘布局 |
| | | // 获取键盘布局 |
| | | func GetKeyboardLayouts() (map[string]string, []sysVo.KeyBoardLayout, error) { |
| | | output, err := execRootCommand("man -P cat xkeyboard-config") |
| | | if nil != err { |
| | |
| | | return keyBoardLayoutMap, keyBoardLayouts, nil |
| | | } |
| | | |
| | | //设置键盘布局 |
| | | // 设置键盘布局 |
| | | func SetKeyboardLayout(layout string) error { |
| | | cmdStr := fmt.Sprintf("sed -i 's/XKBLAYOUT=.*/XKBLAYOUT=\"%s\"/' /etc/default/keyboard", layout) |
| | | _, err := execRootCommand(cmdStr) |
| | |
| | | return err |
| | | } |
| | | |
| | | //关闭网络 |
| | | // 关闭网络 |
| | | func DownNetCard(networkAdapter string) error { |
| | | cmdStr := fmt.Sprintf("ip link set %s down", networkAdapter) |
| | | _, err := execRootCommand(cmdStr) |
| | |
| | | return err |
| | | } |
| | | |
| | | //开启网络 |
| | | // 开启网络 |
| | | func UpNetCard(networkAdapter string) error { |
| | | _, _, err := GetLocalIP(networkAdapter) |
| | | if err != nil { |
| | |
| | | return err |
| | | } |
| | | |
| | | //获取无线网卡 |
| | | // 获取无线网卡 |
| | | func GetIwDev() ([]string, error) { |
| | | content, err := execRootCommand("iw dev") |
| | | if nil == err { |
| | |
| | | return nil, errors.New("iw dev not found") |
| | | } |
| | | |
| | | //获取wifi网络 |
| | | func GetWifi(netcard string) ([]sysVo.WiFi, error) { |
| | | reg, err := regexp.Compile(`Quality=(\d+)/70[^\n]+\n\s+Encryption key:([^\n]+)\n\s+ESSID:\"([^\"]+)\"`) |
| | | if nil == err { |
| | | var wifiList = make([]sysVo.WiFi, 0) |
| | | info, err := execRootCommand(fmt.Sprintf("iwlist %s scan", netcard)) |
| | | if nil == err { |
| | | res := reg.FindAllStringSubmatch(string(info), -1) |
| | | for _, item := range res { |
| | | if len(item) >= 4 { |
| | | wifi := sysVo.WiFi{item[3], item[1], item[2]} |
| | | wifiList = append(wifiList, wifi) |
| | | } |
| | | } |
| | | return wifiList, nil |
| | | } |
| | | } |
| | | return nil, err |
| | | // 获取wifi网络 |
| | | func ScanWifiList(netcard string) ([]iwlist.Cell, error) { |
| | | return iwlist.Scan(netcard) |
| | | } |
| | | |
| | | //连接WIFI |
| | | func ConnectWifi(fname, passwd, ssid string) error { |
| | | content, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s add_network", fname)) |
| | | if nil != err { |
| | | // 连接WIFI |
| | | func ConnectWifi(fname, ssid, passwd string) error { |
| | | networkConfigScript := "/opt/vasystem/script/wlanconfig" |
| | | |
| | | // 检查文件是否存在 |
| | | if _, err := os.Stat(networkConfigScript); err != nil { |
| | | return err |
| | | } |
| | | newid := strings.TrimSpace(string(content)) |
| | | reg, err := regexp.Compile(`^(\d+)$`) |
| | | if nil == err { |
| | | b := reg.MatchString(newid) |
| | | if !b { |
| | | return errors.New("WIFI加入失败") |
| | | } |
| | | ret, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s ssid '\"%s\"'", fname, newid, ssid)) |
| | | if nil != err { |
| | | return err |
| | | } |
| | | if strings.TrimSpace(string(ret)) != "OK" { |
| | | return errors.New(string(ret)) |
| | | } |
| | | ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s psk '\"%s\"'", fname, newid, passwd)) |
| | | if nil != err { |
| | | return err |
| | | } |
| | | if strings.TrimSpace(string(ret)) != "OK" { |
| | | return errors.New(string(ret)) |
| | | } |
| | | ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s disconnect", fname)) |
| | | if nil != err { |
| | | return err |
| | | } |
| | | if strings.TrimSpace(string(ret)) != "OK" { |
| | | return errors.New(string(ret)) |
| | | } |
| | | ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s select_network %s", fname, newid)) |
| | | if nil != err { |
| | | return err |
| | | } |
| | | if strings.TrimSpace(string(ret)) != "OK" { |
| | | return errors.New(string(ret)) |
| | | } |
| | | _, err = execRootCommand(fmt.Sprintf("udhcpc -i %s -q -n", fname)) |
| | | if nil != err { |
| | | return errors.New("密码好像不对哦") |
| | | } |
| | | _, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s save_config", fname)) |
| | | return nil |
| | | } else { |
| | | return err |
| | | } |
| | | |
| | | // # wlanconfig wlan0 Basic Basic2019 |
| | | cmdStr := fmt.Sprintf("%s %s %s %s", networkConfigScript, fname, ssid, passwd) |
| | | _, err := execRootCommand(cmdStr) |
| | | |
| | | return err |
| | | |
| | | //content, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s add_network", fname)) |
| | | //if nil != err { |
| | | // return err |
| | | //} |
| | | //newid := strings.TrimSpace(string(content)) |
| | | //reg, err := regexp.Compile(`^(\d+)$`) |
| | | //if nil == err { |
| | | // b := reg.MatchString(newid) |
| | | // if !b { |
| | | // return errors.New("WIFI加入失败") |
| | | // } |
| | | // ret, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s ssid '\"%s\"'", fname, newid, ssid)) |
| | | // if nil != err { |
| | | // return err |
| | | // } |
| | | // if strings.TrimSpace(string(ret)) != "OK" { |
| | | // return errors.New(string(ret)) |
| | | // } |
| | | // ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s psk '\"%s\"'", fname, newid, passwd)) |
| | | // if nil != err { |
| | | // return err |
| | | // } |
| | | // if strings.TrimSpace(string(ret)) != "OK" { |
| | | // return errors.New(string(ret)) |
| | | // } |
| | | // ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s disconnect", fname)) |
| | | // if nil != err { |
| | | // return err |
| | | // } |
| | | // if strings.TrimSpace(string(ret)) != "OK" { |
| | | // return errors.New(string(ret)) |
| | | // } |
| | | // ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s select_network %s", fname, newid)) |
| | | // if nil != err { |
| | | // return err |
| | | // } |
| | | // if strings.TrimSpace(string(ret)) != "OK" { |
| | | // return errors.New(string(ret)) |
| | | // } |
| | | // _, err = execRootCommand(fmt.Sprintf("udhcpc -i %s -q -n", fname)) |
| | | // if nil != err { |
| | | // return errors.New("密码好像不对哦") |
| | | // } |
| | | // _, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s save_config", fname)) |
| | | // return nil |
| | | //} else { |
| | | // return err |
| | | //} |
| | | } |
| | | |
| | | func ExistService(name string) string { |
| | |
| | | return string(b) |
| | | } |
| | | |
| | | //配置mqtt |
| | | // 配置mqtt |
| | | func SetMqttConf(conf *sysVo.MqttConf) error { |
| | | etcPath := "/etc/mosquitto/mosquitto.conf" |
| | | pwfile := "/etc/mosquitto/pwfile" |