]>
Commit | Line | Data |
---|---|---|
5409ade2 A |
1 | Example bash script (creates multiple shaarli instances and generates an HTML index of them) |
2 | ||
3 | ```bash | |
4 | #!/bin/bash | |
5 | set -o errexit | |
6 | set -o nounset | |
7 | ||
8 | #config | |
9 | shaarli_base_dir='/var/www/shaarli' | |
10 | accounts='bob john whatever username' | |
11 | shaarli_repo_url='https://github.com/shaarli/Shaarli' | |
12 | ref="master" | |
13 | ||
14 | #clone multiple shaarli instances | |
53ed6d7d | 15 | if [ ! -d "$shaarli_base_dir" ]; then mkdir "$shaarli_base_dir"; fi |
5409ade2 A |
16 | |
17 | for account in $accounts; do | |
53ed6d7d | 18 | if [ -d "$shaarli_base_dir/$account" ]; |
19 | then echo "[info] account $account already exists, skipping"; | |
20 | else echo "[info] creating new account $account ..."; git clone --quiet "$shaarli_repo_url" -b "$ref" "$shaarli_base_dir/$account"; fi | |
5409ade2 A |
21 | done |
22 | ||
23 | #generate html index of shaarlis | |
24 | htmlhead='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | |
25 | <!-- Minimal html template thanks to http://www.sitepoint.com/a-minimal-html-document/ --> | |
26 | <html lang="en"> | |
27 | <head> | |
28 | <meta http-equiv="content-type" content="text/html; charset=utf-8"> | |
29 | <title>My Shaarli farm</title> | |
30 | <style>body {font-family: "Open Sans"}</style> | |
31 | </head> | |
32 | <body> | |
33 | <div> | |
34 | <h1>My Shaarli farm</h1> | |
35 | <ul style="list-style-type: none;">' | |
36 | ||
37 | accountlinks='' | |
38 | ||
39 | htmlfooter=' | |
40 | </ul> | |
41 | </div> | |
42 | </body> | |
43 | </html>' | |
44 | ||
45 | ||
46 | ||
47 | for account in $accounts; do accountlinks="$accountlinks\n<li><a href=\"$account\">$account</a></li>"; done | |
53ed6d7d | 48 | if [ -d "$shaarli_base_dir/index.html" ]; then echo "[removing old index.html]"; rm "$shaarli_base_dir/index.html" ]; fi |
49 | echo "[info] generating new index of shaarlis" | |
5409ade2 | 50 | echo -e "$htmlhead $accountlinks $htmlfooter" > "$shaarli_base_dir/index.html" |
53ed6d7d | 51 | echo '[info] done.' |
52 | echo "[info] list of accounts: $accounts" | |
53 | echo "[info] contents of $shaarli_base_dir:" | |
5409ade2 A |
54 | tree -a -L 1 "$shaarli_base_dir" |
55 | ``` | |
56 | ||
53ed6d7d | 57 | This script just serves as an example. More precise or complex (applying custom configuration, etc) automation is possible using configuration management software like [Ansible](https://www.ansible.com/) |