]> git.proxmox.com Git - ceph.git/blame - ceph/src/seastar/dpdk/buildtools/relpath.sh
import 15.2.0 Octopus source
[ceph.git] / ceph / src / seastar / dpdk / buildtools / relpath.sh
CommitLineData
7c673cae 1#!/bin/sh
9f95a23c
TL
2# SPDX-License-Identifier: BSD-3-Clause
3# Copyright(c) 2010-2014 Intel Corporation
7c673cae
FG
4
5#
6# print the relative path of $1 from $2 directory
7# $1 and $2 MUST be absolute paths
8#
9
10if [ $# -ne 2 ]; then
11 echo "Bad arguments"
12 echo "Usage:"
13 echo " $0 path1 path2"
14 exit 1
15fi
16
17# get the real absolute path, derefencing symlinks
11fdf7f2 18ABS1="$(dirname $(readlink -f $1))/$(basename $1)"
7c673cae
FG
19ABS2=$(readlink -f $2)
20
21# remove leading slash
22REL1=${ABS1#/}
23REL2=${ABS2#/}
24
25left1=${REL1%%/*}
26right1=${REL1#*/}
27prev_right1=$REL1
28prev_left1=
29
30left2=${REL2%%/*}
31right2=${REL2#*/}
32prev_right2=$REL2
33prev_left2=
34
35prefix=
36
37while [ "${right1}" != "" -a "${right2}" != "" ]; do
38
39 if [ "$left1" != "$left2" ]; then
40 break
41 fi
42
43 prev_left1=$left1
44 left1=$left1/${right1%%/*}
45 prev_right1=$right1
46 right1=${prev_right1#*/}
47 if [ "$right1" = "$prev_right1" ]; then
48 right1=""
49 fi
50
51 prev_left2=$left2
52 left2=$left2/${right2%%/*}
53 prev_right2=$right2
54 right2=${prev_right2#*/}
55 if [ "$right2" = "$prev_right2" ]; then
56 right2=""
57 fi
58done
59
60if [ "${left1}" != "${left2}" ]; then
61 right2=${prev_right2}
62 right1=${prev_right1}
63fi
64
65while [ "${right2}" != "" ]; do
66 prefix=${prefix}../
67 prev_right2=$right2
68 right2=${right2#*/}
69 if [ "$right2" = "$prev_right2" ]; then
70 right2=""
71 fi
72done
73
74echo ${prefix}${right1}
75
76exit 0