--nextPart4280528.1OCBd24pH3
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Friday 10 August 2007 04:26:00 am Ronald Fischer wrote:
> > i do have a shell script doing :
> >=20
> > `man "#{arg}" 2> "#{tmp}/#{fm}" PIPE man2html > "#{tmp}/#{f1}"`
> >=20
> > because i want to know if there is "No manual entry for "#{arg}""
> >=20
> > then for the time being i'm using an tmp file "#{tmp}/#{fm}"  which i
> > read after to know i i get the message :
> >=20
> > "No manual entry for "#{arg}""
> >=20
> > i'm sure there is a more elegant way doing that in Ruby, avoiding
> > shelling, BUT HOW TO ?
>=20
> If you want to do it completely within Ruby, you could first slurp the
> output of man into a Ruby variable, i.e.
>=20
>   man_page=3D%x(man #{arg})
>  =20
> and if it is OK, i.e.
>=20
>   if man_page.length > 0
>      ...
> send this as stdin into man2html, i.e. something like:
>=20
>   to_html=3DIO.popen("man2html >#{f1}","w")
>   to_html.print(man_page)
>   to_html.close
>=20
> From a logical point of view, this solution has the advantage=20
> that you don't overwrite your file f1 if the man page does not exist.
>=20
> For a simpler solution (a bit dirty, but less keystrokes), you might
> consider
> the following idea, which however *does* use a shell:
>=20
>   error_message=3D%x[(man #{arg}|man2html >#{f1}) 2>&1]
>=20
> After this, error_message contains whatever man and/org man2html spilled
> out onto stderr, but f1 is always overwritten (even if there is no man
> page).
>=20
> HTH,
>=20
> Ronald

By using 'man_page=3D%x(man #{arg})' you're shelling out as well. It's the
same as writing 'man_page =3D `man #{arg}`'. However, it's probably good to
do the checking / conversion stuff inside ruby and shell out multiple times
rather than having actual program flow / code in sh scripting :D.

=2D-=20
Konrad Meyer <konrad / tylerc.org> http://konrad.sobertillnoon.com/

--nextPart4280528.1OCBd24pH3
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQBGvL8/CHB0oCiR2cwRAkCtAKCxfuGJHOUpdLwOjKx5AkKhjLtiIQCfbxpB
ild5j9gWjxozCpB0bz7WefE=
=97k1
-----END PGP SIGNATURE-----

--nextPart4280528.1OCBd24pH3--