aboutsummaryrefslogtreecommitdiff
path: root/lib/keyringer/actions/cp
blob: 1f4cceefdf45d097e5b250ee5ba74ceba3bcc0c4 (plain)
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
31
32
33
34
35
36
#!/usr/bin/env bash
#
# Copy secrets.
#

# Load functions
LIB="`dirname $0`/../functions"
source "$LIB" || exit 1

# Aditional parameters
CWD="`pwd`"

# Avoid leading slash
ORIG="$(keyringer_filename `echo "$2" | sed -e "s|^/*||"`)"
DEST="`echo "$3" | sed -e "s|^/*||"`"

# Set destination
if [ ! -d "$KEYDIR/$RELATIVE_PATH/$DEST" ]; then
  keyringer_get_new_file $DEST
else
  FILE="$DEST"
fi

# Check if secret exists
if ! echo "$ORIG" | grep -q '*' && [ ! -e "$KEYDIR/$RELATIVE_PATH/$ORIG" ]; then
  echo "Secret not found: $ORIG"
  exit 1
fi

# Ensure destination folder exists
mkdir -p `dirname "$KEYDIR/$FILE"`

# Run copy command
cd "$KEYDIR" && cp -a "./$RELATIVE_PATH/$ORIG" "./$FILE"
keyringer_exec git "$BASEDIR" add "keys/$FILE"
cd "$CWD"