/
serggt1
/
scripts
Обзор
Документация
Войти
/
serggt1
/
scripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
mkpkg
120 строк
3 KB
Sergey Ponomarev
initial commit
02 мар 2011, 12:30
02 мар 2011, 12:30
0c59453
Код
Авторство
О чём код?
#!/bin/bash # makes package using filelist this_dir=`pwd` package_name=`basename $this_dir` package_source_dir="$this_dir/content" output_file=$package_name".package"; commands_path=$package_name".commands"; b_empty_fileslist=0 function usage { echo "Usage: mkpkg [ARGS]"; echo "Required args:"; echo " -n, --package-name package file name will be \"[package_name].package\""; echo " -s, --package-source-dir directory with package source files"; echo ""; echo "Optional args:"; echo " -o, --output-file output package file"; echo " -c, --commands-path path to file with before/after installation/remove commands"; echo " -e, --empty-fileslist make package with empty fileslist"; exit 1; } while [ "$1" ]; do case "$1" in "--help"|"-h"|"-?"|"/?") usage ;; "--package-name"|"-n") if [ "$2" ]; then package_name="$2"; if [ $output_file=="" ]; then output_file=$package_name".package"; fi if [ $commands_path=="" ]; then commands_path=$package_name".commands"; fi shift else usage; fi ;; "--package-source-dir"|"-s") if [ "$2" ]; then package_source_dir="$2"; shift else usage; fi ;; "--output-file"|"-o") if [ "$2" ]; then output_file="$2"; shift else usage; fi ;; "--commands-path"|"-c") if [ "$2" ]; then commands_path="$2"; shift else usage; fi ;; "--empty-fileslist"|"-e") b_empty_fileslist=1; ;; esac shift done if [ -z "$package_name" -o -z "$package_source_dir" ]; then usage; fi output_file=$(cd $(dirname $output_file) && pwd)/$(basename $output_file); commands_path=$(cd $(dirname $commands_path) && pwd)/$(basename $commands_path); cd $this_dir #create file list cd $package_source_dir find . -depth | sed 's/\.\///' > "$this_dir/123find_result"; a=$((`wc -l < "$this_dir/123find_result"` - 1)); head -n $a "$this_dir/123find_result" > $package_name".fileslist"; rm "$this_dir/123find_result" mv -f $package_name".fileslist" "$this_dir/$package_name.fileslist" #create .archive rm -f $package_name".archive" zip -r -q $package_name".archive" * mv -f $package_name".archive" "$this_dir/$package_name.archive" cd $this_dir #create signature gpg -b $package_name".archive" if [ -f $package_name".commands" ]; then COMMANDS_FILE_EXISTS=1; fi #copy .commands to include cp -f "$commands_path" $package_name".commands"; if [ $b_empty_fileslist -eq 1 ]; then echo > $package_name".fileslist" fi rm -f $output_file zip -q $output_file $package_name".archive" $package_name".archive.sig" $package_name".fileslist" $package_name".commands" #cleanup rm -f $package_name".archive" $package_name".archive.sig" $package_name".fileslist" if [ -z $COMMANDS_FILE_EXISTS ]; then rm -f $package_name".commands" fi