forked from gambit/gambit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
relpath
executable file
·30 lines (24 loc) · 1.03 KB
/
relpath
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
#! /bin/sh
# Conversion of an absolute path to a relative path.
# Copyright (c) 2008 by Marc Feeley, All Rights Reserved.
TARGET_PATH=`echo "$1" | sed -e 's#\\\\#/#g' -e 's#//*#/#g' -e 's#/$##' -e 's#\([/]\{0,1\}\)\(.*\)#\2/#' -e 's#^/$##'`
ORIG_DIR=`echo "$2" | sed -e 's#\\\\#/#g' -e 's#//*#/#g' -e 's#/$##' -e 's#\([/]\{0,1\}\)\(.*\)#\2/#' -e 's#^/$##'`
ENABLE_MV="$3"
while test "$TARGET_PATH" != "" -a "$ORIG_DIR" != ""; do
TP_CAR=`echo "$TARGET_PATH" | sed -e 's#\([^/]*[/]\)\(.*\)#\1#'`
TP_CDR=`echo "$TARGET_PATH" | sed -e 's#\([^/]*[/]\)\(.*\)#\2#'`
OD_CAR=`echo "$ORIG_DIR" | sed -e 's#\([^/]*[/]\)\(.*\)#\1#'`
OD_CDR=`echo "$ORIG_DIR" | sed -e 's#\([^/]*[/]\)\(.*\)#\2#'`
if test "$TP_CAR" = "$OD_CAR"; then
TARGET_PATH="$TP_CDR"
ORIG_DIR="$OD_CDR"
else
break
fi
done
REL_PATH=`echo "$ORIG_DIR" | sed -e 's#[^/]*[/]#../#g'`"$TARGET_PATH"
if test "$ENABLE_MV" = "yes"; then
echo "$REL_PATH" | sed -e 's#^#/#' -e 's#^\(.*/\)\([^/][^/]*\)/\([^/][^/]*\)/$#\1current/\3/#' -e 's#^/##'
else
echo "$REL_PATH"
fi