Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Sobota, 24. máj 2025

Súbor: [Platon] / scripts / shell / vimscripts / update-vim.sh (stiahnutie)

Revízia 1.2, Wed Apr 16 00:33:42 2003 UTC (22 years, 1 month ago) by rajo


Zmeny od 1.1: +12 -2 [lines]

Added information about location of new version.

#!/bin/bash

#
# Script for updating vim sources by patches from Bram
#
# This script is OBSOLETE, but you can check new version in
# vimconfig project HERE:
#
#     http://www.platon.sk/projects/vimconfig/
#
# Developed by Lubomir Host 'rajo' <rajo AT platon.sk>
# Copyright (c) 2003 Platon SDG
# Licensed under terms of GNU General Public License.
# All rights reserved.
#

# $Platon$

# Define vim versions:
VIM_VER="vim61b"
VIM_VER_LONG="vim-6.1b"
VIM_VER_EGREP="^6\.1b\."


# Web site where patches are located
#URL="ftp://ftp.vim.org/pub/vim/patches"
URL="ftp://ftp.vim.org/pub/vim/unstable/patches/"

# Directory where Vim sources are located
#SRC_DIR="/opt/scratch/rajo/src/vim"
SRC_DIR="/opt/scratch/rajo/src/vim/unstable"

# Where save tar-bziped archiv
DIST_DIR="$HOME/public_html/vim/dist"

# '6.0.0.099' --> '98'
# for version 6.0.001 return empty string
old_version()
{
#    if [ "x$1" = "x6.0.001" ]; then
#    if [ "x$1" = "x6.1a.001" ]; then
#        echo;
#        return;
#    fi
#    echo $1 | awk 'BEGIN {FS="."} { print "." $3 - 1 }'
#    echo $1 | awk 'BEGIN {FS="."} { print ".0" $3 - 1 }'
    echo $1 | awk ' BEGIN {FS="."} { if ($3 < 11) { print ".00" $3 - 1 ; next; } if ($3 < 101) { print ".0" $3 - 1 ; next; } print "." $3 - 1 ; }'
}

# '6.0.099' --> '99'
new_version()
{
#    echo $1 | awk 'BEGIN {FS="."} { print "." $3 - 1 + 1 }'
    echo $1 | awk 'BEGIN {FS="."} { print "." $3  }'
}

download_patch()
{
    DIR=`pwd`;
    cd $SRC_DIR/patches && \
        wget -nH -nd $URL/$1 || \
            ( sleep 100;
                wget -nH -nd $URL/$1 ) || return 1 ;
    cd $DIR
}

patch_sources()
{
    DIR=`pwd`;
    cd $SRC_DIR/patches && \
        patch -p0 < $1 && \
            cd $SRC_DIR && \
                mv "$VIM_VER"`old_version $1` "$VIM_VER"`new_version $1` || return 1
    cd $DIR
}

make_distribution()
{
    DIR=`pwd`;
    DIST_FILE="$DIST_DIR/$VIM_VER_LONG`new_version $1`-all.tar.bz2"
    OLD_DIST_FILE="$DIST_DIR/$VIM_VER_LONG`old_version $1`-all.tar.bz2"
    cd $SRC_DIR && \
        tar cIf $DIST_FILE "$VIM_VER"`new_version $1` && \
            chmod a+r $DIST_FILE && \
                rm -f $OLD_DIST_FILE || return 1
    cd $DIR
}

# Analyze mail from Bram (thanks to Bram for patch :-) )
# Look for version of patch.

# Check for write lock and make it!
while [ -f "$SRC_DIR/update_vim.lock" ];
do
    echo "Waiting for pid `cat $SRC_DIR/update_vim.lock`";
    sleep 60
done

echo $PID > $SRC_DIR/update_vim.lock || exit 1

TMP_FILE=`tempfile -p update_vim || mktemp /tmp/update_vimXXXXXX || echo /tmp/update_vim$$`

## Save mail to TMP_FILE
#cat > $TMP_FILE
# Save mail to /dev/null
cat > /dev/null

# XXX: OBSOLETE!!!
#NEW_PATCH=`egrep '^Patch 6\.1a\.' $TMP_FILE | awk '{print $2}'`
#if [ -z "$NEW_PATCH" ]; then
#    echo "Can't found patch number!"
#    rm -f $SRC_DIR/update_vim.lock
#    exit 1
#fi
#
#download_patch    $NEW_PATCH && \
#patch_sources     $NEW_PATCH && \
#make_distribution $NEW_PATCH && \
#xtell `id -nu` "New distribution $NEW_PATCH succeesfully created"

# Download list of avalaible patches and download it
    wget -O - $URL | awk 'BEGIN { FS=">" } {print $2}' | \
        egrep "$VIM_VER_EGREP" | sed 's/<.*//g;' > $TMP_FILE
    
    cd $SRC_DIR/patches && \
    (
        NEW_PATCHES="`ls -1| egrep \"$VIM_VER_EGREP\" | diff - $TMP_FILE | awk '{ print $2 }'`"
        if [ -z "$NEW_PATCHES" ]; then
            echo "No new patches..."
        else
            for i in `echo $NEW_PATCHES`
            do
                download_patch $i && patch_sources  $i || exit 1
            done
            # cd $SRC_DIR/vim61a && make && make install
            make_distribution $i && \
            xtell `id -nu` "New distribution $i  --  $NEW_PATCHES succeesfully created"
        fi
        
    )
    rm -f $TMP_FILE

rm -f $TMP_FILE

#remove lock
rm -f $SRC_DIR/update_vim.lock


# vim: ts=4

Platon Group <platon@platon.sk> http://platon.sk/
Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok