Сайт | Скачать | Видео | Wiki

Автор Тема: Разбор программ PuppyRus. Практикум.  (Прочитано 20732 раз)

0 Пользователей и 1 Гость просматривают эту тему.

DdShurick

  • Гость
Re: Разбор программ PuppyRus. Практикум.
« Ответ #15 : 30 Апрель 2009, 00:54:09 »
Итак, по порядку
#!/bin/sh - Стандартное начало скрипта. обозначает использование bash.
PACK=`echo $1 | sed -e 's/.pet//g'` - В этой строке задаётся переменная $PACK, echo $1 обозначает прочитать набранное на клавиатуре слово, в нашем случае это имя устанавливаемого пакета, символ | обозначает "конвейер" или передать данные следующей программе, sed - потоковый текстовый редактор, -e (exec) исполнить, 's/.pet//g' - указывает заменить сочетание .pet на пустое место, т. е. просто убрать. Кавычки обозначают считать как одно слово.
pet2tgz $PACK.pet - Преобразовать pet-пакет в обычный архив tar.gz с тем же именем. Здесь вместо $PACK.pet можно написать $1, ошибки не будет.
tar -zxvf $PACK.tar.gz | sed -e 's/^.\/$PACK\///g' > $PACK.files - распаковать архив, выданный архиватором при распаковке список файлов передать на редактирование, чтобы убрать не нужное нам ./$PACK/ из начала каждой строки.
cat $PACK.files - вывести полученный список на дисплей ("Огласите весь список, пожалуйста")
# kostik wrote - коментарий, дальнейший код написал kostik.
echo "Установить пакет?"
echo "yes"
echo "no"
- вывести на дисплей этот текст, при этом кавычки не отображаются.
read doing - прочитать набранное на клавиатуре в переменную $doing
case $doing in - выбор на совпадение
"yes") - если набрано "yes", исполнить следующие команды
cd $PACK - перейти внутрь каталога $PACK
cat ../$PACK.files | cp -r ./ / - прочитать текстовый файл $PACK.files находящийся на один уровень выше ( ../ ) и передать для копирования "согласно списка" из текущего каталога ( ./ ) в корень ( / )
cat ../$PACK.files | sed -e 's/^/\//g' > /root/.packages/$PACK.files - прочитать тот же список, отредактировать (добавить в начало каждой строки слеш) и записать в файл по адресу /root/.packages/$PACK.files. Этот список используется при удалении пакета, а т. к. файлы были установлены в корень, то и путь к ним будет отсчитываться от корня. Для этого и добавляется слеш.
echo "\"$PACK\" \"$PACK: \" on \" \" \\" >> /root/.packages/alienpackages.txt - добавить строку ( >> ) в текстовый файл /root/.packages/alienpackages.txt с именем установленного пакета.
cd ../ - выходим из каталога
rm -rf $PACK
rm -f $PACK.files
rm -f $PACK.tar.gz
-
echo "Пакет установлен" - убираем следы своей деятельности.
;; - конец секции "yes"
"no") - если "no" то
echo "Выходим из процесса установки"
;;
- конец секции "no"
*) echo "Введено неправильное действие" - если набрано любое другое буквосочетание.
esac - конец выбора

В конце любого скрипта обязательна пустая строка.

DdShurick

  • Гость
Re: Разбор программ PuppyRus. Практикум.
« Ответ #16 : 10 Май 2009, 19:17:38 »
 Совсем простой скрипт для смены обоев.
Код
#!/bin/sh
cp $1 /root/Choices/ROX-background.jpg
restartwm

Поместить в /root/.config/rox.sourceforge.net/SendTo/.image_jpeg/ и назвать как нибудь, например "Обои". Теперь при правом клике по изображению в формате jpg в меню будет пункт "Обои", при нажатии на который выбранная картинка после перезагрузки иксов будет установлена как фон рабочего стола.

DdShurick

  • Гость
Re: Разбор программ PuppyRus. Практикум.
« Ответ #17 : 07 Июнь 2009, 15:50:42 »
 Если кто хочет покопаться с горячим монтированием sfs.
----------
Ручное монтирование sfs

1) Создаём пустой каталог для монтирования. Название - любое.
# mkdir /mnt/sfsfile
2) Монтируем к каталогу sfs-модуль.
# mount -o loop /mnt/home/avast.sfs /mnt/sfsfile/
3) Монтируем каталог в корень.
# mount -o remount,append:/mnt/sfsfile/=ro /
Чтобы увидеть результат надо перезагрузить иксы
# restartwm

Обратная процедура.

1) Отмонтируем от корня.
# mount -o remount,del:/mnt/sfsfile/ /
2) Отмонтируем от каталога.
# umount /mnt/sfsfile/
3) Удаляем ненужный пустой каталог.
# rmdir /mnt/sfsfile
Перезагружаем X
# restartwm

Это всё, ребята.

DdShurick

  • Гость
Re: Разбор программ PuppyRus. Практикум.
« Ответ #18 : 08 Июнь 2009, 23:00:16 »
А это проходит на full-install? Или только на frugal?
Код
 [ ! $LAYERFS ] && LAYERFS=aufs #aufs or unionfs
Это строка 16 из скрипта /init , который находится внутри initrd.gz. Если поставить параметр LAYERFS=unionfs, то третья команда (монтирование в корень) не производится. При full-установке initrd.gz не используется и этот параметр не устанавливается. Но попробовать можно. Если изменить команду так:
Код
# mount -t aufs -o remount,append:/mnt/sfsfile/=ro aufs /
В первоисточнике она именно так прописана.
Хотя зачем full , когда существует frugal ???

DdShurick

  • Гость
Re: Разбор программ PuppyRus. Практикум.
« Ответ #19 : 19 Июнь 2009, 14:37:24 »
 Предлагаю на доработку "Подключение GPRS". Годится и для простого модема.
Код
#!/bin/sh
#DdShurick - GPRS подключение
 gxmessage -encoding UTF-8  -bg "#ffc0c0" -center -name "deletingpackage" -title "Подключение GPRS" -buttons "ПОДКЛЮЧИТЬ:2,НАСТРОИТЬ:3,ОТКЛЮЧИТЬ:4,СПРАВКА:5" " текст придумайте сами "
  case $? in
  2)
rxvt -e wvdial
;;
  3)
if [ -f /etc/wvdial.conf ];then
leafpad /etc/wvdial.conf
./GPRS-Script
else echo "[Dialer Defaults]
Modem = /dev/modem
#замените на /dev/usb/ttyUSB0 или /dev/input/ttyACM0
Baud = 115200
Init1 = ATZ
Init2 = AT+CGDCONT=1,\"IP\",\"\"
#допишите строку инициализации
Carrier Check = yes
Dial Command = ATX3DT
Phone = *99#
Username =
Password =
" > /etc/wvdial.conf
leafpad /etc/wvdial.conf
./GPRS-Script
fi
;;
  4)
ifconfig ppp0 down
;;
  5)
xmessage "Ещё не написана."
./GPRS-Script
;; 
  *) exit
;;   
 esac


DdShurick

  • Гость
Re: Разбор программ PuppyRus. Практикум.
« Ответ #20 : 27 Июнь 2009, 22:12:01 »
 Скрипт для потокового TV. Ссылки на программы добавляйте по своему усмотрению.
Код
#!/bin/sh
DIALOG=${DIALOG=Xdialog}
tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $tempfile" 0 1 2 5 15

$DIALOG --clear --title "Выберите из списка:" \
        --menu "Список онлайн-TV:" 20 51 4 \
 "video.rfn.ru/vesti_24" "Вести_24" \
 "tv.gldn.net/rbc" "РБК" 2> $tempfile
if [ $? = 0 ];then
mplayer mms://`cat $tempfile`
./TV
else
exit
fi

DdShurick

  • Гость
Re: Разбор программ PuppyRus. Практикум.
« Ответ #21 : 09 Июль 2009, 22:38:00 »
 Пример простого окна-информатора, с последующим исполнением выбранного действия. Запускается кликом мыши, командой, или может быть встроено в любой скрипт.
Код
#!/bin/sh
xmessage -title "Проба" -geometry "155x155" -buttons "ДА:2,НЕТ:3" "Текст, или команда для
ввода текста, например
'cat file.txt', или
переменная '$бла-бла'"

case $? in
 2)xmessage "Слушаем музыку?"
 mplayershell http://radio.retro-retro.ru:80/ ;;
 3)xmessage "Гуляй, Вася" ;;
 *)exit ;;
esac
У кого платный траффик, рекомендую закомментировать ссылку "http://radio. ..."
« Последнее редактирование: 09 Июль 2009, 22:43:09 от DdShurick »

Оффлайн Fliker09

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1624
  • Репутация: +120/-1
  • Puppy 4ever!
Re: Разбор программ PuppyRus. Практикум.
« Ответ #22 : 23 Январь 2010, 23:24:35 »
Можно поступить очень просто - печатать через PDF-принтер (встроен в систему). На выходе получите самодостаточные .pdf файлы. Можно и по другому - сохранять в Opera как MHT (данный тип файлов также самодостаточен но позволяет в отличие от PDF сохранить интерактивность. То бишь нажмёте ссылку - и она откроется).
Я покинул проект так что прошу в случае чего писать мне на мыло!
Драйверы от разных систем НЕСОВМЕСТИМЫ!
http://wellminded.com/puppy/pupsearch.html -
 - поиск по http://www.murga-linux.com/puppy/
http://www.minus.com/ - для постоянного хранения файлов
http://rghost.ru/ - для временного хранения файлов
http://appdb.winehq.org/ - база данных WINE
http://jabberworld.info/ - всё о Jabber
http://convertfiles.com/ - конвертер файлов