michaelbarys
5/26/2016 - 10:47 AM

Customowe funkcje dostępne w terminalu

Customowe funkcje dostępne w terminalu

#Customowe funkcje dostępne w terminalu

Funkcje należy umieścić w pliku ~/.zshrc

##take

take dirname

Tworzy katalog o nazwie dirname i wchodzi do niego.

Source:

function take(){
    mkdir $1
    cd $1
}

##godev

godev [dirname]

  1. Idzie do katalogu Workspace/Php. Jesli podano opcjonalnie dirname, to idzie do katalogu Workspace/Php/{dirname}.
  2. Listuje zawartość katalogu

Source:

function godev(){
    cd ~/Dropbox/Workspace/Php/$1
    ls -1
}

##create_project

create_project proj_type proj_name

  1. Tworzy katalog w Workspace/Php/{proj_type}, gdzie proj_type = {clients|private} katalog o nazwie proj_name.
  2. Inicjuje repozytorium git
  3. Tworzy plik [proj_name].sublime-project w katalogu Workspace/Php/_sublime_projects
  4. Otwiera projekt w Finderze
  5. Otwiera projekt w Sublime Text

Source:

# wywołanie: create_project {project_type} {project_name}
# gdzie:

# {project_type} - clients lub private, co odzwierciedla
# strukturę katalogów w /Users/michalbarys/Dropbox/Workspace/Php/:
# /Users/michalbarys/Dropbox/Workspace/Php/clients, oraz
# /Users/michalbarys/Dropbox/Workspace/Php/private
#
# {proj_name} - nazwa projektu, bez spacji, będąca jednoczesnie
# nazwą katalogu z projektem
function create_project(){

  PROJECTS_DIR=~/Dropbox/Workspace/Php/
  SUBLIME_PROJECTS_DIR=/Users/michalbarys/Dropbox/Workspace/Php/_sublime_projects/
  TERMINAL_TOOLS_DIR=/Users/michalbarys/Dropbox/Workspace/Php/_terminal_tools/

  if [ ! "$1" = "clients"  ] && [ ! "$1" = "private" ] ; then
    echo "Podaj poprawny typ projektu: create_project {private|clients} {project_name}"
  else
    # przejdź do katalogu "private" lub "clients"
    cd $PROJECTS_DIR$1
    # utwórz katalog projektu
    take $2
    # zainicjuj git
    git init
    # utwórz projekt dla Sublime Text
    php ${TERMINAL_TOOLS_DIR}create_project.php $1 $2
    # otwórz katalog z projektem w Finderze
    open .
    # otwórz projekt w Sublime Text
    subl $SUBLIME_PROJECTS_DIR$2.sublime-project
  fi
    
}

Source for create_project.php:

<?php

$projectsDir = '/Users/michalbarys/Dropbox/Workspace/Php/' . $argv[1] . '/';
$sublProjDir = '/Users/michalbarys/Dropbox/Workspace/Php/_sublime_projects/';

$source = array(
  'folders' => array(
    array('path' => $projectsDir . $argv[2])
  )
);

file_put_contents( $sublProjDir . $argv[2] . '.sublime-project', json_encode( $source, JSON_PRETTY_PRINT ) );

?>

##open_project

open_project {proj_type} {proj_name}

  1. Otwiera w Finderze ~/Dropbox/Workspace/Php/{proj_type}/{proj_name}
  2. Otwiera w Sublime Text projekt z /Users/michalbarys/Dropbox/Workspace/Php/_sublime_projects/{proj_name}.sublime-project

Source:

# Otwiera istniejący projekt
#
# wywołanie:
# open_project {project_type} {project_name}
#
# gdzie:
# {project_type} - clients lub private, co odzwierciedla
# strukturę katalogów w /Users/michalbarys/Dropbox/Workspace/Php/:
# /Users/michalbarys/Dropbox/Workspace/Php/clients, oraz
# /Users/michalbarys/Dropbox/Workspace/Php/private
#
# {proj_name} - nazwa projektu, bez spacji, będąca jednoczesnie
# nazwą katalogu z projektem
#
function open_project(){

  PROJECTS_DIR=~/Dropbox/Workspace/Php/
  SUBLIME_PROJECTS_DIR=/Users/michalbarys/Dropbox/Workspace/Php/_sublime_projects/
  TERMINAL_TOOLS_DIR=/Users/michalbarys/Dropbox/Workspace/Php/_terminal_tools/

  # sprawdź, czy katalog z projektem istnieje
  if [ ! -d $PROJECTS_DIR$1$2 ] ; then
    # wejdź do katalogu
    cd $PROJECTS_DIR$1"/"$2
    # otwórz katalog z projektem w Finderze
    open .
    # sprawdź czy plik z projektem dla Sublime Text istnieje
    if [ ! -f $SUBLIME_PROJECTS_DIR$2.sublime-project ] ; then
      # jesli nie istenie, to utwórz projekt dla Sublime Text
      php ${TERMINAL_TOOLS_DIR}create_sublime_project.php $1 $2
    fi
    # otwórz projekt w Sublime Text
    subl $SUBLIME_PROJECTS_DIR$2.sublime-project
  else
    echo "Brak katalogu "$PROJECTS_DIR$1"/"$2
  fi

}