(maint) Move dist and arch setting out of conditional

Previously dist and arch were set inside of the else case of an if
block, which should mean that it vanishes once the block ends. Due to
either an oddity of ruby's scoping or some other bug, this has not yet
bitten us. This PR moves it out of the else block and simply ends
the conditional after the fail call, as that will exit the program
anyway.
This PR also removes a check that is unnecessary. There is previous code
which verifies that the split string has exactly 3 elements. There is no
case where any of those 3 elements could be nil when coming from a split
string. The empty string is possible, but nil is not.