-
-
Save AnneTee/13c0ba441bed8316ac4bdf531910fc05 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# #!/usr/bin/env bash | |
# # After following the instructions in DEVELOPERS.md run this script to install dependencies relevant to MediaSearch | |
# set -eu | |
git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector ./skins/Vector | |
git clone https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue ./skins/MinervaNeue | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch ./extensions/CirrusSearch | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CommonsMetadata ./extensions/CommonsMetadata | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica ./extensions/Elastica | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/EventBus ./extensions/EventBus | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/EventLogging ./extensions/EventLogging | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/EventStreamConfig ./extensions/EventStreamConfig | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/JsonConfig ./extensions/JsonConfig | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MediaSearch ./extensions/MediaSearch | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend ./extensions/MobileFrontend | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserFunctions ./extensions/ParserFunctions | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto ./extensions/Scribunto | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData ./extensions/TemplateData | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateStyles ./extensions/TemplateStyles | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector ./extensions/UniversalLanguageSelector | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikibase ./extensions/Wikibase | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseCirrusSearch ./extensions/WikibaseCirrusSearch | |
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo ./extensions/WikibaseMediaInfo | |
# Save the default settings from the Mediawiki installation to be added back later. | |
defaultSettings=`cat LocalSettings.php` | |
cat <<EOL >> LocalSettings.php | |
wfLoadSkin( 'Vector' ); | |
wfLoadSkin( 'MinervaNeue' ); | |
wfLoadExtension( 'CirrusSearch' ); | |
wfLoadExtension( 'Elastica' ); | |
wfLoadExtension( 'MobileFrontend' ); | |
wfLoadExtension( 'UniversalLanguageSelector' ); | |
\$wgDisableSearchUpdate = true; | |
require_once "\$IP/extensions/CirrusSearch/tests/jenkins/FullyFeaturedConfig.php"; | |
\$wgCirrusSearchServers = [ "elasticsearch" ]; | |
EOL | |
# Search | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/Elastica install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/CirrusSearch install | |
docker-compose exec mediawiki php maintenance/update.php | |
# Configure the search index and populate it with content | |
docker-compose exec mediawiki php extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php | |
echo "$defaultSettings" > LocalSettings.php | |
cat <<EOL >> LocalSettings.php | |
wfLoadSkin( 'Vector' ); | |
wfLoadSkin( 'MinervaNeue' ); | |
wfLoadExtension( 'CirrusSearch' ); | |
wfLoadExtension( 'Elastica' ); | |
wfLoadExtension( 'MobileFrontend' ); | |
wfLoadExtension( 'UniversalLanguageSelector' ); | |
require_once "\$IP/extensions/CirrusSearch/tests/jenkins/FullyFeaturedConfig.php"; | |
\$wgCirrusSearchServers = [ "elasticsearch" ]; | |
EOL | |
docker-compose exec mediawiki php extensions/CirrusSearch/maintenance/ForceSearchIndex.php --skipLinks --indexOnSkip | |
docker-compose exec mediawiki php extensions/CirrusSearch/maintenance/ForceSearchIndex.php --skipParse | |
# Process the job queue. You need to do this any time you add/update content and want it updated in ElasticSearch | |
docker-compose exec mediawiki php maintenance/runJobs.php | |
cat <<EOL >> LocalSettings.php | |
\$wgSearchType = 'CirrusSearch'; | |
EOL | |
# Wikibase | |
touch composer.local.json | |
cat > composer.local.json <<EOL | |
{ | |
"extra": { | |
"merge-plugin": { | |
"include": [ | |
"extensions/Wikibase/composer.json" | |
] | |
} | |
} | |
} | |
EOL | |
docker-compose exec mediawiki composer require wikimedia/composer-merge-plugin:1.4.1 | |
docker-compose exec mediawiki php maintenance/update.php | |
# Create final LocalSettings file with default settings and (organized) custom settings. | |
echo "$defaultSettings" > LocalSettings.php | |
cat <<EOL >> LocalSettings.php | |
wfLoadSkin( 'Vector' ); | |
wfLoadSkin( 'MinervaNeue' ); | |
wfLoadExtension( 'CirrusSearch' ); | |
wfLoadExtension( 'CommonsMetadata' ); | |
wfLoadExtension( 'Elastica' ); | |
wfLoadExtension( 'EventBus' ); | |
wfLoadExtension( 'EventLogging' ); | |
wfLoadExtension( 'EventStreamConfig' ); | |
wfLoadExtension( 'JsonConfig' ); | |
wfLoadExtension( 'MediaSearch' ); | |
wfLoadExtension( 'MobileFrontend' ); | |
wfLoadExtension( 'ParserFunctions' ); | |
wfLoadExtension( 'Scribunto' ); | |
wfLoadExtension( 'TemplateData' ); | |
wfLoadExtension( 'TemplateStyles' ); | |
wfLoadExtension( 'UniversalLanguageSelector' ); | |
wfLoadExtension( 'WikibaseCirrusSearch' ); | |
wfLoadExtension( 'WikibaseMediaInfo' ); | |
\$wgUseInstantCommons = true; | |
\$wgEnableUploads = true; | |
\$wgUseImageMagick = true; | |
\$wgScribuntoDefaultEngine = 'luastandalone'; | |
\$wgMediaViewerEnableByDefault = true; | |
\$wgPFEnableStringFunctions = true; | |
\$wgApiFrameOptions = 'SAMEORIGIN'; | |
\$wgCacheDirectory = "\$IP/cache"; | |
// Cirrus Search | |
require_once "\$IP/extensions/CirrusSearch/tests/jenkins/FullyFeaturedConfig.php"; | |
\$wgCirrusSearchServers = [ "elasticsearch" ]; | |
\$wgSearchType = 'CirrusSearch'; | |
// Wikibase | |
\$wgEnableWikibaseRepo = true; | |
\$wgEnableWikibaseClient = true; | |
require_once "\$IP/extensions/Wikibase/repo/Wikibase.php"; | |
require_once "\$IP/extensions/Wikibase/repo/ExampleSettings.php"; | |
require_once "\$IP/extensions/Wikibase/client/WikibaseClient.php"; | |
require_once "\$IP/extensions/Wikibase/client/ExampleSettings.php"; | |
// WikibaseMediaInfo | |
\$wgMediaInfoEnableFilePageDepicts = true; | |
\$wgMediaInfoEnableOtherStatements = true; | |
\$wgMediaInfoShowQualifiers = true; | |
\$wgMediaInfoProperties = [ | |
'depicts' => 'P1', | |
]; | |
\$wgDepictsQualifierProperties = [ | |
'depicts' => 'P1', | |
]; | |
// MediaSearch | |
\$isLocalDev = true; | |
\$wgMediaSearchExternalSearchUri = \$isLocalDev ? 'https://commons.wikimedia.org/w/api.php' : ''; | |
\$wgMediaSearchExternalEntitySearchBaseUri = \$isLocalDev ? 'https://www.wikidata.org/w/api.php' : ''; | |
EOL | |
cd extensions/Wikibase | |
git submodule update --init --recursive | |
cd ../.. | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/WikibaseCirrusSearch install | |
docker-compose exec mediawiki php maintenance/update.php | |
docker-compose exec mediawiki php --working-dir=/var/www/html/w/extensions/Wikibase lib/maintenance/populateSitesTable.php | |
docker-compose exec mediawiki php --working-dir=/var/www/html/w/extensions/Wikibase repo/maintenance/rebuildItemsPerSite.php | |
docker-compose exec mediawiki php --working-dir=/var/www/html/w/extensions/Wikibase client/maintenance/populateInterwiki.php | |
# Other extensions | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/CommonsMetadata install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/EventBus install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/EventLogging install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/EventStreamConfig install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/JsonConfig install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/MediaSearch install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/MobileFrontend install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/ParserFunctions install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/Scribunto install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/TemplateData install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/TemplateStyles install | |
docker-compose exec mediawiki composer --working-dir=/var/www/html/w/extensions/UniversalLanguageSelector install |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment