diff --git a/install.sh b/install.sh index 61dff00d..853aa8ac 100755 --- a/install.sh +++ b/install.sh @@ -23,7 +23,7 @@ The remote host must have internet access. ${not_curl_usage-} Usage: - $arg0 [--dry-run] [--version X.X.X] [--method detect] \ + $arg0 [--dry-run] [--version X.X.X] [--edge] [--method detect] \ [--prefix ~/.local] [--rsh ssh] [user@host] --dry-run @@ -32,6 +32,9 @@ Usage: --version X.X.X Install a specific version instead of the latest. + --edge + Install the latest edge version instead of the latest stable version. + --method [detect | standalone] Choose the installation method. Defaults to detect. - detect detects the system package manager and tries to use it. @@ -71,8 +74,12 @@ EOF } echo_latest_version() { - # https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c#gistcomment-2758860 - version="$(curl -fsSLI -o /dev/null -w "%{url_effective}" https://github.com/cdr/code-server/releases/latest)" + if [ "${EDGE-}" ]; then + version="$(curl -fsSL https://api.github.com/repos/cdr/code-server/releases | awk 'match($0,/.*"html_url": "(.*\/releases\/tag\/.*)".*/)' | head -n 1 | awk -F '"' '{print $4}')" + else + # https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c#gistcomment-2758860 + version="$(curl -fsSLI -o /dev/null -w "%{url_effective}" https://github.com/cdr/code-server/releases/latest)" + fi version="${version#https://github.com/cdr/code-server/releases/tag/}" version="${version#v}" echo "$version" @@ -135,6 +142,7 @@ main() { OPTIONAL \ ALL_FLAGS \ RSH_ARGS \ + EDGE \ RSH ALL_FLAGS="" @@ -170,6 +178,9 @@ main() { --version=*) VERSION="$(parse_arg "$@")" ;; + --edge) + EDGE=1 + ;; --rsh) RSH="$(parse_arg "$@")" shift