On Sun, Dec 21, 2014 at 6:48 PM, Brian J. Rogers <[email protected]>
wrote:

> I know how to read a file using bash, but what I want to do is use each
> line in the file as a dependency to be passed into another command, but I
> want all the lines read in and structured as arguments for the other
> command.
>
> I'm using Effing Package Management <https://github.com/jordansissel/fpm>
> (FPM)
> to test out building some RPMs before I go through the process of learning
> to do it with Koji or something else. FPM has proven to be very simple for
> me, which is why I'm using it. When executing it, it has a flag that
> denotes a dependency and what version is required. It looks like this:
>
> -d "{dependency-package} >= {version}"
>
> I can have written as the package, version, and operator, so I don't have
> to try to parse or do any special checks to construct the line. So I want
> to be able to read each line, pre-pend '-d' then wrap it in quotes, then
> append a slash to prevent it from executing. There is a parameter after all
> the dependencies so, so I don't have to leave the last slash off. The whole
> command would look like this:
>
> fpm -s dir -t rpm -n {package} -v {version} -C /path/to/{package}/output \
>   -p {package}-VERSION.fc21.ARCH.rpm \
>   -d "{dependency-package} >= {version}" \
>   -d "{dependency-package} >= {version}" \
>   usr
>
> Sorry if it's long winded or a little difficult to understand, I wasn't
> sure how to phrase everything and hope it came out clear.
>
>
I am not quite sure I understand what your input is, but the below snippet
will let you read lines into $REPLY and will append to a string $result.

It probably doesn't entirely do what you need but should be close enough.
If not, pls share your input and we'll have you taken care off.

-snip-

result=""

while read; do
  result="${result}\n-d \"${reply}\""
done < $INFILE

echo $result

-snap-

hth
O.

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to