#!/bin/bash

  • Drupal Kommentare DSGVO-konform

    Um dem sinnigen Thema Datenschutz nicht nur im Rahmen der DSGVO bzw. GPDR nachzukommen, habe ich nach etwas Recherche in Punkto Kommentare (Achtung, das ist keine Rechtsberatung ;-D) für diese Site folgendes unternommen:

    • Die Mail-Benachrichtigung bei neuen Kommentaren via comment_notify1 habe ich deaktiviert und deinstalliert, da ich momentan keinen Weg kenne, dies mit Double-Opt-In umzusetzen.
    • Ich nutze ich keinen Dienst für Spam-Erkennung von einem Drittanbeiter (vergl. Mollom o. Akismet), sondern setze auf die im Vergleich zu Captchas für den Benutzer weniger aufdringlichen Module Hashcash2 und Honeypot3
    • IP-Adressen in Kommentaren bewahre ich, aufgrund von berechtigtem Interesse 7 Tage auf, bevor ich diese mit Nullen überschreibe. Dafür habe ich ein kleine Shellskript geschrieben, welches ich via Cron ausführen lasse.

    Weiterlesen

  • Autocompletition für Drush aktivieren

    Ja, Drush auch kann Autocompletition, zu deutsch “Autovervollständigung” und das anscheinenend nicht erst seit gestern, obwohl erst gestern entdeckt…

    Tab-Vervollständigung

    Ganz genau genommen, spricht man in diesem Fall der Autovervollständigung von einer Befehlszeilenergänzung bzw. Tab-Vervollständigung. Es besteht auch im Drush-Kontext die Möglichkeit Drush-Befehle, globale Drush-Optionen und den spezifischen Optionen zu einem Drush-Befehlen durch “tabben” (dem ein- oder zweimaligen Drücken der Tabulator Taste) in der Shell zu vervollständigen.

    Beispiele

    Tab-Vervollständigung von globalen Drush-Optionen:

    florian@box:/var/www/example.com/drupal$ drush @git --<tab><tab>
    
    --alias-path           --backend  
    --backup-location      --cache-class-<bin> 
    --cache-default-class  --choice 
    --command-specific     --complete-debug 
    --config               --confirm-rollback 
    [...]
    

    Tab-Vervollständigung von Drush-Befehlen, die mit sql- beginnen:

    florian@box:/var/www/example.com/drupal$ drush @git sql-<tab><tab>
    sql-cli   sql-conf   sql-connect    sql-create sql-drop
    sql-dump  sql-query  sql-sanitize   sql-sync
    

    Vervollständigung der Optionen, die mit dem Befehl sql-dump nutzbar sind:

    florian@box:/var/www/example.com/drupal$ drush @git sql-dump --<tab><tab>
    --create-db    --data-only   --gzip    --result-file   --structure-tables-key   
    --tables-list   --database   --db-url  --ordered-dump  --skip-tables-key        
    --tables-key 
    

    Weiterlesen

  • Drupal-Distro-Build-Skript

    Das Testen von Drupal-Installationsprofilen ist relativ mühselig, da sich ein Teil der Schritte, bis man überhaupt erst zum Testen der eigentlichen Funktionalität kommt, mit dem Build-Prozess beschäftigt.

    Diesen muß man eigentlich für jede Änderung erneut durchlaufen…

    1. Drush make (das macht es im Falls des Feature-Server-Installations-Profiles)
      1. Drush make mit distro.make aus dem Git-Repository
      2. Download des Drupal-Cores
      3. Klonen des in distro.make hinterlegten Repositories für das Installationsprofil
      4. Rekursive Suche nach weiteren Drush-Makefiles, runterladen der Drupal-Module und des Themes, die im gefundenen Makefile drupal-org.make spezifiziert sind
    2. Sybolischer-Link vom erstellten Build auf die DocumentRoot des für Testzwecke angelegten VirtualHosts
    3. Drop auf alle Tabellen in der Zieldatenbank
    4. Installation von Drupal und einem bestimmtem Installationsprofiles, hier fserver_profile

    In der scheinbaren Routine des manuellen Durchlaufen dieser Schritte entsteht zudem auch mal schnell ein Fehler.

    So habe ich beim gefühlt 100sten Mal des Durchlaufens dieser Prozedur versehentlich in der falschen Datenbank alle Tabellen ge-dropt-t und dachte mir, Automatisierung muss her, schreib ein Shellskript…

    Weiterlesen

  • drush 6.x-2.1 Release

    Gestern wurde drush in der Version 2.1 herausgegeben.

    Neben zahlreichen Bug Fixes gibt es zwei signifikante Änderungen, die ich hier beschreiben möchte.

    1. Die Entfernung des Shebang's in drush.php.
    2. Die Einführung von Aliases.

    Weiterlesen

  • Drush - DrupalMediaCamp Präsentation

    Drush – Das Sackmesser für die Kommandozeile. Mein Vortrag über drush auf dem DrupalMediaCamp 2009 in Aarau, Schweiz. Foto von Jürgen Brocke

    Weiterlesen

  • BASH v. 4 bringt assoziative Arrays

    Da sind sie, die langerwarteten assoziativen Arrays in der BASH!

    Hinzugekommen sind assoziative Arrays, die mit declare -A name erzeugt werden. Sie unterscheiden sich von den bisherigen Arrays dadurch, dass sie als Index beliebige Strings benutzen können. Abgesehen davon ist die Verwendung beider Datentypen identisch, so werden einzelne Elemente etwa in beiden Fällen mit ${name[index]} angesprochen.

    Aus heise.de: Unix/Linux-Shell Bash in Version 4

    Weiterlesen

  • Arrays in der Bash

    In der BASH ist es möglich mit eindimensionalen Arrays zu arbeiten:

    #!/bin/bash 
    
    declare -a array1 
    array1=(zero one two three) 
    array1[4]="and four" 
    echo ${array1[2]} 
    echo ${array1[@]} 
    

    In Zeile 3 wird mit declare -a explizit ein Array deklariert.

    In Zeile 4 wird mit array1 ein Array intitialisiert,

    der Zugriff auf die Elemente erfolgt über den Index des Array(Zeile 5, Zeile 6), welcher wie in den meisten Programmiersprachen von 0 bis Anzahl der Elemente - 1 ist (Anzahl Elemente in Zeile 7).

    Alternativ kann bei der Initialisierung auch der Index benutzt werden(Zeile 5).

    Die Möglichkeit ein assoziatives Array anzulegen, besteht leider nicht.

    Weiterlesen

  • install_postgres0.07.sh

    #!/bin/sh
    
    # date:         2003-07-23
    # author:       Florian Latzel, bbsh2ala@bg.bib.de
    # name:         install_postgres
    # version:      0.07
    # description:  -
    # changes:      checks psql version number
    #              (should be 7.3.3)
    #              
    # todo:         checks if needed programms are installed
    #               (command --help>/dev/null)
    #               ->Problem: stderr in logfile?
    #               writing PGDATA in /etc/.profile
    #               writing capitalized steps als in the logfile(tee?)
    
    clear
    echo -e "installing PostgresSQL 7.3.3 with cyipc-1.14-1 on win2k\n\
    -------------------------------------------------------\n\
    written by Florian Latzel, bbsh2ala@bg.bib.de\n\
    based on the postgresql-7_3_3_README by maintainer Jason Tishler\n\n\
    download cygipc-1.14-1.tar.bz2 from:\n\
    http://www.neuro.gatech.edu/users/cwilson/cygutils/cygipc/index.html\n\
    move or copy it into the CygWin root-directory\n\n\
    NOTE:\nOn Windows XP Home, there is no built in way to assign user rights\n\
    use ntrights instead.  This tool is available from \nthe Windows 2000 Resource Kit \n\
    or :\n\
    http://www.dynawell.com/reskit/microsoft/win2000/ntrights.zip\n\n\
    to run POSTGRESQL under win9x ==> README\n\n"
    echo -n "press any key to continue  "
    
    while test -z $con
    do
            read con
    done
    
    clear
    
    echo "INSTALLATION FAILED\n">>install_postgres.log
    
    echo -e "\nCHECKING PSQL VERSION"
    if psql --version | grep -q 7\.3\.3
    then
            echo "+ DONE"
    else
            echo "- FAILED"
            echo "psql version is not 7.3.3" 2>>install_postgres.log
            more install_postgres.log
            rm install_postgres.log
            i=2
            exit $i
    fi
    
    echo -e "\nUNINSTALLING THE SERVICE IPC-DAEMON "
    if cygrunsrv -R ipc-daemon 2>> install_postgres.log
    then
            echo "+ DONE"
    else   
            echo "- FAILED"
    fi
    
    echo -e "\nUNINSTALLING THE SERVICE POSTMASTER"
    if cygrunsrv -R postmaster 2>> install_postgres.log
    then
            echo "+ DONE"
    else   
            echo "- FAILED"
    fi
    
    echo  -e "\nEXTRACTING CYGIPC"
    if test -s /cygipc-1.14-1.tar.bz2
    then
            rm -f /bin/ipc-daemon 2>> install_postgres.log
            bunzip2 -c /cygipc-1.14-1.tar.bz2|tar xvf -
            echo "+ DONE"
    else
            echo "- FAILED"
            echo -e "NOTE\ncan not find cygipc-1.14-1.tar.bz2 in the root directory\
            \nmake sure that cygipc-1.14-1.tar.bz2 is in the root directory\
            \nand start install_psql again\n" >> install_postgres.log
            i=3
    fi
    
    while test "$i" -eq 0
    do
            echo -e "\nINSTALLING IPC-DAEMON AS SERVICE"
            if ipc-daemon --install-as-service 2>> install_postgres.log
            then
                    echo "+ DONE"
            else
                    echo "- FAILED"
                    i=4
            fi
           
            echo -e "\nCREATING THE \"postgres\" USER ACOUNT"
            if net user postgres $password /add /fullname:postgres \
            /comment:'PostgreSQL user account' \
            /homedir:"$(cygpath -w /home/postgres)" 2>> install_postgres.log
            then
                    echo "+ DONE"
            else
                    echo "- FAILED"
                    i=5
            fi
            echo -e "\nCREATING \"postgres\" in /etc/passwd"
            if ! test "$i" = 5
            then
                    mkpasswd -l -u postgres >>/etc/passwd
                    echo "+ DONE"
                    i=0
            else   
                    echo "- FAILED"
                    i=0
            fi
           
            echo -e "\nGRANT THE \"postgres\" USER THE \"LOG ON AS SERVICE\" USER RIGHT"
            sleep 5
            cmd /c secpol.msc
           
            echo -e "\nINSTALLING POSTMASTER"
            if cygrunsrv --install postmaster --path /usr/bin/postmaster\
            --args "-D /usr/share/postgresql/data -i" --dep ipc-daemon\
            --termsig INT --user postgres --shutdown  >&2 >> install_postgres.log
            then
                    echo "+ DONE"
            else
                    echo "- FAILED"
                    i=6
                    break
            fi
           
            echo -e "\nREMOVING /usr/share/postgres/data"
            if rm -r /usr/share/postgresql/data 2>> install_postgres.log
            then
                    echo "+ DONE"
            else
                    echo "- FAILED"
            fi
           
            echo -e "\nCREATING /usr/share/postgres/data"
            if mkdir /usr/share/postgresql/data  2>> install_postgres.log
            then
                    echo "+ DONE"
                    echo -e "\nWRITING PGDATA to /etc/profile"
                    if echo "#psql's data directory">>/etc/profile&&\
                    echo "#written by install_postgres">>/etc/profile&&\
                    echo "PGDATA=/usr/share/postgresql/data">>/etc/profile&&\
                    echo "export PGDATA">>/etc/profile
                    then
                            echo "+ DONE"
                    else
                            echo "- FAILED"
                            l=2
                    fi
            else
                    echo "- FAILED"
            fi
           
            echo -e "\nCHANGING OWNERSHIP OF /usr/share/postgres/data TO USER \"postgres\""
            if chown postgres /usr/share/postgresql/data  2>> install_postgres.log
            then
                    echo "+ DONE"
            else
                    echo "- FAILED"
                    i=7
                    break
            fi
           
            echo -e "\nSTARTING IPC-DAEMON"
            if net start ipc-daemon 2>> install_postgres.log
            then    
                    echo "+ DONE"
                    sleep 1
                    #for testing
                    clear
            else
                    echo "- FAILED"
                    i=8
                    break
            fi
            if test "$i" -eq 0
            then    
                    break
            fi
    done
    
    if test "$i" -gt 0
    then
            more install_postgres.log
            rm install_postgres.log
            exit $i
    else
            echo -e "\nINSTALATION COMPLETE\n\n\
    login as postgres, intialize PostgreSQL with: "
    
    if test l = 2
    then
             echo -e " initdb -D /usr/share/postgresql/data\n\n"
    else
             echo -e " initdb \n"
    fi
    
    echo -e "to run the database server type :\n\
    net start postmaster\n\n\
    to run PostgresSQL type :\n\
     psql [-U postgres] template1 \n\
    or type :  
     createdb postgres\nto start psql without a database as parameter\n"
    
            rm install_postgres.log
            exit 0
    fi
    

    Weiterlesen

Subscribe