-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpawsey-sync-nimbus-install
More file actions
executable file
·95 lines (81 loc) · 3.18 KB
/
pawsey-sync-nimbus-install
File metadata and controls
executable file
·95 lines (81 loc) · 3.18 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/bash
# Author cervigni
# This script creates the pawsey sync crontab and files if they do not exist
OC_PAWSEY_SYNC_DIR_NAME=pawsey-sync
## CHECK IF CRONTAB FILE FOR OWNCLOUD EXISTS, IF NOT CREATES IT
if [ ! -e "$HOME/.pawsey-sync-crontab" ]
then
/usr/bin/crontab -l > $HOME/.pawsey-sync-crontab
echo 'MAILTO=""' >> $HOME/.pawsey-sync-crontab
echo "*/5 * * * * $HOME/.pawsey-sync/pawsey-sync" >> $HOME/.pawsey-sync-crontab
crontab $HOME/.pawsey-sync-crontab
rm $HOME/.pawsey-sync-crontab
echo "- Pawsey Sync activated every 5 minutes..."
fi
## CHECK IF CONFIGURATION FILE EXISTS, if it does not create it
if [ ! -e "$HOME/.pawsey-sync-config" ]
then
mkdir "$HOME/.pawsey-sync"
cat > "$HOME/.pawsey-sync-config" << EOL
#!/bin/bash
# PLEASE READ THE DOCUMENTATION BEFORE ACTIVATING THE PAWSEY SYNC
ACTIVATE_PAWSEY_SYNC=no
# CONFIGURATION OPTIONS
OC_USERNAME=your-pawsey-username-here
OC_DEVICE_TOKEN=device-token-goes-here
# SYNC OPTIONS
NIMBUS_SYNC_DIRECTORY=/data
SYNC_WORKING_DIR=no
SYNC_HOME=no
EOL
fi
## CREATE unsync folders file for HOME SYNC only
OC_USER_HOME_DIR=$HOME
if [ ! -d "$OC_USER_HOME_DIR" ]; then
mkdir $OC_USER_HOME_DIR
fi
echo "IMPORTANT: Please edit the file .pawsey-sync-config to activate syncronization and for further options."
## CHECK IF SYNC FILE FILE EXISTS, if it does not create it
if [ ! -e "$HOME/.pawsey-sync/pawsey-sync" ]
then
cat > "$HOME/.pawsey-sync/pawsey-sync" << EOL
#!/bin/bash -l
# by cervigni
OC_SERVER=https://nextcloud.pawsey.org.au/remote.php/webdav
OC_USER_HOME=\$HOME
OC_USER_HOME_DIR=\$HOME
OC_PAWSEY_SYNC_DIR_NAME=pawsey-sync
#SOURCE USER MADE CONFIG
source "\$HOME/.pawsey-sync-config"
##ACTIVATE SYNC ONLY IF FLAG FILE EXISTS
if [ "\$ACTIVATE_PAWSEY_SYNC" == "yes" ]; then
# IF ACTIVATED - SYNC
if [ "\$SYNC_HOME" == "yes" ]; then
#CREATE SYNC DIRECTORY IF DOES NOT EXIST
direxist=\`curl -X PROPFIND "\$OC_SERVER/pawsey-sync-home" -k -u \${OC_USERNAME}:\${OC_DEVICE_TOKEN}\`
if [ -z "\$direxist" ]
then
curl -X MKCOL "\$OC_SERVER/pawsey-sync-home" -k -u \${OC_USERNAME}:\${OC_DEVICE_TOKEN}
fi
#SYNC HOME DIRECTORY EXCLUDING DIRECTORY BELOW
docker container run --rm --mount type=bind,source="\$OC_USER_HOME_DIR",target=/ocdata pawsey/pawsey_owncloud_client owncloudcmd --user \$OC_USERNAME --password \$OC_DEVICE_TOKEN /ocdata \$OC_SERVER/pawsey-sync-home
fi
if [ "\$SYNC_WORKING_DIR" == "yes" ]; then
#CREATE SYNC DIRECTORY IF DOES NOT EXIST
direxist=\`curl -X PROPFIND "\$OC_SERVER/\$OC_PAWSEY_SYNC_DIR_NAME" -k -u \${OC_USERNAME}:\${OC_DEVICE_TOKEN}\`
if [ -z "\$direxist" ]
then
curl -X MKCOL "\$OC_SERVER/\$OC_PAWSEY_SYNC_DIR_NAME" -k -u \${OC_USERNAME}:\${OC_DEVICE_TOKEN}
fi
if [ ! -d "\$NIMBUS_SYNC_DIRECTORY/\$OC_PAWSEY_SYNC_DIR_NAME" ]
then
mkdir "\$NIMBUS_SYNC_DIRECTORY/\$OC_PAWSEY_SYNC_DIR_NAME"
fi
# SYNC ONLY NIMBUS
docker container run --rm --mount type=bind,source="\$NIMBUS_SYNC_DIRECTORY/\$OC_PAWSEY_SYNC_DIR_NAME",target=/ocdata pawsey/pawsey_owncloud_client owncloudcmd --user \$OC_USERNAME --password \$OC_DEVICE_TOKEN /ocdata \$OC_SERVER/\$OC_PAWSEY_SYNC_DIR_NAME
fi
fi
EOL
#MAKE SCRIPT EXECUTABLE
chmod +x $HOME/.pawsey-sync/pawsey-sync
fi