diff --git a/.requirements/ghc/darwin b/.requirements/ghc/darwin new file mode 100644 index 0000000..4c3dd9b --- /dev/null +++ b/.requirements/ghc/darwin @@ -0,0 +1 @@ +(Note: on OS X, in the course of running ghcup you will be given a dialog box to install the command line tools. Accept and the requirements will be installed for you. You will then need to run the command again.) \ No newline at end of file diff --git a/ghcup b/ghcup index cd5f7e3..9086105 100755 --- a/ghcup +++ b/ghcup @@ -1020,6 +1020,7 @@ download_to_stdout() { unpack() { [ -z "$1" ] && die "Internal error: no argument given to unpack" + mydistro=$(get_distro_alias "$(get_distro_name)") filename=$1 file_ext=${filename##*.} @@ -1028,8 +1029,13 @@ unpack() { # capability case "${file_ext}" in xz) - debug_message "xz -cd \"${filename}\" | tar -xf -" - ( xz -cd "${filename}" | tar -xf - ; ) || die "unpacking failed!" + if test "${mydistro}" = "darwin"; then + debug_message "tar -xzf \"${filename}\"" + ( tar -xzf "${filename}" ) || die "unpacking failed!" + else + debug_message "xz -cd \"${filename}\" | tar -xf -" + ( xz -cd "${filename}" | tar -xf - ; ) || die "unpacking failed!" + fi ;; gz) debug_message "gzip -cd \"${filename}\" | tar -xf -" @@ -1042,7 +1048,7 @@ unpack() { die "Unknown file extension: \"${file_ext}\"" esac - unset filename file_ext + unset mydistro filename file_ext } # @FUNCTION: ask_for_confirmation @@ -1984,6 +1990,9 @@ system_reqs_url() { "debian"|"ubuntu") printf "%s/.requirements/ghc/ubuntu" "${BASE_DOWNLOAD_URL}" ;; + "darwin") + printf "%s/.requirements/ghc/darwin" "${BASE_DOWNLOAD_URL}" + ;; *) printf "%s/.requirements/ghc/default" "${BASE_DOWNLOAD_URL}" ;;