fix: resolves issues #3 and #4

This commit is contained in:
Sahilb315
2025-04-29 22:52:14 +05:30
parent 4f13dfbb40
commit cc0a6eddbc
5 changed files with 87 additions and 29 deletions
+6 -5
View File
@@ -1,7 +1,6 @@
package utils
import (
"fmt"
"os"
"os/exec"
)
@@ -10,8 +9,10 @@ func ExecCmd(name string, args, env []string) error {
cmd := exec.Command(name, args...)
cmd.Env = append(os.Environ(), env...)
if err := cmd.Run(); err != nil {
return fmt.Errorf("error running cmd %s: %s\n", name, err.Error())
}
return nil
// Connect to standard streams
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
return cmd.Run()
}
+37 -1
View File
@@ -1,6 +1,10 @@
package utils
import "os"
import (
"fmt"
"os"
"strings"
)
func ApiKey() string {
return os.Getenv("SAFEDEP_API_KEY")
@@ -13,3 +17,35 @@ func TenantDomain() string {
func NpmAuthToken() string {
return os.Getenv("NPM_AUTH_TOKEN")
}
func ValidateEnvVars() error {
apiKey := ApiKey()
tenantId := TenantDomain()
var missingVars []string
if apiKey == "" {
missingVars = append(missingVars, "SAFEDEP_API_KEY")
}
if tenantId == "" {
missingVars = append(missingVars, "SAFEDEP_TENANT_ID")
}
if len(missingVars) > 0 {
return fmt.Errorf(`
SafeDep configuration incomplete
Missing environment variables:
%s
To enable package scanning:
1. Export these variables in your terminal:
export %s=your_api_key
export %s=your_tenant_id
2. Or add them to your shell profile file
For more information, visit: https://docs.safedep.io/cloud/quickstart
`, strings.Join(missingVars, "\n "), missingVars[0], missingVars[len(missingVars)-1])
}
return nil
}
+19
View File
@@ -33,3 +33,22 @@ func ParsePackageInfo(input string) (packageName, version string, err error) {
return "", "", fmt.Errorf("invalid format: expected 'package' OR 'package@version', got '%s'", input)
}
func IsInstallCommand(pkgManager, cmd string) bool {
validActions := map[string]map[string]bool{
"npm": {
"install": true,
"i": true,
"add": true,
},
"pnpm": {
"install": true,
"i": true,
},
}
if actions, exists := validActions[pkgManager]; exists {
return actions[cmd]
}
return false
}