Usage

Packmind CLI Tutorial

This tutorial will guide you through using the Packmind CLI to scan your codebase for best practice violations.

Getting Help

For complete command reference and options:

packmind-cli scan -h

Basic Usage

1. Scan Current Directory

packmind-cli scan .

Scans all files in the current directory and subdirectories.

2. Scan Specific Files

packmind-cli scan src/main.js,src/utils.js

Scans only the specified files (comma-separated).

3. Scan Specific Directories

packmind-cli scan src,test

Scans all files in the src and test directories.

Glob Patterns 🌟

Important: Always quote glob patterns to prevent shell expansion!

Basic Patterns

# Scan all TypeScript files
packmind-cli scan "**/*.ts"

# Scan all JavaScript and TypeScript files
packmind-cli scan "**/*.{js,ts}"

# Scan all test files
packmind-cli scan "**/*.{test,spec}.{js,ts}"

Directory-Based Patterns

# Scan all files in any "src" directory
packmind-cli scan "**/src/**"

# Scan all files in "components" directories
packmind-cli scan "**/components/**"

# Scan all files in nested utility directories
packmind-cli scan "**/utils/**"

File-Specific Patterns

# Find all package.json files
packmind-cli scan "**/package.json"

# Find all pom.xml files (Maven projects)
packmind-cli scan "**/pom.xml"

# Find all Docker files
packmind-cli scan "**/Dockerfile"

Combining Multiple Patterns

# Scan source code AND configuration files
packmind-cli scan "**/src/**,**/pom.xml"

# Scan multiple file types across the project
packmind-cli scan "**/*.{js,ts},**/*.{java,kt},**/pom.xml"

# Scan source and test directories
packmind-cli scan "**/src/**,**/test/**,**/*.spec.*"

Output Formats

Console Output (Default)

# Group results by files (default)
packmind-cli scan "**/src/**"

# Group results by practices
packmind-cli scan "**/src/**" --grouped practices

Export Results

# Export to SonarQube format
packmind-cli scan "**/src/**" \
  --formatters sonarqube \
  --output sonarqube-report.json

# Export to SARIF format (for GitHub, etc.)
packmind-cli scan "**/src/**" \
  --formatters sarif \
  --output sarif-report.json

# Multiple formats
packmind-cli scan "**/src/**" \
  --formatters console,sonarqube \
  --output analysis-report.json

Advanced Usage

Scanning Changed Files Only

# Scan only files changed in Git
packmind-cli scan --mode onlyChanged

# Scan only files in GitLab Merge Request
packmind-cli scan --gitlabMR true

Space Filtering

# Scan using practices from specific spaces only
packmind-cli scan "**/src/**" --spaces "JavaScript,React"

# Multiple spaces
packmind-cli scan "**/src/**" --spaces "Java,Spring Boot,Security"

Debugging

# Enable debug logging
packmind-cli scan "**/src/**" --log debug

# See detailed information about pattern matching
packmind-cli scan "**/src/**" --log debug | grep "Expanding\|matched"

Last updated

Was this helpful?