Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: inštalačný script  (Přečteno 1661 krát)

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
inštalačný script
« kdy: 07 Ledna 2010, 22:26:37 »
Cieľom je aby sa užívateľovi nainštaloval program rapidshare-dl pre sťahovanie z rapidshare.com aj s odkazom do GNOME panelu..
prosím o kontrolu scriptu:
Kód: [Vybrat]
#!/bin/bash
# priecinok obsahuje:
# install.sh
# RapidShare_Logo.svg
# rapidshare-dl_0.3.6-1_all.deb

user=$USER

echo "Zadaj cestu k textovému súboru s linkami: /home/"$user"/"
read cesta

echo "Inštalujem program rapidshare-dl..."
sudo sudo dpkg -i rapidshare-dl_0.3.6-1_all.deb

echo "Vytváram textový súbor pre linky..."
echo "" >> /home/$user/$cesta

echo "Vytváram odkaz do GNOME-panela..."
echo "#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=true
Icon[sk_SK]=/usr/share/icons/scalable/apps/RapidShare_Logo.svg
Name[sk_SK]=rapidshare
Exec=rapidshare-dl '/home/"$user"/"$cesta"'
Name=rapidshare
Icon=/usr/share/icons/scalable/apps/RapidShare_Logo.svg
" >> /home/$user/.gnome2/panel2.d/default/launchers/rapidshare.desktop

echo "Kopírujem ikonu odkazu..."
cp RapidShare_Logo.svg /usr/share/icons/scalable/apps/RapidShare_Logo.svg

exit 1

celý inštalačný súbor je na http://www.romiix.org/rapidshare-pack.zip
.. je to môj prvý bash-pokus takže zhovievavo a tiež prosím o zdržanie komentárov o zbytočnosti scriptu
« Poslední změna: 07 Ledna 2010, 22:39:47 od romciiik »

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: inštalačný script
« Odpověď #1 kdy: 08 Ledna 2010, 01:33:29 »
imho je ten skript uplne zbytecny :D :D (ale ne, po tom co dneska-vlastne uz vcera- predvedl Roman Hornik (neber si to tak, Romane  ;) ), je to vrchol ucelnosti  ;D )
takze par poznamek:
1) user=$USER - naprosto zbytecne, vsude, kde jsi pouzivas "$user" jsi mohl stejne dobre pouzit "$USER" a zbytecne to nekomplikovat... nebo jsi misto '/home/"$user"' mohl rovnou pouzit ~

2) zadavat tam cestu, tak jak to tam mas neni zrovna nejlepsi napad, prumerny uzivatel tam napise klidne treba /home/petr/souborsodkazy , coz bude po doplneni tebou predvyplneneho /home/"$user"/ blbost (reseni - napr donutit uzivatele napsat celou cestu, nebo pouzit file chooser dialog v zenity)

3) proc tam mas to sudo 2x?

4) nepouzivej ">>" - uzivatel ten skript muze spustit dvakrat a zase z toho vyleze blbost

5) [sk_SK] - je tady zbytecny - neni to nijak jazykove specificky a nevim jak by to vypadalo napr v ceskem nebo anglickem systemu

6) kdyz program skonci uspesne vraci 0 a ne 1
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Re: inštalačný script
« Odpověď #2 kdy: 08 Ledna 2010, 12:17:04 »
1) použil som ~
2) použil som zenity
3) opravené, preklep
4) opravené
5) vyhodené
6) opravené
- doplnené overovanie prítomnosti potrebných súborov, prie inštaláciu prípadne ich stiahnutie
http://paste.lubomirr.eu/287 install.sh so zvýraznením syntaxe
Kód: [Vybrat]
#!/bin/bash
# Create by Roman Mátyus (c) 2010
# v 0.2
#
# Inštalátor programu rapidshare-dl určeného pre sťahovanie zo servra rapidshare.com spolu
# s nastavením ikony pre rýchle spustenie do GNOME panela

# Kontrola existencie ikony, stiahnutie prípadne error
if [ ! -e RapidShare_Logo.svg ] ; then
echo "Sťahujem súbor RapidShare_Logo.svg...";
wget http://upload.wikimedia.org/wikipedia/en/3/3b/RapidShare_Logo.svg
if [ ! -e RapidShare_Logo.svg ] ; then
echo "Súbor RapidShare_Logo.svg sa nepodarilo stiahnuť!
Nie je možné pokračovať v inštalácií!"
exit 1
fi
fi

# Kontrola existencie inštalačného súboru, stiahnutie prípadne error
if [ ! -e rapidshare-dl_0.3.6-1_all.deb ] ; then
echo "Sťahujem súbor rapidshare-dl_0.3.6-1_all.deb...";
wget https://edge.launchpad.net/%7Ezootropo/+archive/+files/rapidshare-dl_0.3.6-1_all.deb
if [ ! -e rapidshare-dl_0.3.6-1_all.deb ] ; then
echo "Súbor rapidshare-dl_0.3.6-1_all.deb sa nepodarilo stiahnuť!
Nie je možné pokračovať v inštalácií!"
exit 1
fi
fi

echo "Inštalujem program rapidshare-dl..."
sudo dpkg -i rapidshare-dl_0.3.6-1_all.deb

echo "Zadaj cestu k textovému súboru s linkami..."
FILE=`zenity --file-selection --save --title="Výber súboru"`
case $? in
0)
echo "Vybraný súbor „$FILE“.";;
1)
echo "Nebol vybraný žiadny súbor.
Nie je možné pokračovať v inštalácií!"
exit 1;;
-1)
echo "Nebol vybraný žiadny súbor.
Nie je možné pokračovať v inštalácií!"
exit 1;;
esac

echo "Vytváram textový súbor pre linky..."
echo "" > $FILE

echo "Vytváram odkaz do GNOME-panela..."
echo "#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=true
Exec=rapidshare-dl '"$FILE"'
Name=rapidshare
Icon=/usr/share/icons/scalable/apps/RapidShare_Logo.svg
" > ~/.gnome2/panel2.d/default/launchers/rapidshare.desktop

echo "Kopírujem ikonu odkazu..."
cp RapidShare_Logo.svg /usr/share/icons/scalable/apps/RapidShare_Logo.svg

exit 0
Ešte sa mi nejako nepozdáva, že súbor s odkazom sa síce vytvorí ale v GNOME panely sa to neprejaví. Pravdepodobne treba aspoň relogin. Teraz nemôžem otestovať, ešte pár hodín uploadujem. Dá sa nejako zariadiť znovunačítanie ikôn, aby sa zmeny prejavili okamžite?

Ďakujem MacHalovi za konštruktívnu kritiku a prosím o ďalšiu;)

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: inštalačný script
« Odpověď #3 kdy: 08 Ledna 2010, 14:29:16 »
ad gnome-panel: vetsinou se pouziva killall gnome-panel (gnome-session by si ho hned automaticky melo spustit znova, ale obcas muze byt problem napr. s nejakymi aplety apod.)
jinak podle toho co jsem u sebe zkousel, to co pouzivas na vytvoreni ikony na panelu nestaci - koneckoncu, jak by se urcila napr. poloha te ikony, ze?
podle toho co jsem zbezne zkousel , tak by se spolecne s tim mela tvorit polozka v .gconf/apps/panel/objects ( asi pomoci gconftool-2 )

imho jdou nejak tvorit polozky v menu (na panelu mozna taky) multiplatformne a jednoduseji, takze zkus zagooglit, nebo se zkus nekoho zeptat (jestli to tady nekdo vi, tak nejspis quaker )

EDIT: jo, mel jsem pravdu, vytvorenim
/usr/share/applications/jmenoprogramu.desktop nebo ~/.local/share/applications/jmenoprogramu.desktop

k tomu zenity: nevim jestli je defaultne instalovane, bacha na to
« Poslední změna: 08 Ledna 2010, 18:27:21 od MacHala »
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

romciiik

  • Stálý člen
  • **
  • Příspěvků: 532
    • romiix.org
Re: inštalačný script
« Odpověď #4 kdy: 08 Ledna 2010, 17:21:38 »
zenity - prerobím to asi tak, že skúsim detekovať či je nainštalované (ešte neviem ako) a ak nie je vypýta si program cestu písanú ručne

podla toho čo som doteraz zistil, sa mení súbor
Kód: [Vybrat]
~/.gconf/apps/panel/general/%gconf.xmlpridáva sa do
Kód: [Vybrat]
~/.gconf/apps/panelpriečinok object_[cislo] so súborom %gconf.xml

Kód: [Vybrat]
killall gnome-panelu mňa funguje, aj keď to podla mňa nie je ideálne riešenie

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: inštalačný script
« Odpověď #5 kdy: 08 Ledna 2010, 17:43:26 »
napr.
Kód: [Vybrat]
which zenity 2> /dev/null 1>&2 && echo nainstalovano
v tom gconf/... mas ocividne trochu jinou strukturu nez ja (asi jina verze gnome) , celkem by me zajimalo jak presne object_x/%gconf.xml planujes vytvaret (je potreba proparsovat xmlka ostatnich objektu atd)
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

 

Provoz zaštiťuje spolek OpenAlt.