Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • scripts/patch/vim-patch.sh

    • Property mode changed from 100755 to 100644
    r4648865 rff1e2f9  
    1 #!/bin/bash
    2 # Create a VIM Patch
     1#!/bin/sh
     2# Jonathan Norman
    33
    4 # Get Version #
    5 #
     4# Vim branch update patch generator
     5
    66VERSION=$1
    77
     
    99#
    1010if [ "${VERSION}" = "" ]; then
    11   echo "$0 - Vim_Version"
     11  echo "$0 [Vim_version]"
    1212  echo "This will Create a Patch for Vim Vim_Version"
    1313  exit 255
    1414fi
    1515
    16 # Get the # of Patches
    17 #
    18 cd ~/tmp
    19 wget ftp://ftp.vim.org/pub/vim/patches/${VERSION}/ --no-remove-listing
    20 FILES=$(cat index.html | grep "${VERSION}" | cut -f6 -d. | cut -f1 -d'"' | sed '/^$/d' | tail -n 1)
    21 rm -f .listing
    22 rm -f index.html
     16TMP=~/tmp/vim-${VERSION}
     17PATCHDIR=${TMP}/patches
     18PATCHURL=ftp://ftp.vim.org/pub/vim/patches
    2319SERIES=$(echo ${VERSION} | sed -e 's/\.//g')
    24 SKIPPATCH=""
    25 SKIPPED=""
     20CLFS_PATCHS=http://patches.cross-lfs.org/dev/
    2621
    27 # Download VIM Source
    28 #
    29 if ! [ -e vim-${VERSION}.tar.bz2 ]; then
    30   wget ftp://ftp.vim.org/pub/vim/unix/vim-${VERSION}.tar.bz2
    31 fi
     22# Figure out patch number
     23UPDATE_NUM=$(curl -ls http://patches.cross-lfs.org/dev/ | grep vim-${VERSION} | cut -d . -f 3 | cut -d - -f 3-)
     24UPDATE_NUM=$(expr ${UPDATE_NUM} + 1)
    3225
    33 # Set Patch Number
    34 #
    35 cd ~/tmp
    36 wget http://svn.cross-lfs.org/svn/repos/patches/vim/ --no-remove-listing
    37 for num in $(seq 1 99); do
    38   PATCH_NUM=$(cat index.html | grep "${VERSION}" | grep branch_update-${num}.patch | cut -f2 -d'"' | cut -f1 -d'"'| cut -f4 -d- | cut -f1 -d. | tail -n 1)
    39   if [ "${PATCH_NUM}" = "0" -a "${num}" = "1" ]; then
    40     PATCH_NUM=$(expr ${PATCH_NUM} + 1)
    41     break
    42   fi
    43   if [ "${PATCH_NUM}" != "${num}" ]; then
    44     PATCH_NUM=$(expr ${num})
    45     break
    46   fi
    47 done
    48 rm -f index.html
     26# Download patches
     27echo "Downloading patches for VIM ${VERSION}"
     28PATCH_NUM=$(curl -s $PATCHURL/${VERSION}/ | grep " ${VERSION}." | cut -f 3- -d . | tail -n1)
     29mkdir -p $PATCHDIR
     30cd $PATCHDIR
     31curl -O -# $PATCHURL/$VERSION/$VERSION.[001-$PATCH_NUM]
    4932
    50 # Cleanup Directory
    51 #
    52 rm -rf vim${SERIES} vim${SERIES}.orig
    53 tar xvf vim-${VERSION}.tar.bz2
    54 cp -ar vim${SERIES} vim${SERIES}.orig
     33echo "Downloading source for VIM $VERSION"
     34cd $TMP
     35curl -sO ftp://ftp.vim.org/pub/vim/unix/vim-${VERSION}.tar.bz2
     36tar -xvf vim-${VERSION}.tar.bz2
     37cp -R vim${SERIES} vim${SERIES}.orig
    5538
    56 # Download and Apply Patches
    57 #
    58 install -d ~/tmp/vim-${VERSION}-patches
    59 cd ~/tmp/vim${SERIES}
    60 CURRENTDIR=$(pwd -P)
    61 PATCHURL=ftp://ftp.vim.org/pub/vim/patches/${VERSION}
    62 COUNT=1
    63 while [ ${COUNT} -le ${FILES} ]; do
    64   cd ~/tmp/vim${SERIES}
    65   DLCOUNT="${COUNT}"
    66   SKIPME=no
    67   if [ "${COUNT}" -lt "100" ]; then
    68     DLCOUNT="0${COUNT}"
    69   fi
    70   if [ "${COUNT}" -lt "10" ]; then
    71     DLCOUNT="00${COUNT}"
    72   fi
    73   for skip in ${SKIPPATCH} ; do
    74     if [ "${DLCOUNT}" = "${skip}" ]; then
    75       echo "Patch ${VERSION}.${DLCOUNT} skipped"
    76       SKIPPED="${SKIPPED} ${DLCOUNT}"
    77       SKIPME=yes
    78     fi
    79   done
    80   if [ "${SKIPME}" != "yes" ]; then
    81     if ! [ -e ${VERSION}.${DLCOUNT} ]; then
    82       cd ~/tmp/vim-${VERSION}-patches
    83       wget --quiet $PATCHURL/${VERSION}.${DLCOUNT}
    84     fi
    85     cd $CURRENTDIR
    86     patch --dry-run -s -f -Np0 -i ~/tmp/vim-${VERSION}-patches/${VERSION}.${DLCOUNT}
    87     if [ "$?" = "0" ]; then
    88       echo "Patch ${VERSION}.${DLCOUNT} applied"
    89       patch -s -Np0 -i ~/tmp/vim-${VERSION}-patches/${VERSION}.${DLCOUNT}
    90     else
    91       echo "Patch ${VERSION}.${DLCOUNT} not applied"
    92       SKIPPED="${SKIPPED} ${DLCOUNT}"
    93     fi
    94    fi
    95    COUNT=$(expr ${COUNT} + 1)
     39echo -n "Generating Patch..."
     40cd vim${SERIES}/src
     41
     42for PATCH in $(ls $PATCHDIR); do
     43        patch -Np0 -i $PATCHDIR/$PATCH
     44        # echo $PATCHDIR/$PATCH
    9645done
    9746
    98 # Cleanup Directory
    99 #
    100 for dir in $(find * -type d); do
    101   cd ~/tmp/vim${SERIES}
    102   for file in $(find . -name '*~'); do
    103     rm -f ${file}
    104   done
    105   for file in $(find . -name '*.orig'); do
    106     rm -f ${file}
    107   done
    108 done
    109 cd ~/tmp/vim${SERIES}
    110 rm -f *~ *.orig
     47cd $TMP
    11148
    112 # Create Patch
    113 #
    114 cd ~/tmp
    115 echo "Submitted By: Jim Gifford (jim at cross-lfs dot org)" > ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    116 echo "Date: `date +%m-%d-%Y`" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    117 echo "Initial Package Version: ${VERSION}" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    118 echo "Origin: Upstream" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    119 echo "Upstream Status: Applied" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    120 echo "Description: Contains all upstream patches up to ${VERSION}.${FILES}" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    121 if [ -n "${SKIPPED}" ]; then
    122   echo "             The following patches were skipped" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    123   echo "            ${SKIPPED}" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    124 fi
    125 echo "" >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    126 diff -Naur vim${SERIES}.orig vim${SERIES} >> ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch
    127 echo "Created ~/patches/vim-${VERSION}-branch_update-${PATCH_NUM}.patch."
     49# Create patch
     50echo "Submitted By: Jonathan Norman (jonathan at bluesquarelinux dot co dot uk)" > vim-${VERSION}-branch_update-$UPDATE_NUM.patch
     51echo "Date: `date +%Y-%m-%d`" >> vim-${VERSION}-branch_update-$UPDATE_NUM.patch
     52echo "Initial Package Version: ${VERSION}" >> vim-${VERSION}-branch_update-$UPDATE_NUM.patch
     53echo "Origin: Upstream" >> vim-${VERSION}-branch_update-$UPDATE_NUM.patch
     54echo "Upstream Status: Applied" >> vim-${VERSION}-branch_update-$UPDATE_NUM.patch
     55echo "Description: Contains all upstream patches up to ${VERSION}.${UPDATE_NUM}" >> vim-${VERSION}-branch_update-$UPDATE_NUM.patch
     56echo "" >> vim-${VERSION}-branch_update-$UPDATE_NUM.patch
    12857
    129 # Cleanup Directory
    130 #
    131 rm -rf vim${SERIES} vim${SERIES}.orig
     58LC_ALL=C TZ=UTC0 diff -Naur vim${SERIES}.orig vim${SERIES} >> vim-${VERSION}-branch_update-$UPDATE_NUM.patch
     59
     60echo "Done"
     61echo "Cleaning up"
     62rm -rf vim${SERIES} vim${SERIES}.orig #vim-${VERSION}.tar.bz2
     63
     64echo "Created: vim-${VERSION}-branch_update-$UPDATE_NUM.patch"
Note: See TracChangeset for help on using the changeset viewer.