/
hubbitus
/
shell.scripts
Обзор
Документация
Войти
/
hubbitus
/
shell.scripts
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
make_patch
71 строка
3 KB
Pavel Alexeev
Changes in yakuake.start.dbus, new repomirror versions, tar.xz.pack now may pack meny sources
11 авг 2013, 15:53
11 авг 2013, 15:53
4dab2a8
Код
Авторство
О чём код?
#!/bin/bash #Создание и прикладывание патчей. Личный опыт. (http://volgograd.lug.ru/wiki/TarasAblamsky/articles/DiffAndPatch) # Создание: #1. разворачивам дерево исходников в рабочий каталог. Например /var/tmp/sources #2. работаем с файлами, вносим изменения, отлаживаем #3. удаляем резервные копии (find -name "*~" -exec rm -f {} \;) #4. разворачиваем оригинальное дерево исходников в директорию рядом, Например /var/tmp/sources.orig #5. делаем патч: cd /var/tmp; diff -k.orig -Naur sources > my-cool-feature.patch #6. патч my-cool-feature.patch готов # Прикладывание: #1. разворачивам дерево исходников в рабочий каталог. Например /var/tmp/sources #2. копируем патч в каталог с исходниками (cp my-cool-feature.patch /var/tmp/sources/) #3. прикладывам патч: cd /var/tmp/sources; patch -p1 -s < my-cool-feature.patch #4. исходники пропатчены ################################ #$1 - source-dir, ИЗМЕНЕННОЕ #$2 - Имя файла-патча #$3 - суффикс оригинальных исходников, если не задан, то .orig suff='.orig' orig_dir='' if [ "$1" == "" ] then echo Не задана директория source, которую обрабатывать! Завершаю работу. exit 1 else if [ "$2" == "" ] then echo "Не задано имя выходного файла-патча! Завершаю работу." 1>&2 exit 2 else if [ "$3" == "" ] then if [ ! -f $1$suff ] && [ ! -d $1$suff ] then echo Не задан суффикс директории-оригинала. echo "Директория(файл) поумолчанию - $1$suff тоже не найдена! Завершаю работу." 1>&2 exit 3 else orig_dir="$1$suff" fi else if [ -d "$1$3" ] then orig_dir="$1$3" else if [ -d "$3" -o -f "$3" ] then echo "'$3' задана директория(файл) а не суффикс, используем ее." 1>&2 orig_dir="$3" else echo "Оригинальная директория не найдена. Завершаю работу." 1>&2 exit 4 fi fi fi fi fi #diff -k$suff -Naur $1 > $2 #echo diff -NaurEbBH $addon_diff_options $orig_dir $1 #set -x # Eval to allow in $addon_diff_options any options including arguments with spaces in quotes. # see http://www.linuxquestions.org/questions/programming-9/bash-generating-a-string-containing-options-and-using-with-kdialog-648873/ # But -u do NOT overrided by -U<n> and uses 3 lines of context. Futhermore, second -U<n> also do not have any effect :( eval diff ${DIFF_OPTIONS:-'-NurEbBH'} $addon_diff_options $orig_dir $1 > $2