{"id":18827224,"url":"https://github.com/thomasleplus/bazaar","last_synced_at":"2025-07-01T08:34:41.242Z","repository":{"id":43411808,"uuid":"201685895","full_name":"thomasleplus/bazaar","owner":"thomasleplus","description":"All sorts of unix utilities","archived":false,"fork":false,"pushed_at":"2025-06-27T15:25:45.000Z","size":211,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-27T16:32:16.125Z","etag":null,"topics":["curl","http","https","linux","shell","shell-script","shell-scripting","shell-scripts","shellscript","unix","unix-utilities"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thomasleplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-08-10T21:42:34.000Z","updated_at":"2025-06-27T15:25:49.000Z","dependencies_parsed_at":"2023-02-17T00:16:00.358Z","dependency_job_id":"949ae525-641d-4b33-8393-13c275ab2f53","html_url":"https://github.com/thomasleplus/bazaar","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thomasleplus/bazaar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasleplus%2Fbazaar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasleplus%2Fbazaar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasleplus%2Fbazaar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasleplus%2Fbazaar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomasleplus","download_url":"https://codeload.github.com/thomasleplus/bazaar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasleplus%2Fbazaar/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262928472,"owners_count":23386152,"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":["curl","http","https","linux","shell","shell-script","shell-scripting","shell-scripts","shellscript","unix","unix-utilities"],"created_at":"2024-11-08T01:13:21.777Z","updated_at":"2025-07-01T08:34:41.217Z","avatar_url":"https://github.com/thomasleplus.png","language":"Shell","readme":"# bazaar\n\nAll sorts of unix utilities\n\n[![ShellCheck](https://github.com/thomasleplus/bazaar/workflows/ShellCheck/badge.svg)](https://github.com/thomasleplus/bazaar/actions?query=workflow:\"ShellCheck\")\n\n## [connectivity-check](connectivity-check)\n\n### Overview\n\nThis script mimics the internet connectivity checks of various operating systems (iOS, Android, Mac OS, Windows, Linux...). Just run the script and it will start fetching various test pages.\n\nIf your network access is not working (Wi-Fi disconnected, problem with the ethernet cable or modem router), you will see error messages like `curl: (7) Couldn't connect to server`.\n\nIf you have internet access, the HTTP status codes of the responses will be from the 2XX Success class (e.g. 200 OK or 204 No Content).\n\n\u003e Note that if the URLs ending in `generate_204` do not return a 204 HTTP status code, or if you see error messagges like `curl: (6) Could not resolve host`, your connection might be blocked by a captive portal using [DNS Redirection](https://en.wikipedia.org/wiki/Captive_portal#Redirect_by_DNS) instead of [HTTP redirection](https://en.wikipedia.org/wiki/Captive_portal#HTTP_redirect). You can confirm this by looking to the responses to the SSL URLs.\n\nIf you have network connectivity but you do not have internet access because, for example, you have not yet signed into some sort of captive portal, you will probably get some sort of 3XX Redirection HTTP status code (e.g. 307 Temporary Redirect or 302 Found) followed by the URL of the captive portal.\n\nFinally if you get a 4XX or 5XX HTTP error status code, it probably means that the corresponding requested URL is not valid anymore (or maybe the service is having some temporary issues).\n\n### Samples\n\nThis is the program's output when internet is accessible:\n\n```\n$ connectivity-check\nGET http://connectivity-check.ubuntu.com\nHTTP/1.1 204 No Content\n\nGET http://www.neverssl.com\nHTTP/1.1 200 OK\n\nGET http://www.msftconnecttest.com/connecttest.txt\nHTTP/1.1 200 OK\n\nGET http://www.msftncsi.com/ncsi.txt\nHTTP/1.1 200 OK\n\nGET http://clients3.google.com/generate_204\nHTTP/1.1 204 No Content\n\nGET http://connectivitycheck.android.com/generate_204\nHTTP/1.1 204 No Content\n\nGET http://connectivitycheck.gstatic.com/generate_204\nHTTP/1.1 204 No Content\n\nGET http://captive.apple.com/hotspot-detect.html\nHTTP/1.1 200 OK\n\nGET http://www.apple.com/library/test/success.html\nHTTP/1.1 200 OK\n\nGET https://www.google.com\nHTTP/1.1 200 OK\n\nGET https://www.apple.com\nHTTP/1.1 200 OK\n```\n\nAnd this is what the output looks like when the internet access is being blocked by a captive portal doing DNS spoofing:\n\n```\n$ connectivity-check\nGET http://connectivity-check.ubuntu.com\ncurl: (52) Empty reply from server\n\nGET http://www.neverssl.com\ncurl: (52) Empty reply from server\n\nGET http://www.msftconnecttest.com/connecttest.txt\ncurl: (52) Empty reply from server\n\nGET http://www.msftncsi.com/ncsi.txt\ncurl: (52) Empty reply from server\n\nGET http://clients3.google.com/generate_204\ncurl: (52) Empty reply from server\n\nGET http://connectivitycheck.android.com/generate_204\ncurl: (52) Empty reply from server\n\nGET http://connectivitycheck.gstatic.com/generate_204\ncurl: (52) Empty reply from server\n\nGET http://captive.apple.com/hotspot-detect.html\ncurl: (52) Empty reply from server\n\nGET http://www.apple.com/library/test/success.html\ncurl: (52) Empty reply from server\n\nGET https://www.google.com\ncurl: (51) SSL: no alternative certificate subject name matches target host name 'www.google.com'\n\nGET https://www.apple.com\ncurl: (51) SSL: no alternative certificate subject name matches target host name 'www.apple.com'\n```\n\nhttps://rootsh3ll.com/captive-portal-guide/\n\n## [open-clipboard](open-clipboard)\n\nReads a file path or URL from the clipboard and opens it in the corresponding system default application. I have this command associated to a custom keyboard shortcut (Ctrl+B). This is particularly useful and easy to remember when you want to open a non-clickable URL: just select the URL text and do Ctrl+C then Ctrl+B to open in default browser.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasleplus%2Fbazaar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomasleplus%2Fbazaar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasleplus%2Fbazaar/lists"}