Monday, 9 September 2013

Upgrading a collection of drupal 6 modules to drupal 7

Starting the long upgrade of a collection of drupal 6 modules to drupal 7.

This seems like the definitive guide. Geez it's a long list.

# get the coder module:
drush @d7 dl coder --dev
drush @d7 dl grammar_parser
# next line maybe redundant (not sure)
drush @d7 dl grammar_parser_lib
drush @d7 en coder_review
drush @d7 en coder_upgrade
cd sites/all
mv modules/grammar_parser_lib libraries


tbc...

find . -name '*.*' -exec sed -i 's/db_escape_string/mysql_real_escape_string/g' "{}" \;


vim macro to upgrade permission function:


/function .*perm(^M;s/perm(/permission(/^Mj/array^Mf(vib;s/'[^']*'/& => array(\r      'title' => t(&),\r      'description' => t(&))/g

 simple test case




Wednesday, 28 November 2012

More VIM amazingness

So I probably missed this in the few tutorials I looked at on vim.

But... oh... my... god...

Passing vim contents to the shell (ie bash)


You can pass your current file to a tool (like bash, or mysql) like this:

w | ! . %
or
w | ! mysql %

Or you can do this to just pipe in the "lines 7 to 9" or the current line to bash:

7,9:w ! bash
.w ! bash

Or pipe in selected text to mysql:

'<,'>:w ! mysql

Misc


Paraphrasing those clever folk at stackoverflow you can capture and run macro:
Perform desired editing interactively with

    vim -w log.vim file1.txt

and then repeat it on other files:
 
    for f in file*.txt; do vim -s log.vim $f; done 
or alternatively:
    for f in file*.txt; do vim -c '1,55d|25,35s/^/\/\/ /|w! '"${f}_new"'|q!' $f 

this is also very cool:

http://askubuntu.com/questions/23517/how-to-execute-a-shell-command-in-vim-and-have-the-result-printed-below


These things in your .vimrc are gold:

 syntax on

inoremap <expr> <C-Space> pumvisible() \|\| &omnifunc == '' ?
\ "\<lt>C-n>" :
\ "\<lt>C-x>\<lt>C-o><c-r>=pumvisible() ?" .
\ "\"\\<lt>c-n>\\<lt>c-p>\\<lt>c-n>\" :" .
\ "\" \\<lt>bs>\\<lt>C-n>\"\<CR>"
imap <C-@> <C-Space>
autocmd FileType php set omnifunc=phpcomplete#CompletePHP


Clearing the highlighting from your last search can be useful:
 
:let @/ = ""

Opening and finding files

Obviously :Ex, :Tex: and :Vex are good, and to those you can look for patterns in the:

   */filepat   filenames in current directory
   **/filepat  filenames in current directory or below
   *//pattern  vimgrep in current directory
   **//pattern vimgrep in the current directory or below

Wednesday, 14 November 2012

Installing drush

So we've all established that Drush is the bee's knees for running drupal installations. Right?

So tonight I had to install it on a server where I have limited rights.

This was the process (based on perusing the README.txt):

# install drush
dv=7.x-5.8
ptd=~/bin/drushfiles/$dv
mkdir -p $ptd
tar -xf ~/drush-$dv.tar.gz -C $ptd
chmod u+x $ptd/drush/drush
ln -sf $ptd/drush/drush ~/bin/drush
ln -sf $ptd/drush/examples/example.bashrc ~/bin/drush.bashrc
# put drush.bashrc into .bashrc
if grep -Fq "drush.bashrc" .bashrc
then
 echo "you already have drush.bashrc in your .bashrc, so no action taken"
else
 echo "drush.bashrc added to you .bashrc"
 echo "source ~/bin/drush.bashrc" >> .bashrc
fi
# tidy up
rm
~/drush-$dv.tar.gz


The bit I like best is greping the .bashrc so I only add the require line once.

I also had to track down php-cli that drush was complaining about. So I just used locate then made a link:
locate php-cli
ln -sf /hsphere/shared/php53/bin/php-cli bin/php-cli

Saturday, 15 September 2012

Vim scripting the hard way

You have to respect someone who writes a book titled this!

http://learnvimscriptthehardway.stevelosh.com/

There is this little pearl in the front page (I tend to loose my .vimrc!!!):

"To easily find the location and name of the file on any operating system, run :echo $MYVIMRC"

So I'll read on...

Tuesday, 4 September 2012

little things make all the difference

<esc> v takes you straight to your favourite editor in bash... ah bliss... no more wrestling with crippled command line editing for me!!

why did no-one tell me!!

Wednesday, 29 August 2012

Drush (aka drupal from bash)



Drush is cool...

# put a link to drush in your bin
ln /usr/local/bin/drush/drush bin/drush

mkdir ~/.drush
touch ~/.drush/aliases.drushrc.php 
# pinch another users alias file to get you started:
cp /home/michaeldance/.drush/aliases.drushrc.php .drush/

# edit alias file:
vim ~/.drush/aliases.drushrc.php

# see your aliases
drush sa

# chose an alias
drush use @prod

# check your good to go:
drush st

#drop into an sql shell
drush @ubox sqlc

# check the watchdog
drush watchdog-show

# clear the menu cache
drush @prod cc

# list the packages (eg modules/themes)
drush @prod pml
# filtering them with grep
drush @prod pml | grep agc

# review the watchdog-list
drush @ubox watchdog-list

#fire up the cron
drush @ubox cron

# list your packages 
drush @ubox pml


# disable a package
drush @ubox dis activitystream_feed