| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- package main
 
- import (
 
- 	"fmt"
 
- 	"log"
 
- 	"os/exec"
 
- 	"github.com/blang/semver"
 
- 	"github.com/fatih/color"
 
- 	"github.com/pbnjay/memory"
 
- )
 
- const nodejsSemverRange = ">=8.11.4 <11.0.0"
 
- const ramMin = 768
 
- // CheckNodeJs checks if Node.js is installed and has minimal supported version
 
- func CheckNodeJs() bool {
 
- 	cmd := exec.Command("node", "-v")
 
- 	cmdOutput, err := cmd.CombinedOutput()
 
- 	if err != nil {
 
- 		log.Fatal(err)
 
- 	}
 
- 	validRange := semver.MustParseRange(nodejsSemverRange)
 
- 	nodeVersion, err := semver.ParseTolerant(string(cmdOutput[:]))
 
- 	if !validRange(nodeVersion) {
 
- 		panic(fmt.Errorf(color.RedString("Error: Installed Node.js version %s is not supported! %s\n"), nodeVersion, nodejsSemverRange))
 
- 	}
 
- 	fmt.Printf(color.GreenString("✔")+" Node.js %s: OK\n", nodeVersion.String())
 
- 	return true
 
- }
 
- // CheckRAM checks if system total RAM meets requirements
 
- func CheckRAM() bool {
 
- 	var totalRAM = memory.TotalMemory() / 1024 / 1024
 
- 	if totalRAM < ramMin {
 
- 		panic(fmt.Errorf(color.RedString("Error: System does not meet RAM requirements. %s MB minimum.\n"), ramMin))
 
- 	}
 
- 	fmt.Printf(color.GreenString("✔")+" Total System RAM %d MB: OK\n", totalRAM)
 
- 	return true
 
- }
 
- // CheckNetworkAccess checks if download server can be reached
 
- func CheckNetworkAccess() bool {
 
- 	// TODO
 
- 	return true
 
- }
 
 
  |