…y use the last part of it
…have an install_command
…d-line friendly format
All spec defaults are now available in (unexported) agner_spec:defaults/1. Added agner_spec:normalize/1 which currently adds defaults to the given spec (more is like to come later)
When agner is initially installed from root, it fetches its initial index and creates /tmp/agner, but it didn't set proper permissions so that created directory was only writeable for root.
…on build/install failures
…flushed In some cases it led to behaviour that required tracing the whole agner_fetch fsm. The problem was that gen_fsm was receiving an EXIT signal within gen_fsm2 loop, which runs handle_state every time it loops. That resulted in handle_state(buildable, State) being invoked twice and therefore a 'next' event that signals state transition was sent twice and the second one was immediately processed by installable/2 which made it proceed to the next state immediately. For installable/2, this next step is a routine fsm shutdown. Long story short, it make agner_fetch skip the installation part.
…s for build & install commands