Skip to content

install.sh: curl -o is missing its filename argument, breaking the binary download #1

Description

@dolph

Summary

The download step in install.sh is malformed and will not produce the ussher binary it then tries to install.

Location

install.sh (the curl invocation near the top of the file):

curl -L -o https://github.com/dolph/ussher/releases/latest/download/ussher

Problem

curl -o requires the output filename as its argument. As written, -o consumes the URL as the output path, leaving curl with no URL to fetch. The command will either error out or write to a file literally named after the URL, depending on how curl parses the trailing args. Either way, the subsequent install/chmod step that expects a local ussher binary will fail (or, worse, install whatever stale file happens to be in the cwd).

Expected

The flag should either pair -o with an explicit filename:

curl -L -o ussher https://github.com/dolph/ussher/releases/latest/download/ussher

…or use -O to derive the filename from the URL:

curl -LO https://github.com/dolph/ussher/releases/latest/download/ussher

Adding --fail is also worth considering so a 404 doesn't silently produce an HTML error page that then gets chmod +x'd and installed.

Impact

Anyone following the documented install path (curl ... | bash or running install.sh directly) gets a broken install. This is a straightforward release-blocker for new adopters.

Metadata

Metadata

Assignees

No one assigned

    Labels

    HighbugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions