scanner

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package scanner scans source code for environment variable references.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeduplicateByName

func DeduplicateByName(refs []EnvReference) []string

DeduplicateByName returns unique var names while keeping all references.

Types

type DockerScanner

type DockerScanner struct{}

DockerScanner scans Dockerfiles and docker-compose files for env var usage.

func (*DockerScanner) Extensions

func (d *DockerScanner) Extensions() []string

Extensions returns Docker-related file extensions.

func (*DockerScanner) Language

func (d *DockerScanner) Language() string

Language returns the language name.

func (*DockerScanner) ScanLine

func (d *DockerScanner) ScanLine(line string) []string

ScanLine scans a line for Docker env var references.

type EnvReference

type EnvReference struct {
	VarName  string
	FilePath string
	Line     int
	Language string
}

EnvReference represents an environment variable reference found in source code.

type GoScanner

type GoScanner struct{}

GoScanner scans Go files for env var usage.

func (*GoScanner) Extensions

func (g *GoScanner) Extensions() []string

Extensions returns Go file extensions.

func (*GoScanner) Language

func (g *GoScanner) Language() string

Language returns the language name.

func (*GoScanner) ScanLine

func (g *GoScanner) ScanLine(line string) []string

ScanLine scans a line for Go env var references.

type JavaScriptScanner

type JavaScriptScanner struct{}

JavaScriptScanner scans JavaScript and TypeScript files for env var usage.

func (*JavaScriptScanner) Extensions

func (j *JavaScriptScanner) Extensions() []string

Extensions returns JS/TS file extensions.

func (*JavaScriptScanner) Language

func (j *JavaScriptScanner) Language() string

Language returns the language name.

func (*JavaScriptScanner) ScanLine

func (j *JavaScriptScanner) ScanLine(line string) []string

ScanLine scans a line for JS/TS env var references.

type LanguageScanner

type LanguageScanner interface {
	// Extensions returns file extensions this scanner handles (e.g., ".js", ".ts").
	Extensions() []string
	// ScanLine scans a single line for env var references.
	ScanLine(line string) []string
	// Language returns the language name.
	Language() string
}

LanguageScanner defines the interface for language-specific scanners.

type PythonScanner

type PythonScanner struct{}

PythonScanner scans Python files for env var usage.

func (*PythonScanner) Extensions

func (p *PythonScanner) Extensions() []string

Extensions returns Python file extensions.

func (*PythonScanner) Language

func (p *PythonScanner) Language() string

Language returns the language name.

func (*PythonScanner) ScanLine

func (p *PythonScanner) ScanLine(line string) []string

ScanLine scans a line for Python env var references.

type RustScanner

type RustScanner struct{}

RustScanner scans Rust files for env var usage.

func (*RustScanner) Extensions

func (r *RustScanner) Extensions() []string

Extensions returns Rust file extensions.

func (*RustScanner) Language

func (r *RustScanner) Language() string

Language returns the language name.

func (*RustScanner) ScanLine

func (r *RustScanner) ScanLine(line string) []string

ScanLine scans a line for Rust env var references.

type Scanner

type Scanner struct {
	// contains filtered or unexported fields
}

Scanner orchestrates scanning across multiple languages.

func New

func New(ignorePatterns []string) *Scanner

New creates a new Scanner with all built-in language scanners.

func NewWithLanguages

func NewWithLanguages(ignorePatterns []string, languages []string) *Scanner

NewWithLanguages creates a scanner filtered to specific languages.

func (*Scanner) Scan

func (s *Scanner) Scan(root string) ([]EnvReference, error)

Scan walks the directory tree and finds all env var references.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL