add.in
来自「linux下各种patch的管理工具」· IN 代码 · 共 145 行
IN
145 行
#! @BASH@# This script is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License version 2 as# published by the Free Software Foundation.## See the COPYING and AUTHORS files for more details.# Read in library functionsif [ "$(type -t patch_file_name)" != function ]then if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfnsfiusage(){ printf $"Usage: quilt add [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $"Add one or more files to the topmost or named patch. Files must beadded to the patch before being modified. Files that are modified bypatches already applied on top of the specified patch cannot be added.-P patch Patch to add files to." exit 0 else exit 1 fi}in_valid_dir(){ local p=$1 path path=${p%/*} while [ "$p" != "$path" ] do if [ "$path" -ef "$QUILT_PATCHES" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PATCHES/" return 1 fi if [ "$path" -ef "$QUILT_PC" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PC/" return 1 fi p=$path path=${path%/*} done}options=`getopt -o P:h -- "$@"`if [ $? -ne 0 ]then usagefieval set -- "$options"while truedo case "$1" in -P) opt_patch="$2" shift 2 ;; -h) usage -h ;; --) shift break ;; esacdoneif [ $# -lt 1 ]then usagefipatch=$(find_applied_patch "$opt_patch") || exit 1status=0for file in $*do if ! in_valid_dir $SUBDIR$file then status=1 continue fi if file_in_patch $SUBDIR$file $patch then printf $"File %s is already in patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" >&2 [ $status -ne 1 ] && status=2 continue fi next_patch=$(next_patch_for_file $patch $SUBDIR$file) if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$SUBDIR$file" "$(print_patch $next_patch)" >&2 status=1 continue fi if [ -L $SUBDIR$file ] then printf $"Cannot add symbolic link %s\n" "$SUBDIR$file" >&2 status=1 continue fi if ! $QUILT_LIB/backup-files -b -s -L -B $QUILT_PC/$patch/ $SUBDIR$file then printf $"Failed to back up file %s\n" "$SUBDIR$file" >&2 status=1 continue fi if [ -e $SUBDIR$file ] then # The original tree may be read-only. chmod u+w $SUBDIR$file fi printf $"File %s added to patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)"doneexit $status### Local Variables:### mode: shell-script### End:# vim:filetype=sh
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?