source: scripts/locker-update @ a5f477c

release-1.10release-1.7release-1.8release-1.9
Last change on this file since a5f477c 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
RevLine 
[5c81472]1#!/bin/bash
[2f2a643]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
[5c81472]26
[56e4869]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
[2f2a643]30E=
31test -n "$dryrun" && E=echo
[5c81472]32
[0ee43c8]33B=
34test -n "$beta" && B=-beta
35
[5c81472]36cd /mit/barnowl/arch/
37
[751ae8c]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
[5c81472]51for i in *; do
52    if [ -L "$i" ]; then
[2f2a643]53        echo "# Skipping $i as a symbolic link..."
54    elif [ "$i" = "common" ]; then
55        echo "# Skipping 'common'..."
[72634c5]56    elif ! [ -e "$i/bin/$NEWVERSION" ] && \
57        ! [ "$(shopt -s nullglob; echo $i/bin/$NEWVERSION.zephyr?)" ] ; then
[2f2a643]58        echo "# New version $NEWVERSION not built for arch $i...";
[5c81472]59    else
[2f2a643]60        echo "# $i"
[0ee43c8]61
62        # Sanity -- make sure the 'barnowl' symlink is correct.
63        $E ln -sf "../../common/bin/barnowl$B" "$i/bin/barnowl$B"
[751ae8c]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"
[0ee43c8]67
[a06334e]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"
[5c81472]72    fi
73done;
Note: See TracBrowser for help on using the repository browser.