O comando set
(quando não está configurando opções) define os parâmetros posicionais
eg
$ set a b c
$ echo $1
a
$ echo $2
b
$ echo $3
c
O --
é o padrão "não trate nada seguindo isso como uma opção"
Os "$@"
são todos os parâmetros de posição existentes.
Então a sequência
set -- haproxy "$@"
Colocará a palavra haproxy
na frente de $1
$2
etc.
por exemplo
$ echo $1,$2,$3
a,b,c
$ set -- haproxy "$@"
$ echo $1,$2,$3,$4
haproxy,a,b,c