From: John P. <jo...@xl...> - 2003-09-22 20:35:05
|
I have an app (basically just a shell script in a wrapper) that I use to convert files between RTF and Wordsmith's PDB format for use on me Palm. However, there is a strange effect. If I use the app from the command line, I get a valid output file. If I use the app in the SendTo menu, I do not. Inspecting the output files shows that one difference (there might be more, but this might be the one) is that the beginning of the file should show just the file's leafname. However, after conversion using the SendTo menu, it contains the full pathname. So, for example, a correct start to the file is: JCS00784..... whereas an incorrect start is /home/john/Choices/SendTo/JCS007... (After this test, I get <nul> and other control characters showing in nedit.) Is there any way to get this working properly? It's annoying to have to use the command line when Rox offers this useful little tool! John -- John Pettigrew Headstrong Games jo...@he... Fun : Strategy : Price http://www.headstrong-games.co.uk/ Board games that won't break the bank |
From: BluPhoenyx <qu...@dc...> - 2003-09-22 21:22:44
|
On Mon, 22 Sep 2003 21:12:35 +0100 John Pettigrew <jo...@xl...> wrote: > So, for example, a correct start to the file is: > JCS00784..... > whereas an incorrect start is > /home/john/Choices/SendTo/JCS007... You could have your script parse the filename. I'm a bit rusty on this but bash handles that stuff very well. Then once the names valid, the script can continue. If done properly, the script could still be called from the CLI as well as the send to menu. -- Cheers, Mike T. Linux user #169067 |
From: John P. <jo...@xl...> - 2003-09-23 09:23:27
|
In a previous message, BluPhoenyx <qu...@dc...> wrote: > On Mon, 22 Sep 2003 21:12:35 +0100 John Pettigrew <jo...@xl...> > wrote: > > > So, for example, a correct start to the file is: JCS00784..... whereas an > > incorrect start is /home/john/Choices/SendTo/JCS007... > > You could have your script parse the filename. I'm a bit rusty on this but > bash handles that stuff very well. Then once the names valid, the script can > continue. If done properly, the script could still be called from the CLI as > well as the send to menu. Hmm. I don't know enough bash for that. I think this might be the prompting I need to delve into python and write a pretty front end for it that deals with the parsing. It looks like Rox makes that pretty easy :-) Thanks, John -- John Pettigrew Headstrong Games jo...@he... Fun : Strategy : Price http://www.headstrong-games.co.uk/ Board games that won't break the bank |
From: Preben R. <ra...@pv...> - 2003-09-23 09:37:55
|
John Pettigrew <jo...@xl...> wrote on 23/09/2003 (11:29) : > Hmm. I don't know enough bash for that. I think this might be the prompting I > need to delve into python and write a pretty front end for it that deals with > the parsing. It looks like Rox makes that pretty easy :-) No need for python. Please post your bash script and I'll show you. Preben |
From: John P. <jo...@xl...> - 2003-09-23 10:37:06
|
In a previous message, Preben Randhol <ra...@pv...> wrote: > No need for python. Please post your bash script and I'll show you. OK. The script I'm using (which I got from someone else!) is this. #!/bin/sh clear echo name=$(ls "$1" | sed -e "s/".rtf"//1") wsconv -n -ps "$1" "$name.pdb" "$name" echo Converted \'$1\' to \'$name.pdb\' as \'$name\'. echo This works if I use it from the command line, but not the SendTo menu. If I use this (far simpler) script, I get no problems. #!/bin/sh clear echo name=$(basename "$1" .rtf) wsconv -n -ps "$1" "$name.pdb" "$name" echo Converted \'$1\' to \'$name.pdb\' as \'$name\'. echo Which is nice :-) The only drawback with this is that is saves the resultant file in my home directory rather than next to the existing file. Is there any way to extract the pathname portion of $1 and pass that as part of the output filename? Thanks, John -- John Pettigrew Headstrong Games jo...@he... Fun : Strategy : Price http://www.headstrong-games.co.uk/ Board games that won't break the bank |
From: Stuart L. <aqu...@kr...> - 2003-09-23 10:48:07
|
John Pettigrew spoo'd forth: > The only drawback with this is that is saves the resultant file in my home > directory rather than next to the existing file. Is there any way to extract > the pathname portion of $1 and pass that as part of the output filename? dirname, which is like basename except that it gives you the path and not the filename, rather than the filename and not the path. Aq. -- According to your theory, if a woman can have a baby in nine months then nine women should be able to have a baby in one month. -- Dante, Angst Technology |
From: Stuart L. <aqu...@kr...> - 2003-09-23 10:27:39
|
John Pettigrew spoo'd forth: >> You could have your script parse the filename. I'm a bit rusty on this but >> bash handles that stuff very well. Then once the names valid, the script can >> continue. If done properly, the script could still be called from the CLI as >> well as the send to menu. > > Hmm. I don't know enough bash for that. The 'basename' command does it for you... Aq. -- Using Cold Fusion to teach programming concepts is like using collage to teach surgery. -- Steven Champeon, webdesign-l |
From: Preben R. <ra...@pv...> - 2003-09-23 09:37:33
|
John Pettigrew <jo...@xl...> wrote on 23/09/2003 (09:23) : > I have an app (basically just a shell script in a wrapper) that I use to > convert files between RTF and Wordsmith's PDB format for use on me Palm. > However, there is a strange effect. If I use the app from the command line, I > get a valid output file. If I use the app in the SendTo menu, I do not. > Inspecting the output files shows that one difference (there might be more, > but this might be the one) is that the beginning of the file should show just > the file's leafname. However, after conversion using the SendTo menu, it > contains the full pathname. > > So, for example, a correct start to the file is: > JCS00784..... > whereas an incorrect start is > /home/john/Choices/SendTo/JCS007... Just use basename in your script. Assuming bash: FILENAME=$(basename $1) Preben |
From: Thomas L. <ta...@ec...> - 2003-09-23 09:38:35
|
On Mon, Sep 22, 2003 at 09:12:35PM +0100, John Pettigrew wrote: > I have an app (basically just a shell script in a wrapper) that I use to > convert files between RTF and Wordsmith's PDB format for use on me Palm. > However, there is a strange effect. If I use the app from the command line, I > get a valid output file. If I use the app in the SendTo menu, I do not. > Inspecting the output files shows that one difference (there might be more, > but this might be the one) is that the beginning of the file should show just > the file's leafname. However, after conversion using the SendTo menu, it > contains the full pathname. > > So, for example, a correct start to the file is: > JCS00784..... > whereas an incorrect start is > /home/john/Choices/SendTo/JCS007... The basename command will give you just the leafname. -- Thomas Leonard http://rox.sourceforge.net tal00r at ecs.soton.ac.uk tal197 at users.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Preben R. <ra...@pv...> - 2003-09-23 12:51:32
|
John Pettigrew <jo...@xl...> wrote on 23/09/2003 (12:42) : > name=$(basename "$1" .rtf) filepath=$(dirname "$1") > > wsconv -n -ps "$1" "$name.pdb" "$name" wsconv -n -ps "$1" "$filepath/$name.pdb" "$name" > The only drawback with this is that is saves the resultant file in my home > directory rather than next to the existing file. Is there any way to extract > the pathname portion of $1 and pass that as part of the output filename? See above. Preben |
From: John P. <jo...@xl...> - 2003-09-23 13:23:39
|
In a previous message, Preben Randhol <ra...@pv...> wrote: > John Pettigrew <jo...@xl...> wrote on 23/09/2003 (12:42) : > > name=$(basename "$1" .rtf) > > filepath=$(dirname "$1") Great! Now everything works how it should :-) Thanks all for the pointers! If anyone ever needs these scripts, I've put the finished versions at http://www.xl-cambridge.com/linux/ John -- John Pettigrew Headstrong Games jo...@he... Fun : Strategy : Price http://www.headstrong-games.co.uk/ Board games that won't break the bank |
From: Keith <kr...@op...> - 2003-09-23 14:39:10
|
* John Pettigrew <jo...@xl...> [23/09/2003 0632EDT]: [script stuff ...] > The only drawback with this is that is saves the resultant file in my > home directory rather than next to the existing file. Is there any way > to extract the pathname portion of $1 and pass that as part of the > output filename? always a litte late with responses.. but anyway: Assuming you use bash as your shell of choice, this is easily done: --- begin example kw@vader[1]:~$ file=/path/to/some/file kw@vader[1]:~$ echo "${file}" /path/to/some/file kw@vader[1]:~$ echo "${file##*/}" # leading dirs removed file kw@vader[1]:~$ echo "${file%/*}" # last leaf removed /path/to/some --- end example Take a look at the bash man page in the Parameter Expansion subsection of the EXPANSION section. bashprompt$ \ > PAGER="less -p '^[[:space:]]*Parameter[[:space:]]*Expansion'" \ > man bash -- Keith R. John Warno [k r j w at optonline dot net] "Unknown request. The server is confused. (code GE)" -- a Yahoo! HTTP error message |