{"id":21890085,"url":"https://github.com/ejfox/directory-sync-tool","last_synced_at":"2025-03-22T02:43:36.077Z","repository":{"id":249186016,"uuid":"822340642","full_name":"ejfox/directory-sync-tool","owner":"ejfox","description":"A visual CLI tool for comparing and syncing directories","archived":false,"fork":false,"pushed_at":"2024-08-16T01:59:38.000Z","size":37525,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T20:05:32.672Z","etag":null,"topics":["cli"],"latest_commit_sha":null,"homepage":"","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/ejfox.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":"2024-07-01T00:37:53.000Z","updated_at":"2024-08-16T01:59:41.000Z","dependencies_parsed_at":"2024-11-28T11:41:52.020Z","dependency_job_id":null,"html_url":"https://github.com/ejfox/directory-sync-tool","commit_stats":null,"previous_names":["ejfox/directory-sync-tool"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejfox%2Fdirectory-sync-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejfox%2Fdirectory-sync-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejfox%2Fdirectory-sync-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejfox%2Fdirectory-sync-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ejfox","download_url":"https://codeload.github.com/ejfox/directory-sync-tool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244898409,"owners_count":20528335,"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":["cli"],"created_at":"2024-11-28T11:28:43.534Z","updated_at":"2025-03-22T02:43:36.051Z","avatar_url":"https://github.com/ejfox.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Directory Sync Tool\n\nA command-line interface tool for comparing and synchronizing directories.\n\n## Purpose\n\nThis tool is designed to help you maintain consistency between two directories, particularly useful when you have a source of truth (like a content management system) and a target directory (like a published website) that needs to stay in sync.\n\n## Use Cases\n\n1. **Blog Management**: Sync your local markdown files with your published blog posts.\n2. **Website Deployment**: Ensure your production site matches your development environment.\n3. **Content Synchronization**: Keep multiple content directories in sync across different platforms or devices.\n4. **Backup Verification**: Compare a backup directory with its source to ensure all files are accounted for.\n\n## When to Use\n\n- Before deploying website updates\n- After bulk content creation or deletion\n- During content migration between systems\n- As part of a regular maintenance routine for your digital content\n\n## Installation\n\n```bash\nnpm install -g directory-sync-tool\n```\n\n## Usage\n\nRun the tool:\n\n```bash\ndstool\n```\n\nThe tool will prompt you to select a source and target directory. It then identifies files present in the target but not in the source, allowing you to delete or ignore these discrepancies.\n\n## Key Features\n\n- Interactive directory selection\n- File comparison between source and target\n- Options to delete or ignore files\n- Customizable default paths via environment variables\n\n## Controls\n\n- Arrow keys: Navigate\n- Enter: Select\n- 'd': Delete file from target\n- 'i': Ignore file\n- 'q': Quit\n- 'e': Easter egg (because even serious tools can have a bit of fun)\n\n## Configuration\n\nSet default paths in your environment or .env file:\n\n```\nSOURCE_PATH=/path/to/your/source\nTARGET_PATH=/path/to/your/target\n```\n\n## Why It's Useful\n\n- Saves time by automating file comparisons\n- Reduces human error in manual file management\n- Provides a clear interface for decision-making about file discrepancies\n- Helps maintain data integrity across multiple locations\n\n## Best Practices\n\n- Always verify your source and target directories before making changes\n- Use the tool as part of a broader backup and synchronization strategy\n- Regularly check for updates to ensure you have the latest features and security patches\n\n## Contributing\n\nFound a bug or have a feature request? Open an issue or submit a pull request on our GitHub repository.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejfox%2Fdirectory-sync-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fejfox%2Fdirectory-sync-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejfox%2Fdirectory-sync-tool/lists"}