{"id":18861025,"url":"https://github.com/rabbithole26/taskautomator","last_synced_at":"2026-04-28T21:31:25.949Z","repository":{"id":250016651,"uuid":"833140641","full_name":"RabbitHole26/taskAutomator","owner":"RabbitHole26","description":"TaskAutomator is a collection of bash scripts to streamline repetitive and time-consuming tasks.","archived":false,"fork":false,"pushed_at":"2025-01-21T14:51:13.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T15:31:09.615Z","etag":null,"topics":["automation","bash-script","unix"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/RabbitHole26.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-24T12:38:50.000Z","updated_at":"2025-01-21T14:51:16.000Z","dependencies_parsed_at":"2024-08-11T14:53:38.237Z","dependency_job_id":null,"html_url":"https://github.com/RabbitHole26/taskAutomator","commit_stats":null,"previous_names":["rabbithole26/taskautomator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitHole26%2FtaskAutomator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitHole26%2FtaskAutomator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitHole26%2FtaskAutomator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitHole26%2FtaskAutomator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RabbitHole26","download_url":"https://codeload.github.com/RabbitHole26/taskAutomator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239800405,"owners_count":19699129,"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","bash-script","unix"],"created_at":"2024-11-08T04:27:36.519Z","updated_at":"2026-04-28T21:31:25.941Z","avatar_url":"https://github.com/RabbitHole26.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TaskAutomator\n\n## Version\n\n### Current version: 0.0.8\n- **Release Date**: April 15, 2026\n- **New features**:\n  - Added SEO template to `index.html`. Includes comments with best practice suggestions for SEO tags.\n  - Added `--host` flag to the Vite `dev` script in `package.json`, enabling localhost access for devices on the local network.\n- **Known issues**:\n  - On BSD systems (including macOS), using `echo -e` with ANSI color codes (e.g., `\\e[31m`) may print the escape sequences literally instead of applying color. This issue doesn't affect script functionality.\n\n### Version history:\n  - **0.0.7** (February 22, 2026)\n    - Fixed compatibility with BSD/macOS: All `sed -i` calls now use a backup parameter, ensuring scripts execute correctly on macOS and other BSD systems.\n    - Fixed the incorrect deployment parameter: The script now uses the correct `INSTALL_REACT_HOT_TOAST` variable, matching the config and deployment logic.\n    - Vite scaffolding: Removed the `yes n |` pipe in favor of the `--no-interactive` flag for Vite, ensuring predictable and reliable project setup.\n    - Indentation change: Scripts now use consistent indentation as per VS Code settings (this is intentional and will be kept).\n  - **0.0.6** (October 15, 2025)\n    - Updated mechanism for dependency selection — now fully managed via `install-config.env` instead of editing the main script:\n      - Added automatic creation of a default `install-config.env` file if it does not exist.\n      - Added verification of key-value pairs in `install-config.env` using the `allowed_keys` array.\n      - Expanded deployment script registration to require mapping each script both in the `allowed_keys` array and in the “Deployment scripts” section of the main script.\n    - Updated the Vite installation step to suppress default prompts asking to install dependencies or run the project (these are handled by the script).\n  - **0.0.5** (September 22, 2025)\n    - Split `tailwind-daisyUi.sh` into two separate scripts, `tailwind.sh` and `daisyUi.sh`, to allow finer control over which packages are installed by the `vite-react.sh` script.\n    - Clears the content of the `README.md` file when deploying the `vite-react.sh` script.\n    - Fixed `is_commented` function to correctly handle file names containing regex-valid characters.\n  - **0.0.4** (March 30, 2025)\n    - Updated `tailwind-daisyUi.sh` to install the latest stable version of DaisyUI instead of the beta version.\n    - Minor optimizations in `vite-react.sh` file.\n  - **0.0.3** (January 27, 2025)  \n    - Updated `tailwind-daisyUi.sh` to reflect new installation steps for Tailwind CSS v4 and DaisyUI v5 beta.\n    - Added a button with DaisyUI classes to `App.jsx` to verify successful installation.\n  - **0.0.2** (January 21, 2025)  \n    - Added option to use Google Chrome as the default browser for the 'dev' script.\n    - Supports selection between 'Windows + WSL' and 'Ubuntu' setups, based on default Chrome installation paths for Windows 11 and Ubuntu 24.04.\n  - **0.0.1** (January 21, 2025)\n    - Tailwind theme integration.\n  - **0.0.0** (Initial drafts of deployment scripts)\n\n## Project overview\n\nThis project provides `bash` scripts designed for Unix-like operating systems (Linux and macOS). These scripts aim to streamline workflows and allow users to focus on priority tasks. The instructions provided here are for `Ubuntu 22.04 LTS`.\n\nThe initial set of scripts automates the setup of a `Vite + React` development environment, including some dependencies and configurations. However, the project is designed to be extensible and will eventually include scripts for a broader range of tasks.\n\n\u003e ⚠️ It is important to note that if any external dependencies change their installation or usage methods, the corresponding scripts must be updated.\n\n## Usage on unix-like systems\n\nThis section provides instructions on how to make the scripts executable and set up aliases for easy access.\n\n### Making scripts executable\n\nScripts are non-executable by default for security reasons. To make the [vite-react.sh](https://github.com/RabbitHole26/taskAutomator/blob/main/vite-react.sh) and [deployment scripts](https://github.com/RabbitHole26/taskAutomator/tree/main/vite-react-deployment-scripts) executable, follow these steps:\n\n1. Open your terminal.\n2. Navigate to the root directory containing the script.\n3. Run the following command:\n\n```bash\nchmod +x vite-react.sh\nchmod +x vite-react-deployment-scripts/*.sh\n```\n\n### Setting up aliases in Ubuntu 22.04 LTS (optional)\n\nAliases allow you to create shortcuts for your scripts. Here’s how to set up an alias for running the [vite-react.sh](https://github.com/RabbitHole26/taskAutomator/blob/main/vite-react.sh) script and an alias to source the alias file itself.\n\n1. Open your terminal.\n2. Create or edit your aliases file. You can use `nano` or any text editor of your choice:\n\n```bash\nnano ~/.bash_aliases\n```\n\n3. Add the following lines to the `~/.bash_aliases` file:\n\n```bash\n# alias for the vite-react.sh script\nalias \u003calias-name\u003e='\u003cabsolute-path\u003e/vite-react.sh'\n\n# alias for reloading bash_aliases \nalias reload_aliases='source ~/.bash_aliases'\n\n# alias for accessing the file with aliases\nalias aliass='nano ~/.bash_aliases'\n```\n\n\u003e 👉 Please note that alias for the aliases file is defined as `aliass` with double `s` to prevent conflicts with the `alias` command natively available in `Ubuntu 22.04 LTS`. You need to be aware of this when naming your aliases in order to prevent conflicts with existing commands.\n\n\u003e 👉 Replace `\u003cabsolute-path\u003e` with the absolute path to your [vite-react.sh](https://github.com/RabbitHole26/taskAutomator/blob/main/vite-react.sh) script.\n\n\u003e 👉 Replace `\u003calias-name\u003e` with the name of the alias which will be used to run the script.\n\n4. Save the file and exit the editor (`Ctrl + S` to save and `Ctrl + X` to exit in `nano`).\n5. Apply the aliases by running:\n\n```bash\nsource ~/.bash_aliases\n```\n\nNow you should be able to run your main script using the alias of your choice and reload your aliases using `aliass`.\n\n### Installation configuration (install-config.env)\n\n_**Overview**_\n\nDependency installation is now fully managed by a configuration file: `install-config.env`. The file have to reside in the root directory of the script.\n\nThis file contains a list of dependencies and boolean flags (`true` or `false`) as key value pairs for each deployment script, for example:\n\n```bash\nINSTALL_TAILWIND=true\nINSTALL_DAISYUI=true\nINSTALL_STYLED_COMPONENTS=false\nINSTALL_REACT_ROUTER_DOM=true\n```\n\n_**Automatic creation**_\n\nIf the file does not exist, the script will:\n\n1. Notify the user that it is missing.\n2. Create a **default configuration file** listing all available dependencies with the flag set to `true`.\n3. Terminate execution so that the user can review and modify the file before re-running.\n\n_**Verification mechanism**_\n\nWhen the script starts, the integrity of the `install-config.env` will be verified using predefined `allowed_keys` array.\n\nHow it works:\n\n- The script reads the file line by line, ignoring comments and blank lines.\n- Each key is validated against the `allowed_keys` array.\n- Each value is checked to ensure it is strictly `true` or `false`.\n- If an invalid key or value is detected:\n  - The script displays an **error message** specifying the issue.\n  - It sets an internal flag `invalid_found=true`.\n  - After checking all lines, if issues exist, the script is terminated with instructions on how to fix the file.\n- If no errors are found:\n  - A success message is displayed and script continues executing.\n\nThis ensures the users cannot proceed with malformed or incorrectly named configuration entries.\n\n### Using the script\n\nTo use the script, follow these steps:\n\n1. Ensure the scripts are executable by running the chmod commands as described in [Making Scripts Executable](#making-scripts-executable).\n2. Set up the aliases as outlined in the aliases section (optional but recommended).\n3. Execute the main script with the alias or directly.\n\n\u003e To run the script directly (without an alias), you need to provide the relative or absolute path to the script. Therefore, it is recommended to use aliases.\n\n\u003e ⚠️ `vite-react.sh` is designed to be executed in the root project directory. It always treats the current directory as the root project directory.\n\n## Adding your own deployment scripts to vite-react.sh\n\nThe `vite-react.sh` script is designed to be extensible, allowing you to add your own deployment scripts to automate additional tasks. Here’s a step-by-step guide:\n\n1. **Write Your Script**: Develop your script using `bash`. Ensure it performs the desired tasks efficiently and includes necessary error handling.\n2. **Save the Script**: Place your script in the `vite-react-deployment-scripts` directory located in the root directory of taskAutomator as `.sh` file. For consistency, it’s recommended to use a clear naming convention.\n3. **Add the path to your script to vite-react.sh**: The path needs to meet the following format `\"$deployment_script_dir/\u003cscript-name\u003e.sh\"`.\n4. **Make Your Script Executable**: Set the execute permission for your script as explained in [Making Scripts Executable](#making-scripts-executable).\n5. **Add your script to the `allowed_keys` array**: Edit `vite-react.sh` script and append a new key representing your script. Example:\n\n```bash\nallowed_keys=(\n  ...\n  MY_CUSTOM_DEPENDENCY_SCRIPT\n)\n```\n\n6. **Add your script to the deployment section**: In the `DEPLOYMENT SCRIPTS` section of `vite-react.sh`, link your new script to the corresponding key:\n\n```bash\n...\n[ \"$MY_CUSTOM_SCRIPT\" = true ] \u0026\u0026 \"$deployment_script_dir/my-custom-script.sh\"\n```\n\n7. **Update the installation config file**: Add the new key value pair representing your script to `install-config.env`:\n\n```bash\nINSTALL_MY_CUSTOM_TOOL=true\n```\n\n\u003e ⚠️ All new scripts must be registered both in `allowed_keys` and the `DEPLOYMENT SCRIPTS` section to ensure they are validated and executed properly.\n\n## Caveats\n\n- Each [deployment script](https://github.com/RabbitHole26/taskAutomator/tree/main/vite-react-deployment-scripts) contains hardcoded instructions for installing dependencies. If a dependency author changes the installation process, the corresponding deployment script must be updated. Always check the official documentation of the dependencies for any updates or changes.\n\n- The `RUN VSCODE` section in [vite-react.sh](https://github.com/RabbitHole26/taskAutomator/blob/main/vite-react.sh) includes a command to run the `dev` script located in the `package.json` file of the scaffolded project. This command is delayed by 2 seconds (`sleep 2 \u0026\u0026 npm run dev`). You might want to increase the delay depending on how fast your machine is able to load VS Code.\n\n- Both `tailwind.sh` and `daisyUi.sh` modify the `index.css` file in the Vite project. Keep this in mind when changing their execution order, as `tailwind.sh` clears `index.css` before applying its changes.\n\n- Vite installation behavior: The `vite-react.sh` script disables the default Vite interactive prompts that ask the user to:\n  - Install NPM.\n  - Run the project immediately. \n\n## License\nThis project is licensed under the MIT License. See the [LICENSE](https://github.com/RabbitHole26/taskAutomator/blob/main/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbithole26%2Ftaskautomator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabbithole26%2Ftaskautomator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbithole26%2Ftaskautomator/lists"}