The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Автоматизация создания скомпилированных пэкаджей во FreeBSD
#!/bin/sh
#
# pkgmake
# Create package by name or full installed tree
# Version: 1.0b
# Copyright (c) 2007 Eugene Pankratov

pkg_path="/usr/ports/packages/All"
pkg_cmd="pkg_create -yb"

usage()
{
    echo ""
    echo "Usage: `basename $0` <pkg_name>|--all"
    echo ""
    echo "Example: `basename $0` kdebase_3.5.5_3"
    echo "         `basename $0` --all"
    exit 1
}

do_package()
{
pkg_name=$1
pkg_file=${pkg_name}.tbz

    if [ ! -f ${pkg_path}/${pkg_file} ]; then
        echo -n "Creating package '${pkg_name}'... "
        ${pkg_cmd} ${pkg_name}
        echo "Done."
    else
        echo "Package ${pkg_file} already exists. Skiping"
    fi
}

do_all()
{
    echo "Creating all installed packages"
    for i in `pkg_info | awk '{ print $1 }'`
    do
        do_package ${i}
    done
}

main()
{
    if [ "$1" = "" ]; then usage
    else
        cd ${pkg_path}
        if [ "$1" = "--all" ]; then
            do_all
        else
            do_package $1
        fi
    fi

}

main $1

exit 0
 
22.01.2007 , Автор: Eugene Pankratov
Ключи: freebsd, packet, package, shell / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / FreeBSD специфика / Установка и апгрейд FreeBSD и приложений.

Обсуждение [ RSS ]
  • 1, Anonymous (?), 10:23, 26/01/2007 [ответить]  
  • +/
    "cd /usr/ports/some/dir; portupgrade -prRkDN 'pwd'" - nashe fsio
     
  • 2, Dmitry U. Karpov (?), 12:00, 29/01/2007 [ответить]  
  • +/
    Вместо
    if [ "$1" = "" ]; then ... else ...
    следует использовать case - быстрее и экономнее (а в ряде случаев экономится запуск программы '[', которая в реале есть 'test').

    Кроме того. непонятно создание процедур main, usage и do_all при отсутствии возможности создать сразу несколько пакетов.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру