diff --git a/README.md b/README.md index 5f2c10b..c98bbcb 100644 --- a/README.md +++ b/README.md @@ -65,12 +65,17 @@ $ ./local/check-dependencies.sh ``` Most dependencies are easily installed using a package manager, such as `brew`. -However, there are installation scripts for some dependencies, such as: +However, there are installation scripts for all dependencies, such as: ``` $ ./local/install-dependency-3proxy.sh ``` +You can automatically install all missing dependencies by passing in the install flag +``` +$ ./local/check-dependencies.sh install +``` + ## Running the Agent To run the agent, you'll need your Reflect account API key, diff --git a/local/check-dependencies.sh b/local/check-dependencies.sh index 190a0f0..b57876a 100755 --- a/local/check-dependencies.sh +++ b/local/check-dependencies.sh @@ -4,6 +4,7 @@ echo "Verifying agent dependencies" echo "-----------------------------" ExitCode=0 +AutoInstall=$1 function pad() { Result=" $1" @@ -19,6 +20,10 @@ function failed() { echo -e "\xE2\x9D\x8C failed" } +function install() { + /bin/sh -c "./install-dependency-$1.sh" +} + function missingCommands() { for command in "$@"; do Exists=$(which $command) @@ -34,9 +39,16 @@ function checkDependency() { Missing=$(missingCommands $@) echo -ne "${Name}: " - if [ $Missing ]; then failed ; else passed ; fi + if [ $Missing ] && [ $AutoInstall ] && [ $AutoInstall == "install" ]; + then install $Name ; + elif [ $Missing ]; + then failed ; + else + passed ; + fi } +checkDependency "homebrew" "brew" checkDependency "ifconfig" "ifconfig" checkDependency "wireguard-tools" "wg" "wg-quick" checkDependency "jq" "jq" diff --git a/local/install-dependency-homebrew.sh b/local/install-dependency-homebrew.sh new file mode 100755 index 0000000..5f01b82 --- /dev/null +++ b/local/install-dependency-homebrew.sh @@ -0,0 +1,2 @@ +#!/bin/bash +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" diff --git a/local/install-dependency-jq.sh b/local/install-dependency-jq.sh new file mode 100755 index 0000000..3ddf038 --- /dev/null +++ b/local/install-dependency-jq.sh @@ -0,0 +1,2 @@ +#!/bin/bash +brew install jq \ No newline at end of file diff --git a/local/install-dependency-websocat.sh b/local/install-dependency-websocat.sh new file mode 100755 index 0000000..ea3dd62 --- /dev/null +++ b/local/install-dependency-websocat.sh @@ -0,0 +1,2 @@ +#!/bin/bash +brew install websocat \ No newline at end of file diff --git a/local/install-dependency-wireguard-tools.sh b/local/install-dependency-wireguard-tools.sh new file mode 100755 index 0000000..6fd9b84 --- /dev/null +++ b/local/install-dependency-wireguard-tools.sh @@ -0,0 +1,2 @@ +#!/bin/bash +brew install wireguard-tools \ No newline at end of file