tinycm annotate tinycm @ rev 118
Tiny edit
author | Paul Issott <paul@slitaz.org> |
---|---|
date | Sun Mar 19 23:24:18 2017 +0000 (2017-03-19) |
parents | 035728efb7ad |
children | 0893f1ab023c |
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@117 | 33 -i inst Install TinyCM and set permissions |
pankso@117 | 34 -u up Update one or a list of TinyCM installations |
pankso@117 | 35 -g get Download latest source tarball from repository |
paul@118 | 36 -p plugins List installed/available plugins |
pankso@67 | 37 |
pankso@67 | 38 EOT |
pankso@67 | 39 } |
pankso@67 | 40 |
pankso@67 | 41 check_source() { |
pankso@67 | 42 if [ ! -f "Makefile" ] || [ ! -f "index.cgi" ]; then |
pankso@67 | 43 error "No source found" && exit 1 |
pankso@67 | 44 fi |
pankso@67 | 45 } |
pankso@67 | 46 |
pankso@67 | 47 check_path() { |
pankso@67 | 48 if [ ! "$path" ]; then |
pankso@67 | 49 error "Missing path argument" && exit 1 |
pankso@67 | 50 fi |
pankso@67 | 51 } |
pankso@67 | 52 |
pankso@67 | 53 check_tiny() { |
pankso@67 | 54 if [ ! -f "$path/index.cgi" ] || [ ! -d "$path/lib" ]; then |
pankso@67 | 55 error "Missing TinyCM in: $path" |
pankso@67 | 56 continue |
pankso@67 | 57 fi |
pankso@67 | 58 } |
pankso@67 | 59 |
paul@105 | 60 # Rebuild an up-to-date config file, plugins may need new variables |
pankso@99 | 61 update_config() { |
pankso@99 | 62 echo "Updating config file: confi.cgi" |
pankso@99 | 63 . ${path}/config.cgi |
pankso@102 | 64 # Def value for new variables |
pankso@99 | 65 [ ! "$WALL_MODE" ] && WALL_MODE="public" |
pankso@99 | 66 [ ! "$WALL_MESSAGES_LENGTH" ] && WALL_MESSAGES_LENGTH="240" |
pankso@102 | 67 # from 1.4 |
pankso@102 | 68 [ ! "$ADMIN_USERS" ] && ADMIN_USERS=$(dirname "$AUTH_FILE")/admin |
pankso@99 | 69 cat > ${path}/config.cgi << EOT |
pankso@99 | 70 # |
pankso@99 | 71 # TinyCM configuration |
pankso@99 | 72 # |
pankso@99 | 73 |
pankso@99 | 74 # Administrator email. |
pankso@99 | 75 ADMIN_MAIL="$ADMIN_MAIL" |
pankso@99 | 76 |
pankso@99 | 77 # Auth file for user |
pankso@99 | 78 AUTH_FILE="$AUTH_FILE" |
pankso@99 | 79 |
pankso@102 | 80 # Admin users file list |
pankso@102 | 81 ADMIN_USERS="/var/lib/slitaz/auth/admin" |
pankso@102 | 82 |
pankso@99 | 83 # People config files |
pankso@99 | 84 PEOPLE="$PEOPLE" |
pankso@99 | 85 |
pankso@99 | 86 # CM documents languages. |
pankso@99 | 87 LANGUAGES="$LANGUAGES" |
pankso@99 | 88 |
pankso@99 | 89 # Online registration for user |
pankso@99 | 90 ONLINE_SIGNUP="$ONLINE_SIGNUP" |
pankso@99 | 91 |
pankso@99 | 92 # Use Mercurial repo for content and configure user name |
pankso@99 | 93 HG="$HG" |
pankso@99 | 94 |
pankso@99 | 95 # |
pankso@99 | 96 # Plugin configuration: community.cgi |
pankso@99 | 97 # |
pankso@99 | 98 |
pankso@99 | 99 # Wall mode: public/private |
pankso@99 | 100 WALL_MODE="$WALL_MODE" |
pankso@99 | 101 |
pankso@99 | 102 # Max length for messages on the Wall |
pankso@99 | 103 WALL_MESSAGES_LENGTH="$WALL_MESSAGES_LENGTH" |
pankso@99 | 104 |
pankso@117 | 105 # Twitter user name and/or Facebook page URL name |
pankso@99 | 106 TWITTER_USER="$TWITTER_USER" |
pankso@99 | 107 FACEBOOK_PAGE="$FACEBOOK_PAGE" |
pankso@99 | 108 EOT |
pankso@99 | 109 unset TWITTER_USER FACEBOOK_PAGE |
pankso@99 | 110 } |
pankso@99 | 111 |
pankso@67 | 112 # |
pankso@67 | 113 # Commands |
pankso@67 | 114 # |
pankso@67 | 115 |
pankso@67 | 116 case "$1" in |
pankso@117 | 117 |
pankso@117 | 118 -i|inst*) |
pankso@67 | 119 check_source |
pankso@67 | 120 check_path |
pankso@117 | 121 |
pankso@67 | 122 echo "" |
pankso@117 | 123 boldify "TinyCM installation" |
pankso@117 | 124 echo "Path: $path" |
pankso@117 | 125 mkdir -p ${path} |
pankso@117 | 126 for file in index.cgi config.cgi style.css images lib plugins |
pankso@67 | 127 do |
pankso@117 | 128 echo " * Installing: $file" |
pankso@117 | 129 cp -a ${file} ${path} |
pankso@67 | 130 done |
pankso@117 | 131 |
pankso@117 | 132 # Content with wiki/*/help.txt |
pankso@117 | 133 for lang in en |
pankso@117 | 134 do |
pankso@117 | 135 mkdir -p ${path}/content/wiki/${lang} |
pankso@117 | 136 cp content/wiki/${lang}/help.txt ${path}/content/wiki/${lang} |
pankso@117 | 137 done |
pankso@117 | 138 |
pankso@117 | 139 # Set permissions |
pankso@117 | 140 if [ $(id -u) == 0 ]; then |
pankso@117 | 141 chown -R www.www ${path}/content |
pankso@117 | 142 install -d -o www -g www ${path}/cache |
pankso@67 | 143 else |
pankso@117 | 144 chmod 0777 ${path}/content ${path}/content/* |
pankso@117 | 145 install -d -m 0777 ${path}/cache |
pankso@67 | 146 fi |
pankso@67 | 147 echo "" ;; |
pankso@117 | 148 |
pankso@117 | 149 -u|up*) |
pankso@67 | 150 check_source |
pankso@67 | 151 if [ ! "$path" ] && [ ! -f "$list" ]; then |
pankso@67 | 152 error "Missing path argument or paths list: $list" |
pankso@67 | 153 exit 1 |
pankso@67 | 154 fi |
pankso@67 | 155 echo "" |
pankso@99 | 156 boldify "Updating TinyCM install(s)..." |
pankso@99 | 157 echo "" |
pankso@117 | 158 |
paul@105 | 159 # File list of args |
pankso@75 | 160 if [ -f "$path" ]; then |
pankso@75 | 161 paths="$(cat ${list})" |
pankso@75 | 162 else |
pankso@67 | 163 paths="$path" |
pankso@67 | 164 fi |
pankso@117 | 165 |
pankso@67 | 166 for path in ${paths} |
pankso@67 | 167 do |
pankso@67 | 168 check_tiny |
pankso@99 | 169 echo "Updating TinyCM: $path" |
pankso@67 | 170 cp -a index.cgi $path |
pankso@67 | 171 cp -a lib/functions.js $path/lib |
pankso@67 | 172 cp -a lib/jseditor.html $path/lib |
pankso@114 | 173 #cp -a images/* $path/images |
pankso@99 | 174 echo "Updating plugins..." |
pankso@67 | 175 for plug in $(ls plugins) |
pankso@67 | 176 do |
pankso@67 | 177 if [ -d "$path/plugins/$plug" ]; then |
pankso@77 | 178 echo "* Updating plugin: $plug" |
pankso@67 | 179 cp -a plugins/$plug $path/plugins |
pankso@67 | 180 fi |
pankso@67 | 181 done |
pankso@99 | 182 update_config |
pankso@67 | 183 done && echo "" ;; |
pankso@117 | 184 |
pankso@117 | 185 -p|plug*) |
pankso@117 | 186 echo "" |
pankso@117 | 187 boldify "TinyCM plugins:" |
pankso@117 | 188 ls -1 plugins |
pankso@117 | 189 echo "" ;; |
pankso@117 | 190 |
pankso@117 | 191 -g|get) |
pankso@117 | 192 tarball="tinycm-tip.tar.bz2" |
pankso@117 | 193 if [ ! -f "$tarball" ]; then |
pankso@117 | 194 wget ${dlurl} -O ${tarball} |
pankso@117 | 195 fi ;; |
pankso@117 | 196 |
pankso@117 | 197 *) usage ;; |
pankso@67 | 198 esac |
pankso@67 | 199 |
pankso@67 | 200 exit 0 |