New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

github.com/chen-keinan/go-command-eval

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/chen-keinan/go-command-eval

  • v0.0.14
  • Source
  • Go
  • Socket score

Version published
Created
Source

Go Report Card License test coverage badge Gitter


cmd_eval logo

go-command-eval

Go-command-eval is an open source lib who evaluate shell command results against eval expr.

Installation

go get github.com/chen-keinan/go-command-eval

Usage

one shell command with single result evaluated against eval expression

create shell command which return one result

shellCommands:=[]string{"ls /etc/hosts | awk -F \" \" '{print $1}' |awk 'FNR <= 1'"}

evaluate command result with eval expression ( ${0} is the result from 1st shell command)

evalExpr := "'${0}' == '/etc/hosts'"

two shell commands with single result each evaluated with eval expression

create two shell commands with one result for each

shellCommands := []string{"ls /etc/hosts | awk -F \" \" '{print $1}' |awk 'FNR <= 1'",
                    "ls /etc/group | awk -F \" \" '{print $1}' |awk 'FNR <= 1'"}

evaluate each command result with eval expression

evalExpr := "'${0}' == '/etc/hosts'; && '${1}' == '/etc/group';"

shell command return two results evaluated with IN Clause eval expression

create shell command with return two results

shellCommands := []string{"ls /etc | awk -F \" \" '{print $1}' |awk 'FNR <= 2'"}

evaluate command result with IN Clause eval expression

evalExpr := "'${0}' IN ('afpovertcp.cfg','aliases')"

shell command result passed as an arg to the following shell command; both results are evaluated against eval expression

create tow shell commands 1st command result passed as an arg to the following shell command

shellCommands := []string{"ls /etc/hosts | awk -F " " '{print $1}' |awk 'FNR <= 1'",
                    "stat -f %A" ${0}}

both results are evaluated against eval expression 1st result is evaluated as string 2nd result is evaluated as an Integer

evalExpr := "'${0}' == '/etc/hosts'; && ${1} <= 766"

Full code example

package main

import (
	"fmt"
	"github.com/chen-keinan/go-command-eval/eval"
)

func main() {
	shellCommands := []string{"ls /etc/hosts | awk -F \" \" '{print $1}' |awk 'FNR <= 1'",
		"ls /etc/group | awk -F \" \" '{print $1}' |awk 'FNR <= 1'"}

	evalExpr := "'${0}' == '/etc/hosts'; && '${1}' == '/etc/group';"
	cmdEvalResult := eval.NewEvalCmd().EvalCommand(shellCommands, evalExpr)
	if cmdEvalResult.Match {
		fmt.Print("commmand result match eval expression")
	}
}

Contribution

code contribution is welcome !! contribution with passing tests and linter is more than welcome :)

FAQs

Package last updated on 26 Oct 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc