Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Программирование и компиляция => Тема начата: DdShurick от 12 Декабрь 2017, 13:53:45

Название: txz2dir
Отправлено: DdShurick от 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