11#! /bin/sh
22# TronBrowser installer.
33# curl -fsSL https://tronbrowser.dev/install.sh | sh
4- # curl -fsSL https://tronbrowser.dev/install.sh | sh -s -- upgrade
5- # curl -fsSL https://tronbrowser.dev/install.sh | sh -s -- remove
64#
7- # Commands: install (default) | upgrade | remove | version | help
5+ # After install, manage TronBrowser with the `tron` CLI:
6+ # tron launch the browser
7+ # tron upgrade update to the latest release
8+ # tron remove uninstall (keeps your profile data)
9+ # tron version print the installed version
10+ #
11+ # This installer also accepts: install (default) | upgrade | remove | version | help
812# Env: TRONBROWSER_PREFIX (default $HOME/.local), TRONBROWSER_REPO
913set -eu
1014
1115REPO=" ${TRONBROWSER_REPO:- profullstack/ tronbrowser.dev} "
1216PREFIX=" ${TRONBROWSER_PREFIX:- $HOME / .local} "
1317APP_DIR=" $PREFIX /lib/tronbrowser"
14- BIN_LINK=" $PREFIX /bin/tronbrowser"
18+ CURRENT=" $APP_DIR /current" # stable symlink -> the browser binary
19+ TRON_CLI=" $PREFIX /bin/tron" # the user-facing CLI
20+ ALIAS_CLI=" $PREFIX /bin/tronbrowser" # alias -> tron
1521VERSION_FILE=" $APP_DIR /VERSION"
22+ INSTALL_URL=" https://tronbrowser.dev/install.sh"
1623
1724say () { printf ' %s\n' " $* " ; }
1825info () { printf ' \033[36m==>\033[0m %s\n' " $* " ; }
@@ -45,6 +52,52 @@ latest_tag() {
4552 sed -n ' s/.*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p' /tmp/tb_rel.json | head -n1
4653}
4754
55+ # Writes the `tron` management CLI to $PREFIX/bin/tron.
56+ write_cli () {
57+ mkdir -p " $PREFIX /bin"
58+ cat > " $TRON_CLI " << 'TRON '
59+ #!/bin/sh
60+ # tron — TronBrowser CLI
61+ set -eu
62+ PREFIX="${TRONBROWSER_PREFIX:-$HOME/.local}"
63+ APP_DIR="$PREFIX/lib/tronbrowser"
64+ CURRENT="$APP_DIR/current"
65+ VERSION_FILE="$APP_DIR/VERSION"
66+ INSTALL_URL="https://tronbrowser.dev/install.sh"
67+
68+ usage() {
69+ cat <<USAGE
70+ tron — TronBrowser CLI
71+
72+ Usage:
73+ tron [url...] Launch TronBrowser (optionally opening URLs)
74+ tron upgrade Update to the latest release
75+ tron remove Uninstall TronBrowser (keeps your profile data)
76+ tron version Print the installed version
77+ tron help Show this help
78+ USAGE
79+ }
80+
81+ case "${1:-}" in
82+ upgrade|update)
83+ exec sh -c "curl -fsSL '$INSTALL_URL' | sh -s -- upgrade" ;;
84+ remove|uninstall)
85+ rm -rf "$APP_DIR"
86+ rm -f "$PREFIX/bin/tron" "$PREFIX/bin/tronbrowser"
87+ echo "Removed TronBrowser. (Profile data kept; delete ~/.tronbrowser to wipe it.)" ;;
88+ version|--version|-v)
89+ cat "$VERSION_FILE" 2>/dev/null || echo "not installed" ;;
90+ help|--help|-h)
91+ usage ;;
92+ *)
93+ [ -x "$CURRENT" ] || { echo "TronBrowser is not installed. Run: curl -fsSL $INSTALL_URL | sh" >&2; exit 1; }
94+ exec "$CURRENT" "$@" ;;
95+ esac
96+ TRON
97+ chmod +x " $TRON_CLI "
98+ ln -sf " $TRON_CLI " " $ALIAS_CLI "
99+ }
100+
48101do_install () {
49102 need uname
50103 asset=" $( detect_asset) "
@@ -67,16 +120,18 @@ do_install() {
67120 [ -n " $bin " ] || bin=" $( find " $APP_DIR " -maxdepth 3 -type f -name ' TronBrowser' 2> /dev/null | head -n1) "
68121 [ -n " $bin " ] || err " browser binary not found in archive"
69122 chmod +x " $bin "
70- ln -sf " $bin " " $BIN_LINK "
123+ ln -sf " $bin " " $CURRENT "
71124 echo " $tag " > " $VERSION_FILE "
72125
73- info " Installed to $APP_DIR "
74- say " binary: $BIN_LINK "
126+ write_cli
127+
128+ info " Installed TronBrowser $tag to $APP_DIR "
129+ say " launch: tron"
130+ say " manage: tron upgrade | tron remove | tron version"
75131 case " :$PATH :" in
76132 * " :$PREFIX /bin:" * ) : ;;
77- * ) warn " $PREFIX /bin is not on PATH — add it to use 'tronbrowser' directly ." ;;
133+ * ) warn " $PREFIX /bin is not on PATH — add it so 'tron' is available ." ;;
78134 esac
79- say " Run: tronbrowser"
80135}
81136
82137do_upgrade () {
@@ -87,8 +142,8 @@ do_upgrade() {
87142do_remove () {
88143 info " Removing TronBrowser"
89144 rm -rf " $APP_DIR "
90- [ -L " $BIN_LINK " ] && rm -f " $BIN_LINK "
91- say " Removed. (User profile /bookmarks/history are kept; delete ~/.tronbrowser to wipe data.)"
145+ rm -f " $TRON_CLI " " $ALIAS_CLI "
146+ say " Removed. (Profile /bookmarks/history kept; delete ~/.tronbrowser to wipe data.)"
92147}
93148
94149do_version () {
@@ -99,7 +154,7 @@ usage() {
99154 cat << EOF
100155TronBrowser installer
101156
102- Usage: install. sh [command]
157+ Usage: curl -fsSL $INSTALL_URL | sh [-s -- < command> ]
103158
104159Commands:
105160 install Download and install the latest TronBrowser (default)
@@ -108,6 +163,8 @@ Commands:
108163 version Print the installed version
109164 help Show this help
110165
166+ After install, prefer the 'tron' CLI: tron upgrade | tron remove | tron version
167+
111168Env:
112169 TRONBROWSER_PREFIX install prefix (default: \$ HOME/.local)
113170 TRONBROWSER_REPO GitHub repo (default: $REPO )
0 commit comments