{"id":24650755,"url":"https://github.com/tangoman75/tools","last_synced_at":"2025-06-22T16:36:35.140Z","repository":{"id":114062301,"uuid":"240798549","full_name":"TangoMan75/tools","owner":"TangoMan75","description":"TangoMan Tools is an awesome collection of small useful shell scripts","archived":false,"fork":false,"pushed_at":"2024-11-27T16:39:49.000Z","size":1112,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-20T21:07:20.947Z","etag":null,"topics":["shell","shell-scripts","shell-tools","tangoman-tools"],"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/TangoMan75.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-15T22:46:04.000Z","updated_at":"2025-02-26T07:08:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"c6c45bb5-149c-4fc3-a1da-337ae1be89a2","html_url":"https://github.com/TangoMan75/tools","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/TangoMan75/tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangoMan75%2Ftools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangoMan75%2Ftools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangoMan75%2Ftools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangoMan75%2Ftools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TangoMan75","download_url":"https://codeload.github.com/TangoMan75/tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangoMan75%2Ftools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261326033,"owners_count":23142010,"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":["shell","shell-scripts","shell-tools","tangoman-tools"],"created_at":"2025-01-25T18:16:35.969Z","updated_at":"2025-06-22T16:36:30.120Z","avatar_url":"https://github.com/TangoMan75.png","language":"Shell","readme":"![GH language](https://img.shields.io/github/languages/top/TangoMan75/tools)\n[![GH license](https://img.shields.io/github/license/TangoMan75/tools)]((https://github.com/TangoMan75/tools/blob/master/LICENSE))\n[![GH release](https://img.shields.io/github/v/release/TangoMan75/tools)](https://github.com/TangoMan75/tools/releases)\n[![GH stars](https://img.shields.io/github/stars/TangoMan75/tools)](https://github.com/TangoMan75/tools/stargazers)\n[![Bash CI](https://github.com/TangoMan75/tools/workflows/bash_unit%20CI/badge.svg)](https://github.com/TangoMan75/tools/actions/workflows/bash_unit.yml)\n[![ShellCheck CI](https://github.com/TangoMan75/tools/workflows/ShellCheck%20CI/badge.svg)](https://github.com/TangoMan75/tools/actions/workflows/shellcheck.yml)\n![visitors](https://visitor-badge.glitch.me/badge?page_id=TangoMan75.tools)\n\nTangoMan Bash Tool\n==================\n\n![tools](./doc/images/tools.png)\n\n**TangoMan Bash Tools** is an awesome collection of small useful shell scripts.\n\n⏳ TL;DR\n--------\n\n1. Copy \"tools\" folder into your project.\n2. Source desired script in your own script.\n\n```bash\nsource ./tools/src/colors/colors.sh\n```\n\n3. Call desired function.\n```bash\necho_info \"Hello World !\\n\"\n```\n\n🎯 Features\n-----------\n\n**TangoMan Bash Tool** provides the following features:\n\n### ⚡ colors.sh\n\nA semantic set of colors for shell scripts.\n\n![print_colors](./doc/images/print_colors.png)\n\nTry this in your script :\n\n```bash\n#!/bin/bash\n\nCURDIR=$(dirname \"$(realpath \"${BASH_SOURCE[0]}\")\")\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/colors/colors.sh\n\necho_primary   'This is primary text'   2 24; echo 'primary'\necho_secondary 'This is secondary text' 2 24; echo 'secondary'\necho_success   'This is a success'      2 24; echo 'success'\necho_danger    'This is a danger'       2 24; echo 'danger'\necho_warning   'This is a warning'      2 24; echo 'warning'\necho_info      'This is an info'        2 24; echo 'info'\necho_light     'This is light'          2 24; echo 'light'\necho_dark      'This is dark'           2 24; echo 'dark'\n```\n\n![echo_colors](./doc/images/echo_colors.png)\n\n```bash\n#!/bin/bash\n\nCURDIR=$(dirname \"$(realpath \"${BASH_SOURCE[0]}\")\")\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/colors/colors.sh\n\nalert_primary   'This is a primary alert'\nalert_secondary 'This is a secondary alert'\nalert_success   'This is a success alert'\nalert_danger    'This is a danger alert'\nalert_warning   'This is a warning alert'\nalert_info      'This is a info alert'\nalert_light     'This is a light alert'\nalert_dark      'This is a dark alert'\n```\n\n![alert_colors](./doc/images/alert_colors.png)\n\nIf you want to use Symfony theme for alerts use this file instead: `/tools/src/colors/colors_sf.sh`\n\n![alert_colors_sf](./doc/images/alert_colors_sf.png)\n\n📝 NOTE:\n- Version a is the same than default version without comments.\n- Version b is the same than default version with line feed at the end of each string.\n- Version c does not use variables (less clutter).\n- Version d is the same than version c with line feed at the end of each string.\n\n### ⚡ get_latest_release.sh\n\nGet repository latest release from github.\n\n### ⚡ get_latest_tag.sh\n\nGet repository latest tag from github.\n\n### ⚡ download.sh\n\nDownload file with either curl or wget.\n\n### ⚡ check_install.sh\n\nThis script is meant to quickly check for common apps installation.\n\n![check_install](./doc/images/check_install.png)\n\n### ⚡ check_root.sh\n\nThrows error when user doesn't own root privileges.\n\n### ⚡ check_versions.sh\n\nCheck version of some development tools.\n\n### ⚡ compare_versions.sh\n\nCompare two semantic versions.\n\n### ⚡ hosts.sh\n\nEdit your local `/etc/hosts` config from shell scripts.\n\n### ⚡ is_installed.sh\n\nReturns true when given application or command is available.\n\n### ⚡ is_ubuntu.sh\n\nReturns true when current operating system runs one of ubuntu version.\n\n### ⚡ prompt_user.sh\n\nOpens a user prompt for given value.\n\n### ⚡ update_grub.sh\n\nUpdates GRUB on multiple patforms.\n\n### ⚡ get_parameter.sh\n\nRead parameter from .yaml file.\n\n### ⚡ set_parameter.sh\n\nSet parameter to .yaml file.\n\n🚀 Installation\n---------------\n\nJust copy this folder into your project or import this repository into your git project as a submodule.\n\n```bash\n# with https\ngit submodule add https://github.com/TangoMan75/tools.git ./tools\n# with ssh\ngit submodule add git@github.com:TangoMan75/tools.git ./tools\n```\n\n🔥 Usage\n--------\n\nPlace following snippet in your code.\n\n```bash\n#!/bin/bash\n\nCURDIR=$(dirname \"$(realpath \"${BASH_SOURCE[0]}\")\")\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/colors/colors.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/git/get_latest_release.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/git/get_latest_tag.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/network/download.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/check_install.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/check_root.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/check_versions.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/compare_versions.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/hosts.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/is_installed.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/is_root.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/is_ubuntu.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/prompt_user.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/system/update_grub.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/yaml/get_parameter.sh\n# shellcheck source=/dev/null\n. \"${CURDIR}\"/tools/src/yaml/set_parameter.sh\n```\n\n🤝 Contributing\n---------------\n\nThank you for your interest in contributing to **TangoMan Bash Tools**.\n\nPlease review the [code of conduct](./CODE_OF_CONDUCT.md) and [contribution guidelines](./CONTRIBUTING.md) before starting to work on any features.\n\nIf you want to open an issue, please check first if it was not [reported already](https://github.com/TangoMan75/tools/issues) before creating a new one.\n\n📜 License\n----------\n\nCopyrights (c) 2021 \u0026quot;Matthias Morin\u0026quot; \u0026lt;mat@tangoman.io\u0026gt;\n\n[![License](https://img.shields.io/badge/Licence-MIT-green.svg)](LICENSE)\nDistributed under the MIT license.\n\nIf you like **TangoMan Bash Tools** please star, follow or tweet:\n\n[![GitHub stars](https://img.shields.io/github/stars/TangoMan75/tools?style=social)](https://github.com/TangoMan75/tools/stargazers)\n[![GitHub followers](https://img.shields.io/github/followers/TangoMan75?style=social)](https://github.com/TangoMan75)\n[![Twitter](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Fgithub.com%2FTangoMan75%2Ftools)](https://twitter.com/intent/tweet?text=Wow:\u0026url=https%3A%2F%2Fgithub.com%2FTangoMan75%2Ftools)\n\n... And check my other cool projects.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangoman75%2Ftools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftangoman75%2Ftools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangoman75%2Ftools/lists"}