среда, 25 января 2012 г.

custom php.ini для fastcgi

php5.fcgi  :

#!/bin/bash
PHPRC=$PWD/../etc/php5
#PHPINIDir=$PWD/../etc/php5
#PHP_INI_SCAN_DIR=$PWD/../etc/php5/conf.d
#export PHPINIDir
#export PHP_INI_SCAN_DIR

export PHPINIDIR=$PWD/../etc/php5
export PHP_INI_PATH=$PWD/../etc/php5

export PHPRC
umask 022
export PHP_FCGI_CHILDREN
SCRIPT_FILENAME=$PATH_TRANSLATED
export SCRIPT_FILENAME
exec /usr/bin/php5-cgi
или же в php.ini раскоментировать строчку
; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
user_ini.filename = ".user.ini"
и в корневой вебдиректории можно создать файл .user.ini и писать в него конфигурацию php

bash Test

http://www.ibm.com/developerworks/library/l-bash-test/index.html

установка Gimp 2.7 на Ubuntu

Ура! в GIMP 2.7 появилась наконец-то опция всё в одном окне.
Устанавливаю по инструкции
http://www.gimpusers.com/tutorials/compiling-gimp-for-ubuntu

манипуляция строками в bash

a="aaa/bbbb.t"
# удалить с начала строки макс. вхождений
echo "${a##*/}"
# удалить с начала строки мин. вхождений
echo "${a#*/}"
# удалить с конца строки мин. вхождений
echo "${a%/}"
# удалить с конца строки макс. вхождений
echo "${a%%/}"
# замена первой найденой подстроки
echo "${a/a/_}"
# замена всех найденых подстрок
echo "${a//a/_}"


источник: http://tldp.org/LDP/abs/html/string-manipulation.html

Git INFO Common Commands

Configure Git client options:
# show config options
git config --list # show all
git config --global --list # show only global
git config --local --list # show only local

# --global option impacts options at a global level
# --local option impacts options at a local level (.git/config)

# set username/email associated with client
git config --global user.email "joe@example.com"
git config --global user.name "Joe Jaz"

# add color syntax highlighting
git config --global color.status auto
git config --global color.branch auto

# set default pager and editor
git config --global core.editor vim # or set the GIT_EDITOR environment variable
git config --global core.pager less # or set the GIT_PAGER environment variable

# display an option value
git config group.value
git config user.name

Start a new repository and import:
# In the root folder to add to version control:
git init
git init --bare  # creates a new repository (with no working copy)
git add . # add everything in directory to repo
git commit -m 'initial commit'

Making commits:
# commit specific files
git commit file1 file2 -m 'comment'

# commit all 'added' files
git commit -a -m 'comment'

# change a commit message
git commit --amend -m 'New Message'

Create new repository by cloning existing one:
git clone --bare . path_or_url_to_git_dir.git

Setting the remote repository (to push and pull from):
git remote add short_name path_or_url_to_git_dir.git
git remote add origin git://github.com/imagescape/iscape-authlog.git

Show remote branches:
git ls-remote orig
git remote show orig




Show remote repositories available:
git remote
git remote -v # show the url
git remote show origin  # show detail information about origin

Remove a remote repository: 
git remove repo_name

Rename a remote repository: 
git rename old_repo_name new_repo_name

Push and Pull from remote repository:
git push origin # push recent commits to remote repository called "origin"
git pull origin # pull updates from origin

Revert changes in working copy:
git clean -n
git clean --dry-run

Show file differences:
git diff   # show differences between working copy and any files staged for commit
git diff --staged   # compares staged changes with last commit
git diff --cached  # same as above for git older than 1.6.1

Show File/s History:
git log filename # Show single file versions

# Show number of lines changed in file/s
git log -stat filename # single file
git log -stat # multiple files

# show log summaries on one line
git log --pretty=oneline # Pre-defined format
git log --pretty=format:"%h - %cD (%an) %s" # custom format (see below)
git log --pretty=format:"%h %s" --graph

    Pre-Defined Pretty formats:
    oneline
    short
    medium
    full
    fuller
    email
    raw
    format:string # where string is
        Format Strings
        %H: commit hash
        %h: abbreviated commit hash
        %T: tree hash
        %t: abbreviated tree hash
        %P: parent hashes
        %p: abbreviated parent hashes
        %an: author name
        %aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
        %ae: author email
        %aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
        %ad: author date (format respects --date= option)
        %aD: author date, RFC2822 style
        %ar: author date, relative
        %at: author date, UNIX timestamp
        %ai: author date, ISO 8601 format
        %cn: committer name
        %cN: committer name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
        %ce: committer email
        %cE: committer email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
        %cd: committer date
        %cD: committer date, RFC2822 style
        %cr: committer date, relative
        %ct: committer date, UNIX timestamp
        %ci: committer date, ISO 8601 format
        %d: ref names, like the --decorate option of git-log(1)
        %e: encoding
        %s: subject
        %f: sanitized subject line, suitable for a filename
        %b: body
        %B: raw body (unwrapped subject and body)
        %N: commit notes
        %gD: reflog selector, e.g., refs/stash@{1}
        %gd: shortened reflog selector, e.g., stash@{1}
        %gs: reflog subject
        %Cred: switch color to red
        %Cgreen: switch color to green
        %Cblue: switch color to blue
        %Creset: reset color
        %C(…): color specification, as described in color.branch.* config option
        %m: left, right or boundary mark
        %n: newline
        %%: a raw %
        %x00: print a byte from a hex code
        %w([[,[,]]]): switch line wrapping, like the -w option of git-shortlog(1).

Show git branches available:
git branch

Show all branches including remote branches:
git branch -a

Create new branch:
git branch new_branch

Change branches:
git checkout new_branch

Delete branch:
git branch -D new_branch

Merge branch into current copy:
git merge branch_to_merge_in

Resolve a Merge:
1) Edit file to resolve
2) git add conflict_file
3) git commit

Undo a Merge:  # restores state to pre-merge
git reset --heard HEAD

~/.gitignore
[color]
 diff = auto
 status = auto
 branch = auto
[user]
 name = Joe Jaz
 email = joe@example.com
[alias]
 st = status
 stu = status -uno
 ci = commit
 co = checkout
 br = branch -v
 tree = log --graph --pretty=oneline --abbrev-commit --decorate
[core]
 editor = vim
 pager = less

воскресенье, 22 января 2012 г.

redmine эмайл увидомления с приложениями

Патч добавляющий в тело эмайла ссылки на приложения к задачи
http://pastebin.com/p0Esq3iP
diff --git a/app/models/attachment.rb b/app/models/attachment.rb
index ff434d8..0a7e69a 100644
--- a/app/models/attachment.rb
+++ b/app/models/attachment.rb
@@ -116,6 +116,11 @@ class Attachment < ActiveRecord::Base
   def deletable?(user=User.current)
     container.attachments_deletable?(user)
   end
+  
+  # my fix for email attachment
+  def to_s
+        self.filename
+  end
 
   def image?
     self.filename =~ /\.(jpe?g|gif|png)$/i
diff --git a/app/views/mailer/_issue_text_html.rhtml b/app/views/mailer/_issue_text_html.rhtml
index 3d851d4..06f0aec 100644
--- a/app/views/mailer/_issue_text_html.rhtml
+++ b/app/views/mailer/_issue_text_html.rhtml
@@ -7,6 +7,16 @@
 <li><%=l(:field_assigned_to)%>: <%=h issue.assigned_to %></li>
 <li><%=l(:field_category)%>: <%=h issue.category %></li>
 <li><%=l(:field_fixed_version)%>: <%=h issue.fixed_version %></li>
+<% if issue.attachments.size > 0 %>
+    <li>
+        <ul>
+           <%=l(:label_attachment)%>: 
+           <% issue.attachments.each do | c | %>
+               <li> <%= link_to(c.to_s(), "http://redmine.tnt.it-solutions.cz/attachments/"+ c.id.to_s() + "/" + c.to_s() ) %> </li>
+        <% end %>
+        </ul>
+    </li>
+<% end %>
 <% issue.custom_field_values.each do |c| %>
   <li><%=h c.custom_field.name %>: <%=h show_value(c) %></li>
 <% end %>
diff --git a/app/views/mailer/_issue_text_plain.rhtml b/app/views/mailer/_issue_text_plain.rhtml
index bea2a58..5e49b99 100644
--- a/app/views/mailer/_issue_text_plain.rhtml
+++ b/app/views/mailer/_issue_text_plain.rhtml
@@ -7,6 +7,7 @@
 <%=l(:field_assigned_to)%>: <%= issue.assigned_to %>
 <%=l(:field_category)%>: <%= issue.category %>
 <%=l(:field_fixed_version)%>: <%= issue.fixed_version %>
+<% if issue.attachments.size > 0 %><%=l(:label_attachment)%>: <%= issue.attachments.join(", ") %><% end %>
 <% issue.custom_field_values.each do |c| %><%= c.custom_field.name %>: <%= show_value(c) %>
 <% end %>

пятница, 20 января 2012 г.

perl oneliner

perl -n -e 'm/(?:[^\d.])((?:\d*)(?:(\.\d{0,2})?))(?:\s\&euro)/ && {print "$1\n"}'