{"id":50127447,"url":"https://github.com/zefir1990/gofis","last_synced_at":"2026-05-23T20:34:50.249Z","repository":{"id":332408523,"uuid":"1127448264","full_name":"zefir1990/gofis","owner":"zefir1990","description":"Gofis - Go file search CLI tool","archived":false,"fork":false,"pushed_at":"2026-01-04T09:34:06.000Z","size":57,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-21T21:20:28.477Z","etag":null,"topics":["cli","filesearch","go"],"latest_commit_sha":null,"homepage":"https://demensdeum.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zefir1990.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-03T22:49:03.000Z","updated_at":"2026-01-12T14:13:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zefir1990/gofis","commit_stats":null,"previous_names":["demensdeum/gofis","zefir1990/gofis"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/zefir1990/gofis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefir1990%2Fgofis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefir1990%2Fgofis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefir1990%2Fgofis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefir1990%2Fgofis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zefir1990","download_url":"https://codeload.github.com/zefir1990/gofis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefir1990%2Fgofis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33412082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","filesearch","go"],"created_at":"2026-05-23T20:34:49.770Z","updated_at":"2026-05-23T20:34:50.243Z","avatar_url":"https://github.com/zefir1990.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gofis - Go File Search CLI Tool\n\n![gofis logo](logo.jpg)\n\n**Gofis** is a lightweight, high-performance command-line utility built in Go for searching files across your system. It leverages Go's native concurrency model to walk directory trees rapidly, making it significantly faster than traditional single-threaded search tools.\n\n---\n\n### 🛠️ Features\n\n* **Concurrent Searching:** Uses a configurable pool of goroutines to scan multiple directories simultaneously.\n* **Smart Filtering:** Search by partial filenames, specific extensions, or both.\n* **Automatic Ignoring:** Defaults to skip heavy folders like `enode_modules`, `.git`, and `vendor` to save time.\n* **Human-Readable Output:** Displays file sizes in a formatted, easy-to-read way (KB, MB, GB, etc.).\n* **Flexible Interface:** Supports both traditional flags and shorthand positional arguments.\n\n---\n\n### 🛠️ Installation\n\nEnsure you have [Go](https://go.dev/doc/install) installed on your machine.\n\n```bash\ngit clone https://github.com/yourusername/gofis.git\ncd gofis\ngo build -o gofis main.go\n```\n\n---\n\n### 📖 Usage\n\nGofis provides two ways to search: using flags or using positional arguments.\n\n### 1. Using Flags (Recommended)\n```bash\n./gofis -n \"config\" -e \".yaml\" -p ./src\n```\n\n### 2. Positional Shorthand\n```bash\n./gofis \"filename\" \"searchPath\" [maxGoroutines]\n```\nExample: `./gofis \"main\" \"./projects\" 50`\n\n#### 3. Managing the Ignore List\nBy default, Gofis skips common metadata and dependency folders to increase speed (\"node_modules,.git,.svn,vendor\"). You can override this using the `-i` flag.\n\n* **To customize the list:**\n```bash\n  ./gofis -n \"main\" -i \"dist,temp,logs\"\n```\n  \n* **To disable the ignore list (Search ALL directories):**\n  Pass an empty string to the ignore flag.\n```bash\n  ./gofis -n \"target_file\" -i \"\"\n```\n\n---\n\n🔍 Regex Filename Search\n\nGofis treats the search term as a Regular Expression (case-insensitive by default). This allows for much more powerful queries than simple string matching.\n\n```bash\n.\\gofis.exe \"^.*\\.ini$\" \"D:\\\"\n```\nNote: When using special characters like |, *, or ( ) in your terminal, remember to wrap your search term in quotes (e.g., \"^data_.*\").\n\n### ⚙️ How it Works\n\nGofis uses a **Semaphore Pattern** to manage system resources. While it spawns a new goroutine for every subdirectory it encounters, it limits the number of active operations using a buffered channel (`sem`). This prevents the application from hitting \"too many open files\" errors or overwhelming the CPU.\n\n### Performance Logic\n* **WaitGroup:** Ensures the main process doesn't exit until all sub-directories have been fully scanned.\n* **Channels:** Streams results back to the main thread in real-time, allowing you to see matches immediately without waiting for the entire scan to finish.\n\n---\n\n### 📄 License\nThis project is open-source and available under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzefir1990%2Fgofis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzefir1990%2Fgofis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzefir1990%2Fgofis/lists"}