summaryrefslogtreecommitdiff
path: root/mac/.local/bin/browse
diff options
context:
space:
mode:
Diffstat (limited to 'mac/.local/bin/browse')
-rwxr-xr-xmac/.local/bin/browse88
1 files changed, 88 insertions, 0 deletions
diff --git a/mac/.local/bin/browse b/mac/.local/bin/browse
new file mode 100755
index 0000000..976e2a4
--- /dev/null
+++ b/mac/.local/bin/browse
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+# Usage message
+usage() {
+ echo "Searches query in a terminal or browser"
+ echo ""
+ echo "Usage: ${0##*/} [-d | --ddgr | ddgr] [-h | --help | help] [<search_engine>] <search_query>"
+ echo ""
+ echo "Options:"
+ echo " -d, --ddgr, ddgr : Use ddgr to search and open the result in a terminal"
+ echo " -h, --help, help : Display this help message"
+ echo " <search_engine> : (Optional) Search engine to use (bing, duckduckgo, google, naver, yahoo, youtube)"
+ echo " <search_query> : The search term or query to use"
+}
+
+# Set default values
+search_tool="web"
+search_engine="searx"
+
+# Determine the open command based on the operating system
+case "$(uname -s)" in
+Darwin)
+ open_cmd='open'
+ ;;
+*)
+ open_cmd='xdg-open'
+ ;;
+esac
+
+# Check the first argument for flags or help using case
+case "$1" in
+-d | --ddgr | ddgr)
+ # Check if ddgr is installed (only needed for ddgr options)
+ if ! command -v ddgr >/dev/null 2>&1; then
+ echo "Error: ddgr is not installed." >&2
+ exit 1
+ fi
+ search_tool="ddgr"
+ shift # Remove this argument from the list
+ ;;
+-h | --help | help)
+ usage && exit 0
+ ;;
+bing | duckduckgo | google | naver | yahoo | youtube)
+ search_engine="$1"
+ shift # Remove the search engine from the list
+ ;;
+esac
+
+# Store the remaining arguments as the search query
+search_query="$*"
+
+# Ensure a search query is provided; if not, show usage
+[ -z "$search_query" ] && usage && exit 1
+
+# Execute the corresponding search tool using case
+case $search_tool in
+ddgr)
+ # Run DuckDuckGo search in the terminal
+ setsid -f "$TERMINAL" -e ddgr "$search_query"
+ ;;
+web)
+ # Construct the URL based on the search engine
+ case "$search_engine" in
+ bing | google | yahoo | youtube)
+ base_url="https://www.${search_engine}.com/search?q="
+ ;;
+ duckduckgo)
+ base_url="https://duckduckgo.com/?q="
+ ;;
+ naver)
+ base_url="https://search.naver.com/search.naver?query="
+ ;;
+ searx | *)
+ base_url="https://www.searx.thesiah.xyz/search?q="
+ ;;
+ esac
+
+ # Encode the search query
+ search_query_encoded=$(echo "$search_query" | sed 's/ /+/g')
+
+ # Open the search URL in the default browser
+ $open_cmd "${base_url}${search_query_encoded}"
+ ;;
+*)
+ usage && exit 1
+ ;;
+esac