{"id":20804404,"url":"https://github.com/sequencemedia/watch-match","last_synced_at":"2026-01-04T08:39:19.474Z","repository":{"id":37755490,"uuid":"442465697","full_name":"sequencemedia/watch-match","owner":"sequencemedia","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-23T04:35:39.000Z","size":2876,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-05-23T09:15:12.071Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/sequencemedia.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":"2021-12-28T13:04:08.000Z","updated_at":"2024-05-28T07:36:29.029Z","dependencies_parsed_at":"2023-12-11T07:40:55.778Z","dependency_job_id":"8c52a001-2862-4ca0-9c6e-eee2aa9c29f3","html_url":"https://github.com/sequencemedia/watch-match","commit_stats":{"total_commits":767,"total_committers":4,"mean_commits":191.75,"dds":"0.016949152542372836","last_synced_commit":"639d6f20b6253a50cd6470cf6806684075b2ec19"},"previous_names":[],"tags_count":534,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sequencemedia%2Fwatch-match","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sequencemedia%2Fwatch-match/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sequencemedia%2Fwatch-match/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sequencemedia%2Fwatch-match/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sequencemedia","download_url":"https://codeload.github.com/sequencemedia/watch-match/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244795519,"owners_count":20511521,"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-11-17T19:09:12.494Z","updated_at":"2026-01-04T08:39:19.470Z","avatar_url":"https://github.com/sequencemedia.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @sequencemedia/watch-match\n\nWatch a file system directory path and replace a _string pattern_ in its files whenever a file is added or modified\n\nFrom the command line\n\n```shell\nnpm start -- \\\n  --path '~/Documents/m3u' \\\n  --from '/Users/sequencemedia/Music/m4a' \\\n  --to '/Volumes/Audio/Assets' \\\n  --type 'm3u'\n```\n\nOr with the default export\n\n```javascript\nimport watchMatch from '@sequencemedia/watch-match'\n\nconst path = '~/Documents/m3u'\nconst from = '/Users/sequencemedia/Music/m4a'\nconst to = '/Volumes/Audio/Assets'\nconst type = 'm3u'\n\nwatchMatch(path, from, to, type)\n```\n\nFor example, You have an application generating `m3u` files. Each file is written to a directory\n\nThat directory is the `path`\n\n```shell\ncd ~/Documents/m3u\nls -l\n-rw-r--r--    1 sequencemedia  staff    1879 04 Feb 08:08 The Doors - The Doors.m3u\n-rw-r--r--    1 sequencemedia  staff    1879 04 Feb 08:09 The Doors - Strange Days.m3u\n-rw-r--r--    1 sequencemedia  staff    1879 04 Feb 08:10 The Doors - Waiting For The Sun.m3u\n```\n\nEach file contains a _pattern_ you want to replace. In this case, the _pattern_ is also a _file system path_ `/Users/sequencemedia/Music/m4a` (but it could be _any_ string)\n\nThat is the `from`\n\n```\n#EXTM3U\n#EXTINF:149,Break On Through (To The Other Side) - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/01 Break On Through (To The Other Side).m4a\n#EXTINF:215,Soul Kitchen - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/02 Soul Kitchen.m4a\n#EXTINF:154,The Crystal Ship - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/03 The Crystal Ship.m4a\n#EXTINF:153,Twentieth Century Fox - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/04 Twentieth Century Fox.m4a\n#EXTINF:200,Alabama Song (Whisky Bar) - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/05 Alabama Song (Whisky Bar).m4a\n#EXTINF:428,Light My Fire - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/06 Light My Fire.m4a\n#EXTINF:214,Back Door Man - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/07 Back Door Man.m4a\n#EXTINF:142,I Looked At You - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/08 I Looked At You.m4a\n#EXTINF:172,End Of The Night - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/09 End Of The Night.m4a\n#EXTINF:137,Take It As It Comes - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/10 Take It As It Comes.m4a\n#EXTINF:705,The End - The Doors\n/Users/sequencemedia/Music/m4a/The Doors/The Doors/11 The End.m4a\n```\n\nAnd its replacement is the `to`\n\n```\n#EXTM3U\n#EXTINF:149,Break On Through (To The Other Side) - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/01 Break On Through (To The Other Side).m4a\n#EXTINF:215,Soul Kitchen - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/02 Soul Kitchen.m4a\n#EXTINF:154,The Crystal Ship - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/03 The Crystal Ship.m4a\n#EXTINF:153,Twentieth Century Fox - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/04 Twentieth Century Fox.m4a\n#EXTINF:200,Alabama Song (Whisky Bar) - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/05 Alabama Song (Whisky Bar).m4a\n#EXTINF:428,Light My Fire - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/06 Light My Fire.m4a\n#EXTINF:214,Back Door Man - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/07 Back Door Man.m4a\n#EXTINF:142,I Looked At You - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/08 I Looked At You.m4a\n#EXTINF:172,End Of The Night - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/09 End Of The Night.m4a\n#EXTINF:137,Take It As It Comes - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/10 Take It As It Comes.m4a\n#EXTINF:705,The End - The Doors\n/Volumes/Audio/Assets/The Doors/The Doors/11 The End.m4a\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsequencemedia%2Fwatch-match","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsequencemedia%2Fwatch-match","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsequencemedia%2Fwatch-match/lists"}