File: common-v

package info (click to toggle)
rcs 5.10.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,348 kB
  • sloc: ansic: 47,019; sh: 4,939; makefile: 169
file content (51 lines) | stat: -rw-r--r-- 1,568 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# common-v (versioning) variables / subroutines

# Copyright (C) 2016-2022 Thien-Thi Nguyen
#
# This file is part of GNU RCS.
#
# GNU RCS is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GNU RCS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# (shell-script-mode)

# variables

# Look at the last "word" on the first line of ‘rcs --version’ output.
ver=`rcs --version 2>&1 | sed -e 's/.* //' -e 1q`

# RCS 5.7 and earlier do not support ‘--version’, displaying instead:
#  rcs: unknown option: --version
# In that case, try again w/ ‘-V’.
test x"$ver" = x--version \
    && ver=`rcs -V 2>&1 | sed -e 's/.* //' -e 1q`

# functions

vsort ()
{
    # Poor man's ‘sort -V’.
    # Thanks autotools!  Long live GNU coreutils!
    # (grep "grep -nHFe 'sort -' ../configure")
    sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 -k5,5
}

version_at_least ()
{
    # $1 -- minimal version number (MAJOR.MINOR or MAJOR.MINOR.PATCH)
    minver=$1
    first=`printf '%s\n%s\n' $ver $minver | vsort | sed 1q`
    test x"$first" = x"$minver"
}

# common-v ends here