Sida 1 av 1

kubuntu action script

Postat: 22 maj 2011, 20:07
av BadOmen
Hej
Det här skapar en meny i Dolphin(Nautilus motsvarighet i kubuntu) men det skapar inte filen tmpHTML.txt som jag hade tänkt...

Mitt python skript fungerar som det ska i terminalen. Följande kod skriver ut text till stdout

Kod: Markera allt

python ~/bin/fixHTML.py -t -f filnamn
och nu vill jag styra det till en fil i stället, det fungerar också i terminalen men inte när jag startar skriptet från menyn, vad är det som är fel?

En fråga till, hur får man stdout att gå direkt till utklippshanteraren klipper? I stället för en fil som jag har försökt med.

Här är koden jag kör.

Kod: Markera allt

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/x-shellscript;text/x-python;
Actions=htmlCode

[Desktop Action htmlCode]
Name=Skapa HTML kod
Icon=background
Exec=python ~/bin/fixHTML.py -t -f %u > tmpHTML.txt
EDIT:
Jag har lyckats få den att skriva till en fil nu.
Jag mellanlandade i denna fil (fixHTML.sh) :

Kod: Markera allt

#!/bin/bash
if [[ -f "$1" ]]; then # True if FILE exists and is a regular file.
	selectedFile="$1"
	python ~/bin/fixHTML.py -t -f $selectedFile> ~/bin/tmpHTML.txt 
fi
Och Exce raden ser ut så här nu:

Kod: Markera allt

Exec=~/bin/fixHTML.sh %u
Jag har alltså skapat en bashfil som få ta om hand det jag försökte göra på Exec raden.

EDIT2:
Nu har jag fått det att hamna i klipper också så nu har jag inga fler frågor obesvarade :)

Jag fick mellanlandai detta skript:

Kod: Markera allt

#!/bin/bash
if [[ -f "$1" ]]; then # True if FILE exists and is a regular file.
	selectedFile="$1"
	python ~/bin/shPyCodeToHTML/fixHTML.py -t -f $selectedFile | ~/bin/shPyCodeToHTML/stdinToKlipper.sh
fi
och där skicka vidare det till det här skriptet (hittade det här milianw):

Kod: Markera allt

if ! tty -s && stdin=$(</dev/stdin) && [[ "$stdin" ]]; then
  # get the rest of stdin
  stdin=$stdin$'\n'$(cat)
  # oh, nice - user input! we set that as current
  # clipboard content
  qdbus org.kde.klipper /klipper setClipboardContents "$stdin"
  exit
fi