{"id":13507926,"url":"https://github.com/bbense/elixgrep","last_synced_at":"2026-04-19T12:05:31.354Z","repository":{"id":20290349,"uuid":"23563825","full_name":"bbense/elixgrep","owner":"bbense","description":"An elixir framework to implement concurrent versions of common unix utilities, grep, find, etc..","archived":false,"fork":false,"pushed_at":"2017-06-26T18:09:10.000Z","size":95,"stargazers_count":28,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-01T07:33:24.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://bbense.github.io/elixgrep/","language":"Elixir","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/bbense.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}},"created_at":"2014-09-02T03:31:18.000Z","updated_at":"2023-09-01T08:50:25.000Z","dependencies_parsed_at":"2022-09-05T21:00:18.980Z","dependency_job_id":null,"html_url":"https://github.com/bbense/elixgrep","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbense%2Felixgrep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbense%2Felixgrep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbense%2Felixgrep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbense%2Felixgrep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbense","download_url":"https://codeload.github.com/bbense/elixgrep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246301963,"owners_count":20755512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-01T02:00:43.383Z","updated_at":"2026-04-19T12:05:31.312Z","avatar_url":"https://github.com/bbense.png","language":"Elixir","funding_links":[],"categories":["Files and Directories"],"sub_categories":[],"readme":"Elixgrep\n========\n\n![alt text](https://api.travis-ci.org/bbense/elixgrep.png \"Travis CI build status\")\n\nA project to learn elixir by building a grep that will cause the fan on my laptop to\nturn on when it runs. It has since expanded to a general purpose program for running\na function on many files and returning the results. \n\nCurrently supports a simple string search in a list of files and directories. It will\nexpand to search all regular files in the subtree of any directory you give it. It\nalso has the ablity to load elixir code plugins to implement a general map/reduce \n(in the Hadoop sense). \n\n\n\nUsage\n=======\n```\n   Usage:\n        exilgrep [string] [files and/or directories]\n \n      Options:\n        -h, [--help]                # Show this help message and quit.\n        -c, [--count] filecount     # Number of files to search in parallel.\n                                    # Default is 512.\n        -p, [--plugin] elixir_code  # Basename of a plugin to implement \n                                    # other functions. \n \n      Description:\n        Prints all the lines in file containing string ( default) \n\n        Runs a version of map/reduce on the file list given on the command\n        line. Requires an elixir module that implements two functions. \n\n        gr_map(options,path) -\u003e {path,[]}\n        gr_reduce(options) Expects to recieve two kinds of messages \n                    { item: { path, []}}\n                    { finalize: } -\u003e Should output results and exit.\n```\n\nBuild\n=====\n\nRun `mix escript.build` to create the elixgrep executable. \n\nWARNING\n========\n\nThis program can easily drive the load on your machine to the number of availiable cores\nif you point it at a large enough set of files. If you do decide to use it on a production\nserver, use the count option to limit it's use of resources.\n\nPlugins\n========\n\nThere are currently two plugins available: \n\ngrep\n----\n     elixgrep -p grep [PCRE regexp] [files/directories]\n\nThis plugin will list out all the files and lines that \nmatch the regex, it only examines files one line per time\nso it won't match multiline regex.\n\nfind\n----\n\nThis plugin will search for files based on either their basename or \nFile.stat output.\n\n    elixgrep -p find [regex] [files/directories]\n\nWithout any attribute arguements, the plugin uses the given regex\nto match against the basename of the files. \n\n     elixgrep -p find --mtime target_file [verb] [files/directories]\n\nYou can use the keywords of the File.Stat structure as command line\narguments and it will search on that attribute. Currently it only \nsupports the time values `--atime, --ctime, --mtime`\n\nThe verbs you can use with the time stat options are:\n\n- `newer`   Find files newer than the target file.\n- `older`   Find files older than the target file.\n- `around`  Find files that are within `--delta seconds` of the target file. The default delta is 24 hours.   \n\n \n\nTo Do\n=====\n\nAdd other attributes/verbs to find plugin, Figure out how to use a \ndate string instead of target file in attributes. Add 1h30m type\nparsing to `--delta` option.ß\n\nExpand plugins to implement a tripwire, access monitoring, etc.. \n\nWork on creating a plugin path discovery mechanism.\n\nFigure out how plugins can implement plugin specific help.  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbense%2Felixgrep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbense%2Felixgrep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbense%2Felixgrep/lists"}