X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mw-setup-script;h=5cdfd145186b6a8775926d6e03637f847460fa41;hb=44739bbe3f496e482d0c50d1d8012b5e15301090;hp=7aca959fb344d62421125abdb9cefd5b0a405647;hpb=44712fafcec81eae9e1908d004054e54b3b5b523;p=mediawiki-setup diff --git a/mw-setup-script b/mw-setup-script index 7aca959..5cdfd14 100755 --- a/mw-setup-script +++ b/mw-setup-script @@ -2,9 +2,6 @@ # Copyright (C) 2016 Ian Kelling # This program is under GPL v. 3 or later, see # -# for convenience, Mediawiki config file -mwc="$mw/LocalSettings.php" - # identify if this is a debian based distro isdeb() { command -v apt &>/dev/null; } # tee unique. append each stdin line if it does not exist in the file @@ -17,57 +14,57 @@ teeu () { } # get and reset an extension/skin repository, and enable it -mw-ext () { mw-extra extensions $@; } -mw-skin() { mw-extra skins $@; } +mw-clone() { + local url=$1 + local original_pwd="$PWD" + local name + local re='[^/]*/[^/]*$' + [[ $url =~ $re ]] ||: + target=$mw/${BASH_REMATCH[0]} + if [[ ! -e $target/.git ]]; then + git clone $url $target + fi + if ! cd $target; then + echo "mw-ext error: failed cd $target"; + exit 1 + fi + git fetch + git checkout -qf origin/$mw_branch || git checkout -qf origin/master + git clean -xffd + cd "$original_pwd" -mw-extra() { - local type=$1 # extension or skin - shift +} +mw-ext () { local ext for ext in "$@"; do - local original_pwd="$PWD" - # it's ok that this fails if we already have it - url=https://git.wikimedia.org/git/mediawiki - target=$mw/$type/$ext - if [[ ! -e $target/.git ]]; then - git clone $url/$type/$ext.git $target - fi - if ! cd $target; then - echo "mw-ext error: failed cd $mw/extensions/$ext"; - exit 1 - fi - git fetch - git checkout -qf origin/$mw_branch || git checkout -qf origin/master - git clean -xffd - cd "$original_pwd" - case $type in - extensions) - if [[ -e $target/extension.json ]]; then - # new style extension. remove old style declaration - sed -i '#^require_once( "\\\$IP/extensions/\$ext/\$ext\.php" );#d' $mwc - teeu $mwc </dev/null; then apache_user=www-data @@ -90,21 +87,23 @@ if isdeb; then # main reference: # https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Ubuntu apt-get update - apt-get install -y ImageMagick + apt-get install -y imagemagick if apt-get install -s mediawiki &>/dev/null; then # in debian wheezy time-frame distros, mediawiki was packaged. - apt-get -y install php-apc mediawiki + apt-get -y install php-apc mediawiki php-mbstring else # https://www.mediawiki.org/wiki/Manual:Installation_requirements if apt-get install -s php7.0 &>/dev/null; then # note, 7.0 is untested by the editor here, since it's not # available in debian 8. it's listed as supported # in the mediawiki page. - # noninteractive to avoid mysql password prompt + # noninteractive to avoid mysql password prompt. DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \ php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-xml \ - php7.0-apcu + php7.0-apcu php7.0-mbstring else + # note: mbstring is recommended, but it's not available for php5 in + # debian jessie. DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \ php5 php5-mysql libapache2-mod-php5 php5-apcu fi @@ -172,25 +171,6 @@ $wgGroupPermissions['*']['edit'] = false; # don't allow any account creation $wgGroupPermissions['*']['createaccount'] = false; EOF -# -# -tmpdir="$(mktemp -d)" -cd $tmpdir -wget http://builds.piwik.org/piwik.zip -if isdeb; then apt-get -y install unzip; else yum -y install unzip; fi -unzip -q piwik.zip -# gui installer suggested command -if isdeb; then - chown -R www-data:www-data piwik -else - chown -R apache:apache piwik -fi -# remove any existing directory -rm -rf $mw/../analytics -mv piwik $mw/../analytics -cd $mw -rm -rf $tmpdir - # # temp=$(mktemp -d) @@ -200,7 +180,7 @@ git clone $git_site/acme-tiny-wrapper l=$mw/../../logs mkdir -p $l -acme-tiny-wrapper/acme-tiny-wrapper $mwdomain +acme-tiny-wrapper/acme-tiny-wrapper -t $mwdomain git clone $git_site/basic-https-conf { cat <\n $(< $line)\n"; done } | basic-https-conf/apache-site -r ${mw%/*} - $mwdomain +cd +rm -rf $temp # # dd of=$mw/../robots.txt <<'EOF' @@ -267,8 +249,8 @@ EOF # https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads # Increase from default of 2M to 100M. # This will at least allow high res pics etc. -php_ini=$(isdeb && echo /etc/php5/apache2/php.ini || echo /etc/php.ini) -sed -i 's/^\(upload_max_filesize\|post_max_size\)\b.*/\1 = 100M/' $php_ini +php_ini=$(php -r 'echo(php_ini_loaded_file());') +sed -i --follow-symlinks 's/^\(upload_max_filesize\|post_max_size\)\b.*/\1 = 100M/' $php_ini if isdeb; then service apache2 restart else @@ -314,7 +296,8 @@ if isdeb; then teeu $mwc <<'EOF' $wgExternalDiffEngine = 'wikidiff2'; EOF - ln -sf ../../mods-available/wikidiff2.ini /etc/php5/apache2/conf.d + dir=$(dirname $(php -r 'echo(php_ini_loaded_file());'))/../apache2/conf.d + ln -sf ../../mods-available/wikidiff2.ini $dir service apache2 restart fi # @@ -332,7 +315,6 @@ else # todo, php5-curl equivalent on fedora yum -y install texlive-cjk ghostscript ImageMagick texlive ocaml fi -ln -sf ../../mods-available/curl.ini /etc/php5/apache2/conf.d service apache2 restart cd $mw/extensions/Math/math; make # makes texvc @@ -428,7 +410,7 @@ EOF fi # # -sed -i "/\\\$wgGroupPermissions\\['\\*'\\]\\['createaccount'\\] = false;/d" $mwc +sed -i --follow-symlinks "/\\\$wgGroupPermissions\\['\\*'\\]\\['createaccount'\\] = false;/d" $mwc # # # get repo @@ -560,44 +542,31 @@ source ~/mw_vars cd $mw git fetch --all git checkout origin/$mw_branch -git rebase ian/REL1_23-toolbox-in-dropdown -cd extensions +cd $mw/skins/Vector +git fetch --all -q +x=ian-kelling/REL1_27-toolbox-in-dropdown +log=$(git log HEAD..$x) +if [[ $log ]]; then + pwd + echo "$log" +fi +git checkout -q $x +cd $mw/extensions for x in *; do - if [[ -d $x ]]; then - cd $x - git fetch --all - git checkout origin/$mw_branch || git checkout -qf origin/master - cd .. + [[ -d $x ]] || continue + cd $x + git fetch --all -q + x=$(git rev-parse origin/$mw_branch 2>/dev/null) || \ + x=$(git rev-parse origin/master) + log=$(git log HEAD..$x) + if [[ $log ]]; then + pwd + echo "$log" fi + git checkout -q $x + cd .. done php $mw/maintenance/update.php -q EOF -chmod +x $s -# -# -# based on recommendation from install page -if ! dpkg -s php5-gd &>/dev/null; then - apt-get install -y php5-gd - service apache2 restart -fi -# docs suggests using separate database user -mysql -u root -p$dbpass < -# -git clone https://github.com/DaSchTour/piwik-mediawiki-extension.git $mw/extensions/Piwik -mw-ext Piwik -teeu $mwc <