{"id":23387097,"url":"https://github.com/thehamdiz/nsh","last_synced_at":"2025-10-08T12:56:11.043Z","repository":{"id":226253892,"uuid":"768118858","full_name":"theHamdiz/nsh","owner":"theHamdiz","description":"nsh =\u003e previously known as nameShift is a powerful renaming utility for developers, used to rename Symbols, Phrases in File contents, file names, directory names, recursively, useful specially when you find a better name for your app.","archived":false,"fork":false,"pushed_at":"2024-03-19T08:00:36.000Z","size":7262,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T05:09:14.775Z","etag":null,"topics":["automation","rename","rename-files","rename-script","renamer-utility","string-manipulation","string-matching","strings"],"latest_commit_sha":null,"homepage":"","language":"Go","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/theHamdiz.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-03-06T14:00:15.000Z","updated_at":"2025-02-03T10:08:42.000Z","dependencies_parsed_at":"2024-03-06T18:09:37.472Z","dependency_job_id":"e077c79f-6c0a-417a-bf63-3f1619d17521","html_url":"https://github.com/theHamdiz/nsh","commit_stats":null,"previous_names":["thehamdiz/nameshift","thehamdiz/nsh"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/theHamdiz/nsh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theHamdiz%2Fnsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theHamdiz%2Fnsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theHamdiz%2Fnsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theHamdiz%2Fnsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theHamdiz","download_url":"https://codeload.github.com/theHamdiz/nsh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theHamdiz%2Fnsh/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262484144,"owners_count":23318403,"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":["automation","rename","rename-files","rename-script","renamer-utility","string-manipulation","string-matching","strings"],"created_at":"2024-12-22T01:14:36.769Z","updated_at":"2025-10-08T12:56:10.992Z","avatar_url":"https://github.com/theHamdiz.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 `nsh` (nameShift) Documentation\n\n## Overview\n\n`nsh`, formerly known as nameShift, is a versatile tool designed for comprehensive string transformations across files and directories. It offers a range of functionalities tailored for renaming files, modifying file contents, and filtering operations based on file extensions. `nsh` supports both synchronous and concurrent processing, accommodates case-sensitive or case-agnostic operations, and provides detailed reports on modifications.\n\n## Key Features\n\n- **File and Directory Renaming**: Easily rename files and directories.\n- **String Replacement**: Perform string replacements within file contents.\n- **File Extension Filtering**: Focus operations on files with specific extensions.\n- **Processing Modes**: Choose between concurrent or synchronous processing.\n- **Case Sensitivity Options**: Operate in either case-sensitive or case-agnostic mode.\n- **Configurable Directory Exclusion**: Optionally include or exclude config directories.\n- **Detailed Reporting**: Generate tabular reports detailing modifications and errors.\n- **Flexible Flag Handling**: Use either short or long-form command-line flags.\n\n## 🚧 **Build Instructions** 🚧\n\n### Windows\n\n1. Open the command prompt.\n2. Navigate to the `nsh` root directory containing `build.bat`.\n3. Execute the build script:\n```bash\n✅   .\\build.bat\n```\n\n### Unix\n\n1. Open the terminal.\n2. Navigate to the `nsh` root directory containing `build.sh`.\n3. Run the build script:\n```zsh\n✅   ./build.sh\n```\n\n## Installing `nsh` System-Wide\n\n### Unix Systems\n\n- Note: Installation may require elevated privileges (`sudo`).\n- To install, run:\n\n```zsh\n✅  sudo python3 build/install.py\n```\n\nOr:\n\n```zsh\n✅  sudo ./build/install.py\n```\n\nOr simply use\n\n```zsh\n✅  go install\n```\n\n\u003e If you're Ok with just installing it inside  `$GOPATH/bin` directory.\n\n### Windows\n\n- Execute the installation script:\n```bash\n✅  python build\\\\install.py\n```\n\nOr directly run:\n\n```bash\n✅  build\\\\install\n```\n\nOr simply use\n\n```zsh\n✅  go install\n```\n\n\u003e If you're Ok with just installing it inside  `$GOPATH/bin` directory.\n\n## Usage Examples\n\n### Windows\n\n```bash\n✅ .\\`nsh`.exe \"path\\\\to\\\\directory\" \"OldText\" \"NewText\" --ignore-config-dirs=true --work-globally=false --concurrent-run=false --case-matching=true --file-extensions=\".go,.md\"\n```\nOr, for an installed tool:\n```bash\n✅ `nsh` \"path\\\\to\\\\directory\" \"OldText\" \"NewText\" -i=true -g=false -cr=false -cm=true --exts=\".go,.md\"\n```\n\n### Unix Systems\n\n```zsh\n✅ ./`nsh` \"path/to/directory\" \"OldText\" \"NewText\" --ignore-config-dirs=true --work-globally=false -concurrent-run=false -case-matching=true --file-extensions=\".go,.md\"\n```\nOr for an installed tool:\n```zsh\n✅ `nsh` \"path/to/directory\" \"OldText\" \"NewText\" -i=true -g=false -cr=false -cm=true --ext=\".go,.md\"\n```\n\n## Advanced Options and Flexibility\n\n`nsh` accommodates different user preferences with dual parameter formats (verbose and shorthand) and has a forgiving approach to typos and parameter variations. Its flexibility extends to accepting both `ext` and `exts` for specifying file extensions.\n\n## Future Enhancements\n\n- [ ] **GUI Integration**: Bringing the power of ``nsh`` to a graphical user interface.\n- [ ] **Cross-Platform Package Managers**: Aim to distribute ``nsh`` through package managers like Homebrew, apt, and others, making installation a breeze.\n- [ ] **Advanced Pattern Matching**: Implement regex support for the adventurers who need to capture or transform more complex string patterns.\n- [ ] **Localization Support**: Support multiple languages.\n- [ ] **Plugin Ecosystem**: Enabling the community to extend ``nsh`` with their own plugins.\n- [ ] **FFI Function Exposure**: Enabling the community to use ``nsh`` outside of the go realm.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthehamdiz%2Fnsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthehamdiz%2Fnsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthehamdiz%2Fnsh/lists"}