Arne Gockeln
Softwareentwickler und Linux Enthusiast

wprelease - bash Script für WordPress Theme und Plugin Entwicklung

Meine Plugins und Themes verwalte ich mit git, dabei habe ich in meiner Ordnerstruktur einen versteckten Ordner .git und eine Datei .gitignore. Außerdem schreibe ich meine CSS Dateien mit SASS. Also habe ich auch noch einen Ordner .sass-cache. Meine IDE PhpStorm erzeugt noch einen versteckten Ordner .idea. MacOS hat die Angewohnheit in jedem Ordner eine Datei .DS_Store anzulegen, die brauch ich auch nicht. Weiterhin bin ich kein Freund von W3TotalCache Minifying on the fly. Also hätte ich gerne, dass alle Javascript und CSS Dateien beim Release gleich mit komprimiert werden.

Lange Rede kurzer Sinn. Das schreit förmlich nach einem bash Script :)

Unter https://github.com/ArneGockeln/wprelease habe ich das wprelease bash Script veröffentlicht.

Die Anwendung ist wie folgt am Beispiel von twentysenventeen:

$ wprelease wp-content/themes/twentyseventeen/
Create release folder...
Cloned and cleaned to ./twentyseventeen_release
Minifying css files...
./twentyseventeen_release/assets/css/colors-dark.css minified.
./twentyseventeen_release/assets/css/editor-style.css minified.
./twentyseventeen_release/assets/css/ie8.css minified.
./twentyseventeen_release/assets/css/ie9.css minified.
./twentyseventeen_release/rtl.css minified.
./twentyseventeen_release/style.css minified.
done.
Minifying js files...
./twentyseventeen_release/assets/js/customize-controls.js minified.
./twentyseventeen_release/assets/js/customize-preview.js minified.
./twentyseventeen_release/assets/js/global.js minified.
./twentyseventeen_release/assets/js/html5.js minified.
./twentyseventeen_release/assets/js/jquery.scrollTo.js minified.
./twentyseventeen_release/assets/js/navigation.js minified.
./twentyseventeen_release/assets/js/skip-link-focus-fix.js minified.
done.

Das Script erzeugt als erstes, in dem Ordner von dem du es gestartet hast, eine Kopie des Originals mit dem Namen twentyseventeen_release. Bei diesem Vorgang werden gleich alle versteckten Dateien rausgefiltert und ignoriert. Im nächsten Schritt werden alle CSS und Javascript Dateien komprimiert. Aus einer editor-style.css wird dann editor-style.min.css und die Quelldatei gelöscht. Die Namen der Dateien sind meistens in der functions.php hardcodiert und werden gleich ersetzt:

add_editor_style( array( 'assets/css/editor-style.min.css', twentyseventeen_fonts_url() ) );

Fertig. Die gleiche Vorgehensweise funktioniert natürlich auch mit Plugins!

Ich mag die bash :)

comments powered by Disqus