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

Автор Тема: txz2dir  (Прочитано 1975 раз)

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

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
txz2dir
« : 12 Декабрь 2017, 13:53:45 »
 Скрипт для массовой распаковки пакетов Slackware *.txz. Альфа. Что добавить/убрать?
Код
#!/bin/sh
#txz2dir unpack Slackware *.txz in two dir (name and name_DEV). DdShurick GPL v2 12.12.2017
cd "$1" #path to bullddir whith packages txz
ls -1 *\.txz | while read P;
do
D=$(echo $P | sed 's/-x86.*//;s/-noarch//')
mkdir -p $D/etc/packages/mount/$D
mkdir -p ${D}_DEV/usr/{lib,share}
cd $D
tar -xJf ../$P
sh install/doinst.sh
rm -r install
[ -d usr/doc ] && mv usr/doc ../${D}_DEV/usr/share/
[ -d usr/info ] && mv usr/info ../${D}_DEV/usr/share/
[ -d usr/man ] && mv usr/man ../${D}_DEV/usr/share/
[ -d usr/include ] && mv usr/include ../${D}_DEV/usr/
[ -d usr/lib/pkgconfig ] && mv usr/lib/pkgconfig ../${D}_DEV/usr/lib/
if [ -d usr/share/locale ]; then
mkdir ../${D}_DEV/usr/share/locale
ls -1 usr/share/locale | while read L;
do
[ "$L" = "ru" -o  "$L" = "ru_RU" ] && continue
mv usr/share/locale/$L ../${D}_DEV/usr/share/locale/
done
fi
find usr ../${D}_DEV/usr -type d -empty -delete
find . ! -type d | cut -b 2- > etc/packages/mount/$D/pfs.files
cd ../
done
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64