5 #Description: Copy a Shaarli installation over SSH/SCP, serve it locally with php-cli
6 #Will create a local-shaarli/ directory when you run it, backup your Shaarli there, and serve it locally.
7 #Will NOT download linked pages. It's just a directly usable backup/copy/mirror of your Shaarli
8 #Requires: ssh, scp and a working SSH access to the server where your Shaarli is installed
9 #Usage: ./local-shaarli.sh
10 #Author: nodiscc (nodiscc@gmail.com)
11 #License: MIT (http://opensource.org/licenses/MIT)
15 ##### CONFIG #################
16 #The port used by php's local server
19 #Name of the SSH server and path where Shaarli is installed
20 #TODO: pass these as command-line arguments
21 remotehost="my.ssh.server"
22 remote_shaarli_dir="/var/www/shaarli"
25 ###### FUNCTIONS #############
32 remote_temp_dir=$(ssh $remotehost mktemp -d)
33 remote_ssh_user=$(ssh $remotehost whoami)
34 ssh -t "$remotehost" sudo cp -r "$remote_shaarli_dir" "$remote_temp_dir"
35 ssh -t "$remotehost" sudo chown -R "$remote_ssh_user":"$remote_ssh_user" "$remote_temp_dir"
36 scp -rq "$remotehost":"$remote_temp_dir" local-shaarli
37 ssh "$remotehost" rm -r "$remote_temp_dir"
41 #TODO: allow serving a previously downloaded Shaarli
42 #TODO: ask before overwriting local copy, if it exists
44 php -S localhost:${php_local_port}
45 echo "Please go to http://localhost:${php_local_port}"
49 ##### MAIN #################
58 PHP 5.6.0RC4 Development Server started at Mon Sep 1 21:56:19 2014
59 Listening on http://localhost:7431
60 Document root is /home/user/local-shaarli/shaarli
63 [Mon Sep 1 21:56:27 2014] ::1:57868 [200]: /
64 [Mon Sep 1 21:56:27 2014] ::1:57869 [200]: /index.html
65 [Mon Sep 1 21:56:37 2014] ::1:57881 [200]: /...