{"id":19078105,"url":"https://github.com/hendriks73/filemodificationnotifier","last_synced_at":"2025-08-01T08:38:48.053Z","repository":{"id":71014780,"uuid":"243093146","full_name":"hendriks73/FileModificationNotifier","owner":"hendriks73","description":null,"archived":false,"fork":false,"pushed_at":"2020-10-13T19:50:33.000Z","size":13,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T14:47:16.932Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hendriks73.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-02-25T20:14:06.000Z","updated_at":"2024-04-23T08:42:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"dc304013-565f-4844-ba27-81c36571b9eb","html_url":"https://github.com/hendriks73/FileModificationNotifier","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"a3f64fa2bf8af312134f2b6e776a1bac6573b326"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hendriks73/FileModificationNotifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2FFileModificationNotifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2FFileModificationNotifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2FFileModificationNotifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2FFileModificationNotifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hendriks73","download_url":"https://codeload.github.com/hendriks73/FileModificationNotifier/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hendriks73%2FFileModificationNotifier/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268192592,"owners_count":24210541,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-09T02:05:40.679Z","updated_at":"2025-08-01T08:38:48.004Z","avatar_url":"https://github.com/hendriks73.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# File Modification Notifier\n\nSimple service that allows observation of files below a root dir for\nchange, creation, and deletion.\n\n## Building\n\nThis service is meant for Java 11. Thus, to build (and run), you need to have\nJava 11 or later installed.\n\nIt can be built with [Maven](http://maven.apache.org) by executing:\n\n    mvn clean install\n\nYou will find the file `enlyze-1.0.0.jar` in the `target` subdirectory.\n\n## Running \n\n### Library\n\nTo use as library, follow these steps:\n\n```      \nimport...\n\nPath root = Paths.get(\"c:\\\\someRootDir\");\n// repo, needed to compute differences\nPath repo = Paths.get(\"c:\\\\someRepoDir\");\n\n// create service\nFileModificationNotifier notifier = new FileModificationNotifier(root, repo);\n\n// create observer\nFileModificationObserver observer = new FileModificationObserver() {\n    @Override\n    public void fileModified(final FileModificationEvent event) {\n        System.out.println(\"File \" + event.getFile()\n            + \" has been changed at \"\n            + event.getFileTime());\n        System.out.println(\"Here's the diff:\");\n        final String prettyDiff = event.getDiff().stream().reduce(\"\", (l1, l2) -\u003e l1 + l2 + \"\\n\");\n        System.out.println(prettyDiff);\n    }\n};    \n     \n// register observer\nnotifier.addObserver(root.resolve(\"someFile.txt\"), observer);\n\n[...]\n                \n// clean up, when not used anymore\nnotifier.stop();\n```       \n\nThe diff, marks each line as added (\u003e), deleted (\u003c) or identical (=).\n\n### Command Line\n\nTo use from the command line:\n\n```\njava -jar enlyze-1.0.0.jar ROOT FILE+ \n```\n\nYou must specify a root directory and at least one file to watch.\nMessages are logged to the console. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhendriks73%2Ffilemodificationnotifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhendriks73%2Ffilemodificationnotifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhendriks73%2Ffilemodificationnotifier/lists"}