You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.8 KiB
52 lines
1.8 KiB
#!/usr/bin/env zsh |
|
|
|
# Small script that echos the path of a wordpress theme |
|
# |
|
# By default it will echo the path of the active theme. If an argument is given, it will grep the list of themes with the argment and return the path for the first |
|
# |
|
# It assumes that the wordpress is in a folder called public_html or public_html/wp. It should be run from inside this directory |
|
# |
|
# It can also be run inside a wiki directory if public_html is a sibling of wiki |
|
# |
|
# @author jab2870 |
|
# @requires wp |
|
|
|
# Gets the public html folder from any sub folder or the wiki folder |
|
public_html="${${PWD%/public_html*}%/wiki*}/public_html" |
|
# Checks the public_html directory exists |
|
if [ -d $public_html ]; then |
|
|
|
# Checks to see if wp is in a subdirectory called wp |
|
if [ -d $public_html/wp ]; then |
|
wpPath=$public_html/wp; |
|
else |
|
wpPath=$public_html; |
|
fi |
|
|
|
# This assumes the domain for the site. It should be changed according to your setup |
|
# It assumes here that the domain is the same as public_html folder with .local.jh appended |
|
# This is needed if using a multisite setup |
|
domain="$(basename $(dirname $public_html ) ).local.jh" |
|
|
|
# If we have an argument |
|
if [ ! -z "$1" ]; then |
|
# Try and find the theme containing the argument and return it's path |
|
theme=$(dirname $(wp --path="$wpPath" --url="$domain" theme path $(wp --path="$wpPath" --url="$domain" theme list 2> /dev/null | grep "$1" | head -n 1 | awk '{print $1}') 2> /dev/null )) |
|
else |
|
# Otherwise, get the active plugin |
|
theme=$(dirname $(wp --path="$wpPath" --url="$domain" theme path $(wp --path="$wpPath" --url="$domain" theme list 2> /dev/null | grep "active" | grep -v "inactive" | awk '{print $1}') 2> /dev/null )) |
|
fi |
|
|
|
# If we have an answer |
|
if [ -d $theme ]; then |
|
# Echo it |
|
echo $theme |
|
else |
|
# Otherwise we can fail |
|
>&2 echo "cannot find theme" |
|
exit 2 |
|
fi |
|
else |
|
>&2 echo "Cannot find public_html" |
|
exit 1 |
|
fi
|
|
|