source: scripts/locker-update @ f57cc9a

release-1.10release-1.7release-1.8release-1.9
Last change on this file since f57cc9a was 72634c5, checked in by Nelson Elhage <nelhage@mit.edu>, 15 years ago
locker-update: Don't skip arches because the bare binary is missing.
  • Property mode set to 100755
File size: 1.9 KB
Line 
1#!/bin/bash
2beta=
3dryrun=
4
5usage() {
6    echo "Usage: $0 [--dry-run|-n] [--beta|-b] NEW-VERSION" >&2
7    exit 1;
8}
9
10for arg in "$@"; do
11    case $arg in
12        --beta|-b)
13            beta=1 ;;
14        --dry-run|-n)
15            dryrun=1 ;;
16        -*)
17            usage ;;
18        *)
19            test -n "$NEWVERSION" && usage
20            NEWVERSION="$arg"
21            ;;
22    esac
23done
24
25test -z "$NEWVERSION" && usage
26
27# Run this as 'locker-update NEW-VERSION' to upgrade the barnowl.real
28# symlink in all arch/ directories to point to the new version.
29
30E=
31test -n "$dryrun" && E=echo
32
33B=
34test -n "$beta" && B=-beta
35
36cd /mit/barnowl/arch/
37
38update_symlink() {
39  local dir="$1"
40  local target="$2"
41  local link="$3"
42  if [ -e "$dir/$target" ]; then
43    # update the symlink
44    $E ln -sf "$target" "$dir/$link"
45  else
46    # delete the symlink
47    $E rm -f "$dir/$link"
48  fi
49}
50
51for i in *; do
52    if [ -L "$i" ]; then
53        echo "# Skipping $i as a symbolic link..."
54    elif [ "$i" = "common" ]; then
55        echo "# Skipping 'common'..."
56    elif ! [ -e "$i/bin/$NEWVERSION" ] && \
57        ! [ "$(shopt -s nullglob; echo $i/bin/$NEWVERSION.zephyr?)" ] ; then
58        echo "# New version $NEWVERSION not built for arch $i...";
59    else
60        echo "# $i"
61
62        # Sanity -- make sure the 'barnowl' symlink is correct.
63        $E ln -sf "../../common/bin/barnowl$B" "$i/bin/barnowl$B"
64        update_symlink "$i/bin" "$NEWVERSION"         "barnowl.real$B"
65        update_symlink "$i/bin" "$NEWVERSION.zephyr3" "barnowl.real$B.zephyr3"
66        update_symlink "$i/bin" "$NEWVERSION.zephyr4" "barnowl.real$B.zephyr4"
67
68        $E ln -sf "../../common/bin/zcrypt" "$i/bin/zcrypt"
69        update_symlink "$i/bin" "zcrypt${NEWVERSION#barnowl}"         "zcrypt.real"
70        update_symlink "$i/bin" "zcrypt${NEWVERSION#barnowl}.zephyr3" "zcrypt.real.zephyr3"
71        update_symlink "$i/bin" "zcrypt${NEWVERSION#barnowl}.zephyr4" "zcrypt.real.zephyr4"
72    fi
73done;
Note: See TracBrowser for help on using the repository browser.