tinycm annotate tinycm @ rev 102
new way to handle admin user (faster)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Feb 20 17:03:32 2017 +0100 (2017-02-20) |
parents | 95673a3de4e4 |
children | ddf5125a4b03 |
rev | line source |
---|---|
pankso@67 | 1 #!/bin/sh |
pankso@67 | 2 # |
pankso@67 | 3 # TinyCM Command line tool. Dont use libtaz since TinyCM can run on any |
pankso@67 | 4 # Linux/BSD distribution providing a web server with CGI SHell support |
pankso@67 | 5 # such as LightTPD. |
pankso@67 | 6 # |
pankso@83 | 7 # Copyright (C) 2014-2017 SliTaz GNU/Linux - BSD License |
pankso@67 | 8 # |
pankso@67 | 9 |
pankso@67 | 10 list="tinycm.list" |
pankso@67 | 11 path="${2%/}" |
pankso@67 | 12 hgurl="http://hg.slitaz.org/tinycm" |
pankso@67 | 13 dlurl="$hgurl/archive/tip.tar.bz2" |
pankso@67 | 14 |
pankso@67 | 15 # |
pankso@67 | 16 # Functions |
pankso@67 | 17 # |
pankso@67 | 18 |
pankso@67 | 19 boldify() { |
pankso@67 | 20 echo -e "\\033[1m$@\\033[0m" |
pankso@67 | 21 } |
pankso@67 | 22 |
pankso@67 | 23 error() { |
pankso@67 | 24 echo -e "\\033[1;31m$@\\033[0;39m" |
pankso@67 | 25 } |
pankso@67 | 26 |
pankso@67 | 27 usage() { |
pankso@67 | 28 cat << EOT |
pankso@67 | 29 |
pankso@67 | 30 $(boldify "Usage:") $(basename $0) [command] [path|list] |
pankso@67 | 31 |
pankso@67 | 32 $(boldify "Commands:") |
pankso@67 | 33 inst Install TinyCM and set permissions |
paul@71 | 34 up Update one or a list of TinyCM installations |
pankso@67 | 35 |
pankso@67 | 36 EOT |
pankso@67 | 37 } |
pankso@67 | 38 |
pankso@67 | 39 check_source() { |
pankso@67 | 40 if [ ! -f "Makefile" ] || [ ! -f "index.cgi" ]; then |
pankso@67 | 41 error "No source found" && exit 1 |
pankso@67 | 42 fi |
pankso@67 | 43 } |
pankso@67 | 44 |
pankso@67 | 45 check_path() { |
pankso@67 | 46 if [ ! "$path" ]; then |
pankso@67 | 47 error "Missing path argument" && exit 1 |
pankso@67 | 48 fi |
pankso@67 | 49 } |
pankso@67 | 50 |
pankso@67 | 51 check_tiny() { |
pankso@67 | 52 if [ ! -f "$path/index.cgi" ] || [ ! -d "$path/lib" ]; then |
pankso@67 | 53 error "Missing TinyCM in: $path" |
pankso@67 | 54 continue |
pankso@67 | 55 fi |
pankso@67 | 56 } |
pankso@67 | 57 |
pankso@99 | 58 # Rebuilt an up-to-date config file, plugins may need new variables |
pankso@99 | 59 update_config() { |
pankso@99 | 60 echo "Updating config file: confi.cgi" |
pankso@99 | 61 . ${path}/config.cgi |
pankso@102 | 62 # Def value for new variables |
pankso@99 | 63 [ ! "$WALL_MODE" ] && WALL_MODE="public" |
pankso@99 | 64 [ ! "$WALL_MESSAGES_LENGTH" ] && WALL_MESSAGES_LENGTH="240" |
pankso@102 | 65 # from 1.4 |
pankso@102 | 66 [ ! "$ADMIN_USERS" ] && ADMIN_USERS=$(dirname "$AUTH_FILE")/admin |
pankso@99 | 67 cat > ${path}/config.cgi << EOT |
pankso@99 | 68 # |
pankso@99 | 69 # TinyCM configuration |
pankso@99 | 70 # |
pankso@99 | 71 |
pankso@99 | 72 # Administrator email. |
pankso@99 | 73 ADMIN_MAIL="$ADMIN_MAIL" |
pankso@99 | 74 |
pankso@99 | 75 # Auth file for user |
pankso@99 | 76 AUTH_FILE="$AUTH_FILE" |
pankso@99 | 77 |
pankso@102 | 78 # Admin users file list |
pankso@102 | 79 ADMIN_USERS="/var/lib/slitaz/auth/admin" |
pankso@102 | 80 |
pankso@99 | 81 # People config files |
pankso@99 | 82 PEOPLE="$PEOPLE" |
pankso@99 | 83 |
pankso@99 | 84 # CM documents languages. |
pankso@99 | 85 LANGUAGES="$LANGUAGES" |
pankso@99 | 86 |
pankso@99 | 87 # Online registration for user |
pankso@99 | 88 ONLINE_SIGNUP="$ONLINE_SIGNUP" |
pankso@99 | 89 |
pankso@99 | 90 # Use Mercurial repo for content and configure user name |
pankso@99 | 91 HG="$HG" |
pankso@99 | 92 |
pankso@99 | 93 # |
pankso@99 | 94 # Plugin configuration: community.cgi |
pankso@99 | 95 # |
pankso@99 | 96 |
pankso@99 | 97 # Wall mode: public/private |
pankso@99 | 98 WALL_MODE="$WALL_MODE" |
pankso@99 | 99 |
pankso@99 | 100 # Max length for messages on the Wall |
pankso@99 | 101 WALL_MESSAGES_LENGTH="$WALL_MESSAGES_LENGTH" |
pankso@99 | 102 |
pankso@99 | 103 # Twitter user name and/or Facebook page URL name |
pankso@99 | 104 TWITTER_USER="$TWITTER_USER" |
pankso@99 | 105 FACEBOOK_PAGE="$FACEBOOK_PAGE" |
pankso@99 | 106 EOT |
pankso@99 | 107 unset TWITTER_USER FACEBOOK_PAGE |
pankso@99 | 108 } |
pankso@99 | 109 |
pankso@67 | 110 # |
pankso@67 | 111 # Commands |
pankso@67 | 112 # |
pankso@67 | 113 |
pankso@67 | 114 case "$1" in |
pankso@67 | 115 inst) |
pankso@67 | 116 check_source |
pankso@67 | 117 check_path |
pankso@67 | 118 echo "" |
pankso@67 | 119 boldify "Installing TinyCM..." |
pankso@67 | 120 echo "Path:"; echo "$path" |
pankso@67 | 121 mkdir -p $path |
pankso@67 | 122 for file in index.cgi style.css images lib plugins |
pankso@67 | 123 do |
pankso@83 | 124 echo "* Installing: $file" |
pankso@67 | 125 cp -a $file $path |
pankso@67 | 126 done |
pankso@67 | 127 if [ $(id) == 0 ]; then |
pankso@67 | 128 echo root |
pankso@67 | 129 else |
pankso@67 | 130 echo user |
pankso@67 | 131 fi |
pankso@67 | 132 echo "" ;; |
pankso@67 | 133 up) |
pankso@67 | 134 check_source |
pankso@67 | 135 if [ ! "$path" ] && [ ! -f "$list" ]; then |
pankso@67 | 136 error "Missing path argument or paths list: $list" |
pankso@67 | 137 exit 1 |
pankso@67 | 138 fi |
pankso@67 | 139 echo "" |
pankso@99 | 140 boldify "Updating TinyCM install(s)..." |
pankso@99 | 141 echo "" |
pankso@67 | 142 |
pankso@75 | 143 # File liste of args |
pankso@75 | 144 if [ -f "$path" ]; then |
pankso@75 | 145 paths="$(cat ${list})" |
pankso@75 | 146 else |
pankso@67 | 147 paths="$path" |
pankso@67 | 148 fi |
pankso@67 | 149 |
pankso@67 | 150 for path in ${paths} |
pankso@67 | 151 do |
pankso@67 | 152 check_tiny |
pankso@99 | 153 echo "Updating TinyCM: $path" |
pankso@67 | 154 cp -a index.cgi $path |
pankso@67 | 155 cp -a lib/functions.js $path/lib |
pankso@67 | 156 cp -a lib/jseditor.html $path/lib |
pankso@99 | 157 echo "Updating plugins..." |
pankso@67 | 158 for plug in $(ls plugins) |
pankso@67 | 159 do |
pankso@67 | 160 if [ -d "$path/plugins/$plug" ]; then |
pankso@77 | 161 echo "* Updating plugin: $plug" |
pankso@67 | 162 cp -a plugins/$plug $path/plugins |
pankso@67 | 163 fi |
pankso@67 | 164 done |
pankso@99 | 165 update_config |
pankso@67 | 166 done && echo "" ;; |
pankso@67 | 167 *) |
pankso@67 | 168 usage ;; |
pankso@67 | 169 esac |
pankso@67 | 170 |
pankso@67 | 171 exit 0 |