On Tuesday 03 January 2006 13:46, Koen Vermeer wrote: > I'd like to be able to simply click a file on my Gnome desktop. It's > easy to tell Gnome to run 'dchroot -d oowriter', but I cannot tell it > how to pass the filename. The problem is that, if I have a file with > name 'test test.doc', I can open it by running 'dchroot -d oowriter > "test\ test.doc'. The following methods don't work: > dchroot -d oowriter test test.doc > dchroot -d oowriter test\ test.doc > dchroot -d oowriter "test test.doc" > > I expect that I'm not the only one with this problem, so how did others > solve it? Or should I be asking aroung on a Gnome list? I could never get dchroot to handle every possible valid filename directly. Even doing tricks to make things work with spaces would fail if I had a file with single-quotes, for instance. Anyway, I ended up using a pair of scripts so that I can handle ANY possible filename, including ones with mixes of single and double-quotes, spaces, or other shell metacharacters. They are attached in case they're useful. (The first one (not the .helper) is the one that is linked to the program name that should be run in the chroot.) -- Wesley J. Landaker <wjl@icecavern.net> <xmpp:wjl@icecavern.net> OpenPGP FP: 4135 2A3B 4726 ACC5 9094 0097 F0A9 8A4C 4CD6 E3D2
Attachment:
run_in_chroot_unstable-i386
Description: application/shellscript
#!/usr/bin/ruby cmdfile, program, args = ARGV def shellquote(x) "'#{x.gsub("'","'\"'\"'")}'" end File.open(cmdfile,"w") { |file| file.puts('#!/bin/sh') file.print(shellquote(program)) unless args.nil? args.each { |arg| file.print(" ") file.print(shellquote(arg)) } end file.puts }
Attachment:
pgpdM2Ox_E1l1.pgp
Description: PGP signature