@@ -43,6 +43,19 @@ vackup load IMAGE VOLUME
43
43
EOF
44
44
}
45
45
46
+ fulldirname () {
47
+ DIRECTORY=$( dirname " $1 " )
48
+
49
+ case " $DIRECTORY " in
50
+ /* ) ;;
51
+ .* ) ;& # fallthrough
52
+ * ) DIRECTORY=" $( pwd) /$DIRECTORY " ;;
53
+ esac
54
+ DIRECTORY=$( readlink -m " $DIRECTORY " )
55
+
56
+ echo " $DIRECTORY "
57
+ }
58
+
46
59
if [ -z " $1 " ] || [ " $1 " == " -h" ] || [ " $1 " == " --help" ]; then
47
60
usage
48
61
exit 0
@@ -66,12 +79,13 @@ cmd_export() {
66
79
67
80
# TODO: check if file exists on host, if it does
68
81
# create a option for overwrite and check if that's set
69
- # TODO: if FILE_NAME starts with / we need to error out
70
- # unless we can translate full file paths
82
+
83
+ DIRECTORY=$( fulldirname " $FILE_NAME " )
84
+ FILE_NAME=$( basename " $FILE_NAME " )
71
85
72
86
if ! docker run --rm \
73
87
-v " $VOLUME_NAME " :/vackup-volume \
74
- -v " $( pwd ) " :/vackup \
88
+ -v " $DIRECTORY " :/vackup \
75
89
busybox \
76
90
tar -zcvf /vackup/" $FILE_NAME " /vackup-volume;
77
91
then
@@ -100,12 +114,13 @@ cmd_import() {
100
114
101
115
# TODO: check if file exists on host, if it does
102
116
# create a option for overwrite and check if that's set
103
- # TODO: if FILE_NAME starts with / we need to error out
104
- # unless we can translate full file paths
117
+
118
+ DIRECTORY=$( fulldirname " $FILE_NAME " )
119
+ FILE_NAME=$( basename " $FILE_NAME " )
105
120
106
121
if ! docker run --rm \
107
122
-v " $VOLUME_NAME " :/vackup-volume \
108
- -v " $( pwd ) " :/vackup \
123
+ -v " $DIRECTORY " :/vackup \
109
124
busybox \
110
125
tar -xvzf /vackup/" $FILE_NAME " -C /;
111
126
then
0 commit comments