Merge branch 'v1'
This commit is contained in:
		
						commit
						c55bd982d6
					
				| @ -26,9 +26,6 @@ | |||||||
| #  system daemon launcher, etc. Also, this is designed to be | #  system daemon launcher, etc. Also, this is designed to be | ||||||
| #  reusable with many apps and services, so it's very variabled... | #  reusable with many apps and services, so it's very variabled... | ||||||
| 
 | 
 | ||||||
| # hack to allow calling script to finish before this executes |  | ||||||
| sleep 0.1 |  | ||||||
| 
 |  | ||||||
| set -e | set -e | ||||||
| set -u | set -u | ||||||
| 
 | 
 | ||||||
| @ -87,22 +84,21 @@ if [ -z "${my_email}" ]; then | |||||||
|   $read_cmd -p "email: " my_email |   $read_cmd -p "email: " my_email | ||||||
|   echo "" |   echo "" | ||||||
|   # UX - just want a smooth transition |   # UX - just want a smooth transition | ||||||
|   sleep 0.5 |   sleep 0.25 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ -z "${my_relay}" ]; then | if [ -z "${my_relay}" ]; then | ||||||
|   echo "What self-hosted relay will you be using?" |   echo "What relay will you be using? (press enter for default)" | ||||||
|   #echo "What relay will you be using? (press enter for default)" |  | ||||||
|   echo "" |   echo "" | ||||||
|   #$read_cmd -p "relay [default: wss://telebit.cloud]: " my_relay |   $read_cmd -p "relay [default: telebit.cloud]: " my_relay | ||||||
|   $read_cmd -p "relay: " my_relay |  | ||||||
|   echo "" |   echo "" | ||||||
|   my_relay=${my_relay:-wss://telebit.cloud} |   my_relay=${my_relay:-telebit.cloud} | ||||||
|   # UX - just want a smooth transition |   # UX - just want a smooth transition | ||||||
|   sleep 0.5 |   sleep 0.25 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ -z "${my_servernames}" ]; then | if [ -n "$my_relay" ] && [ "$my_relay" != "telebit.cloud" ]; then | ||||||
|  |   if [ -z "${my_servernames}" ]; then | ||||||
|     #echo "What servername(s) will you be relaying here? (press enter for default)" |     #echo "What servername(s) will you be relaying here? (press enter for default)" | ||||||
|     echo "What servername(s) will you be relaying here?" |     echo "What servername(s) will you be relaying here?" | ||||||
|     echo "" |     echo "" | ||||||
| @ -110,10 +106,10 @@ if [ -z "${my_servernames}" ]; then | |||||||
|     $read_cmd -p "domain: " my_servernames |     $read_cmd -p "domain: " my_servernames | ||||||
|     echo "" |     echo "" | ||||||
|     # UX - just want a smooth transition |     # UX - just want a smooth transition | ||||||
|   sleep 0.5 |     sleep 0.25 | ||||||
| fi |   fi | ||||||
| 
 | 
 | ||||||
| if [ -z "${my_secret}" ]; then |   if [ -z "${my_secret}" ]; then | ||||||
|     #echo "What's your authorization for the relay server? (press enter for default)" |     #echo "What's your authorization for the relay server? (press enter for default)" | ||||||
|     echo "What's your authorization for the relay server?" |     echo "What's your authorization for the relay server?" | ||||||
|     echo "" |     echo "" | ||||||
| @ -121,7 +117,8 @@ if [ -z "${my_secret}" ]; then | |||||||
|     $read_cmd -p "secret: " my_secret |     $read_cmd -p "secret: " my_secret | ||||||
|     echo "" |     echo "" | ||||||
|     # UX - just want a smooth transition |     # UX - just want a smooth transition | ||||||
|   sleep 0.5 |     sleep 0.25 | ||||||
|  |   fi | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| echo "" | echo "" | ||||||
| @ -132,16 +129,16 @@ if [ -z "${TELEBIT_PATH:-}" ]; then | |||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| echo "Installing $my_name to '$TELEBIT_PATH'" | echo "Installing $my_name to '$TELEBIT_PATH'" | ||||||
| 
 |  | ||||||
| echo "Installing node.js dependencies into '$TELEBIT_PATH'" |  | ||||||
| # v10.2+ has much needed networking fixes, but breaks ursa. v9.x has severe networking bugs. v8.x has working ursa, but requires tls workarounds" | # v10.2+ has much needed networking fixes, but breaks ursa. v9.x has severe networking bugs. v8.x has working ursa, but requires tls workarounds" | ||||||
| NODEJS_VER="${NODEJS_VER:-v10}" | NODEJS_VER="${NODEJS_VER:-v10}" | ||||||
| export NODEJS_VER | export NODEJS_VER | ||||||
| export NODE_PATH="$TELEBIT_PATH/lib/node_modules" | export NODE_PATH="$TELEBIT_PATH/lib/node_modules" | ||||||
| export NPM_CONFIG_PREFIX="$TELEBIT_PATH" | export NPM_CONFIG_PREFIX="$TELEBIT_PATH" | ||||||
| export PATH="$TELEBIT_PATH/bin:$PATH" | export PATH="$TELEBIT_PATH/bin:$PATH" | ||||||
| sleep 0.5 | sleep 0.25 | ||||||
| echo "(your password may be required to complete installation)" | echo "(your password may be required to complete installation)" | ||||||
|  | 
 | ||||||
|  | echo "  - installing node.js runtime..." | ||||||
| http_bash https://git.coolaj86.com/coolaj86/node-installer.sh/raw/branch/master/install.sh --no-dev-deps >/dev/null 2>/dev/null | http_bash https://git.coolaj86.com/coolaj86/node-installer.sh/raw/branch/master/install.sh --no-dev-deps >/dev/null 2>/dev/null | ||||||
| 
 | 
 | ||||||
| my_tree="telebit" # my_branch | my_tree="telebit" # my_branch | ||||||
| @ -167,6 +164,7 @@ my_unzip=$(type -p unzip) | |||||||
| my_tar=$(type -p tar) | my_tar=$(type -p tar) | ||||||
| if [ -n "$my_unzip" ]; then | if [ -n "$my_unzip" ]; then | ||||||
|   rm -f $my_tmp/$my_app-$my_tree.zip |   rm -f $my_tmp/$my_app-$my_tree.zip | ||||||
|  |   echo "  - installing telebit zip..." | ||||||
|   http_get https://git.coolaj86.com/coolaj86/$my_repo/archive/$my_tree.zip $my_tmp/$my_app-$my_tree.zip |   http_get https://git.coolaj86.com/coolaj86/$my_repo/archive/$my_tree.zip $my_tmp/$my_app-$my_tree.zip | ||||||
|   # -o means overwrite, and there is no option to strip |   # -o means overwrite, and there is no option to strip | ||||||
|   $my_unzip -o $my_tmp/$my_app-$my_tree.zip -d $TELEBIT_PATH/ > /dev/null 2>&1 |   $my_unzip -o $my_tmp/$my_app-$my_tree.zip -d $TELEBIT_PATH/ > /dev/null 2>&1 | ||||||
| @ -174,6 +172,7 @@ if [ -n "$my_unzip" ]; then | |||||||
|   rm -rf $TELEBIT_PATH/$my_bin |   rm -rf $TELEBIT_PATH/$my_bin | ||||||
| elif [ -n "$my_tar" ]; then | elif [ -n "$my_tar" ]; then | ||||||
|   rm -f $my_tmp/$my_app-$my_tree.tar.gz |   rm -f $my_tmp/$my_app-$my_tree.tar.gz | ||||||
|  |   echo "  - installing telebit tar.gz..." | ||||||
|   http_get https://git.coolaj86.com/coolaj86/$my_repo/archive/$my_tree.tar.gz $my_tmp/$my_app-$my_tree.tar.gz |   http_get https://git.coolaj86.com/coolaj86/$my_repo/archive/$my_tree.tar.gz $my_tmp/$my_app-$my_tree.tar.gz | ||||||
|   ls -lah $my_tmp/$my_app-$my_tree.tar.gz |   ls -lah $my_tmp/$my_app-$my_tree.tar.gz | ||||||
|   $my_tar -xzf $my_tmp/$my_app-$my_tree.tar.gz --strip 1 -C $TELEBIT_PATH/ |   $my_tar -xzf $my_tmp/$my_app-$my_tree.tar.gz --strip 1 -C $TELEBIT_PATH/ | ||||||
| @ -184,9 +183,12 @@ fi | |||||||
| set -e | set -e | ||||||
| 
 | 
 | ||||||
| pushd $TELEBIT_PATH >/dev/null | pushd $TELEBIT_PATH >/dev/null | ||||||
|  |   echo "  - installing telebit npm dependencies..." | ||||||
|   $my_npm install >/dev/null 2>/dev/null |   $my_npm install >/dev/null 2>/dev/null | ||||||
| popd >/dev/null | popd >/dev/null | ||||||
| 
 | 
 | ||||||
|  | echo "  - configuring telebit..." | ||||||
|  | 
 | ||||||
| cat << EOF > $TELEBIT_PATH/bin/$my_app | cat << EOF > $TELEBIT_PATH/bin/$my_app | ||||||
| #!/bin/bash | #!/bin/bash | ||||||
| $my_node $TELEBIT_PATH/bin/$my_bin | $my_node $TELEBIT_PATH/bin/$my_bin | ||||||
| @ -247,14 +249,20 @@ set -e | |||||||
| my_config="$TELEBIT_PATH/etc/$my_app.yml" | my_config="$TELEBIT_PATH/etc/$my_app.yml" | ||||||
| mkdir -p "$(dirname $my_config)" | mkdir -p "$(dirname $my_config)" | ||||||
| if [ ! -e "$my_config" ]; then | if [ ! -e "$my_config" ]; then | ||||||
|  | 
 | ||||||
|   #$rsync_cmd examples/$my_app.yml "$my_config" |   #$rsync_cmd examples/$my_app.yml "$my_config" | ||||||
|  | 
 | ||||||
|   if [ -n "$my_email" ]; then |   if [ -n "$my_email" ]; then | ||||||
|     echo "email: $my_email" >> "$my_config" |     echo "email: $my_email" >> "$my_config" | ||||||
|     echo "agree_tos: true" >> "$my_config" |     echo "agree_tos: true" >> "$my_config" | ||||||
|  |   else | ||||||
|  |     echo "#email: jon@example.com # used for Automated HTTPS and Telebit.Cloud registrations" >> "$my_config" | ||||||
|  |     echo "#agree_tos: true # must be enabled to use Automated HTTPS and Telebit.Cloud" >> "$my_config" | ||||||
|   fi |   fi | ||||||
|  | 
 | ||||||
|   if [ -n "$my_relay" ]; then |   if [ -n "$my_relay" ]; then | ||||||
|     echo "relay: $my_relay" >> "$my_config" |     echo "relay: $my_relay" >> "$my_config" | ||||||
|   fi | 
 | ||||||
|     if [ -n "$my_secret" ]; then |     if [ -n "$my_secret" ]; then | ||||||
|       echo "secret: $my_secret" >> "$my_config" |       echo "secret: $my_secret" >> "$my_config" | ||||||
|     fi |     fi | ||||||
| @ -264,8 +272,12 @@ if [ ! -e "$my_config" ]; then | |||||||
|       echo "servernames:" >> "$my_config" |       echo "servernames:" >> "$my_config" | ||||||
|       echo "  $my_servernames: {}" >> "$my_config" |       echo "  $my_servernames: {}" >> "$my_config" | ||||||
|     fi |     fi | ||||||
|  |   else | ||||||
|  |     echo "relay: telebit.cloud # the relay server to use" >> "$my_config" | ||||||
|  |   fi | ||||||
|   #echo "dynamic_ports:\n  []" >> "$my_config" |   #echo "dynamic_ports:\n  []" >> "$my_config" | ||||||
|   cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config" |   cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config" | ||||||
|  | 
 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| #my_config_link="/etc/$my_app/$my_app.yml" | #my_config_link="/etc/$my_app/$my_app.yml" | ||||||
| @ -278,18 +290,29 @@ fi | |||||||
| my_config="$HOME/.config/$my_app/$my_app.yml" | my_config="$HOME/.config/$my_app/$my_app.yml" | ||||||
| mkdir -p "$(dirname $my_config)" | mkdir -p "$(dirname $my_config)" | ||||||
| if [ ! -e "$my_config" ]; then | if [ ! -e "$my_config" ]; then | ||||||
|  | 
 | ||||||
|   echo "cli: true" >> "$my_config" |   echo "cli: true" >> "$my_config" | ||||||
|  | 
 | ||||||
|   if [ -n "$my_email" ]; then |   if [ -n "$my_email" ]; then | ||||||
|     echo "email: $my_email" >> "$my_config" |     echo "email: $my_email" >> "$my_config" | ||||||
|     echo "agree_tos: true" >> "$my_config" |     echo "agree_tos: true" >> "$my_config" | ||||||
|  |   else | ||||||
|  |     echo "#email: jon@example.com # used for Automated HTTPS and Telebit.Cloud registrations" >> "$my_config" | ||||||
|  |     echo "#agree_tos: true # must be enabled to use Automated HTTPS and Telebit.Cloud" >> "$my_config" | ||||||
|   fi |   fi | ||||||
|  | 
 | ||||||
|   if [ -n "$my_relay" ]; then |   if [ -n "$my_relay" ]; then | ||||||
|     echo "relay: $my_relay" >> "$my_config" |     echo "relay: $my_relay" >> "$my_config" | ||||||
|   fi | 
 | ||||||
|     if [ -n "$my_secret" ]; then |     if [ -n "$my_secret" ]; then | ||||||
|       echo "secret: $my_secret" >> "$my_config" |       echo "secret: $my_secret" >> "$my_config" | ||||||
|     fi |     fi | ||||||
|  |   else | ||||||
|  |     echo "relay: telebit.cloud # the relay server to use" >> "$my_config" | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|   cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config" |   cat $TELEBIT_PATH/usr/share/$my_app.tpl.yml >> "$my_config" | ||||||
|  | 
 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| echo "${sudo_cmde}chown -R $my_user '$TELEBIT_PATH' # '/etc/$my_app'" | echo "${sudo_cmde}chown -R $my_user '$TELEBIT_PATH' # '/etc/$my_app'" | ||||||
| @ -325,32 +348,41 @@ elif [ -d "$my_root/etc/systemd/system" ]; then | |||||||
|   $sudo_cmd systemctl restart $my_app |   $sudo_cmd systemctl restart $my_app | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| sleep 1 | sleep 2 | ||||||
| echo "" | echo "" | ||||||
| echo "" | echo "" | ||||||
| echo "" | echo "" | ||||||
| echo "==============================================" | echo "==============================================" | ||||||
| echo "  Privacy Settings in Config" | echo "               Privacy Settings               " | ||||||
| echo "==============================================" | echo "==============================================" | ||||||
| echo "" | echo "" | ||||||
| echo "The default config file $TELEBIT_PATH/etc/$my_app.yml opts-in to" | echo "Privacy settings are managed in the config files:" | ||||||
| echo "contributing telemetrics and receiving infrequent relevant updates" | echo "" | ||||||
| echo "(probably once per quarter or less) such as important notes on" | echo "  $TELEBIT_PATH/etc/$my_app.yml" | ||||||
| echo "a new release, an important API change, etc. No spam." | echo "  $HOME/.config/$my_app/$my_app.yml" | ||||||
|  | echo "" | ||||||
|  | echo "Your current settings:" | ||||||
|  | echo "" | ||||||
|  | echo "  telemetry: true   # You ARE contributing project telemetry" | ||||||
|  | echo "  community: true   # You ARE receiving important email updates" | ||||||
|  | echo "  newsletter: false # You ARE NOT receiving regular emails" | ||||||
| echo "" | echo "" | ||||||
| echo "Please edit the config file to meet your needs before starting." | echo "Please edit the config file to meet your needs before starting." | ||||||
| echo "" | echo "" | ||||||
| sleep 2 | sleep 3 | ||||||
| 
 | 
 | ||||||
| echo "" | echo "" | ||||||
| echo "" | echo "" | ||||||
| echo "==============================================" | echo "==============================================" | ||||||
| echo "Installed successfully. Last steps:" | echo "            Launcher Configuration            " | ||||||
| echo "==============================================" | echo "==============================================" | ||||||
| echo "" | echo "" | ||||||
|  | echo "You MUST verify your email address to activate this device for your account" | ||||||
| 
 | 
 | ||||||
|  | my_stopper="" | ||||||
| if [ "systemd" == "$my_system_launcher" ]; then | if [ "systemd" == "$my_system_launcher" ]; then | ||||||
| 
 | 
 | ||||||
|  |   my_stopper="${sudo_cmde}systemctl stop $my_app" | ||||||
|   echo "Edit the config and restart, if desired:" |   echo "Edit the config and restart, if desired:" | ||||||
|   echo "" |   echo "" | ||||||
|   echo "    ${sudo_cmde}$my_edit $TELEBIT_PATH/etc/$my_app.yml" |   echo "    ${sudo_cmde}$my_edit $TELEBIT_PATH/etc/$my_app.yml" | ||||||
| @ -364,6 +396,7 @@ if [ "systemd" == "$my_system_launcher" ]; then | |||||||
| 
 | 
 | ||||||
| elif [ "launchd" == "$my_system_launcher" ]; then | elif [ "launchd" == "$my_system_launcher" ]; then | ||||||
| 
 | 
 | ||||||
|  |   my_stopper="${sudo_cmde}launchctl unload $my_root/$my_app_launchd_service" | ||||||
|   echo "Edit the config and restart, if desired:" |   echo "Edit the config and restart, if desired:" | ||||||
|   echo "" |   echo "" | ||||||
|   echo "    ${sudo_cmde}$my_edit $TELEBIT_PATH/etc/$my_app.yml" |   echo "    ${sudo_cmde}$my_edit $TELEBIT_PATH/etc/$my_app.yml" | ||||||
| @ -377,15 +410,31 @@ elif [ "launchd" == "$my_system_launcher" ]; then | |||||||
| 
 | 
 | ||||||
| else | else | ||||||
| 
 | 
 | ||||||
|  |   my_stopper="not started" | ||||||
|   echo "Edit the config, if desired:" |   echo "Edit the config, if desired:" | ||||||
|   echo "" |   echo "" | ||||||
|   echo "    ${sudo_cmde}$my_edit $my_config" |   echo "    ${sudo_cmde}$my_edit $my_config" | ||||||
|   echo "" |   echo "" | ||||||
|   echo "Or disabled the service and start manually:" |   echo "Run the service manually (we couldn't detect your system service to do that automatically):" | ||||||
|   echo "" |   echo "" | ||||||
|   echo "    $my_app --config $my_config" |   echo "    $my_app --config $my_config" | ||||||
| 
 | 
 | ||||||
| fi | fi | ||||||
|  | sleep 3 | ||||||
|  | 
 | ||||||
|  | # TODO run 'telebit status' | ||||||
|  | if [ "telebit.cloud" == $my_relay ]; then | ||||||
|  |   echo "" | ||||||
|  |   echo "" | ||||||
|  |   echo "==============================================" | ||||||
|  |   echo "                 Hey, Listen!                 " | ||||||
|  |   echo "==============================================" | ||||||
|  |   echo "" | ||||||
|  |   echo "GO CHECK YOUR EMAIL" | ||||||
|  |   echo "" | ||||||
|  |   echo "You MUST verify your email address to activate this device." | ||||||
|  |   echo "" | ||||||
|  | fi | ||||||
| 
 | 
 | ||||||
| echo "" | echo "" | ||||||
| sleep 1 | sleep 1 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user