@@ -78,6 +78,19 @@ error() {
78
78
handle_error $LINE_NUMBER $CODE
79
79
}
80
80
81
+ fulldirname () {
82
+ DIRECTORY=$( dirname " $1 " )
83
+
84
+ case " $DIRECTORY " in
85
+ /* ) ;;
86
+ .* ) ;& # fallthrough
87
+ * ) DIRECTORY=" $( pwd) /$DIRECTORY " ;;
88
+ esac
89
+ DIRECTORY=$( readlink -m " $DIRECTORY " )
90
+
91
+ echo " $DIRECTORY "
92
+ }
93
+
81
94
if [ -z " $1 " ] || [ " $1 " == " -h" ] || [ " $1 " == " --help" ]; then
82
95
usage
83
96
exit 0
@@ -98,12 +111,13 @@ cmd_export() {
98
111
99
112
# TODO: check if file exists on host, if it does
100
113
# create a option for overwrite and check if that's set
101
- # TODO: if FILE_NAME starts with / we need to error out
102
- # unless we can translate full file paths
114
+
115
+ DIRECTORY=$( fulldirname " $FILE_NAME " )
116
+ FILE_NAME=$( basename " $FILE_NAME " )
103
117
104
118
if ! docker run --rm \
105
119
-v " $VOLUME_NAME " :/vackup-volume \
106
- -v " $( pwd ) " :/vackup \
120
+ -v " $DIRECTORY " :/vackup \
107
121
busybox \
108
122
tar -zcvf /vackup/" $FILE_NAME " /vackup-volume;
109
123
then
@@ -137,12 +151,12 @@ cmd_import() {
137
151
exit 1
138
152
fi
139
153
140
- # TODO: if FILE_NAME starts with / we need to error out
141
- # unless we can translate full file paths
154
+ DIRECTORY= $( fulldirname " $FILE_NAME " )
155
+ FILE_NAME= $( basename " $FILE_NAME " )
142
156
143
157
if ! docker run --rm \
144
158
-v " $VOLUME_NAME " :/vackup-volume \
145
- -v " $( pwd ) " :/vackup \
159
+ -v " $DIRECTORY " :/vackup \
146
160
busybox \
147
161
tar -xvzf /vackup/" $FILE_NAME " -C /;
148
162
then
0 commit comments