Baseproject

De-a lungul timpului m-a enervat la maxim necesitatea de a creea foldere și fișiere pentru fiecare proiect nou:

  • Fă un folder css, unul js și unul images;
  • Fă un fișier *.css, unul *.js și *.html (sau *.php) și să mută-l pe fiecare în folderul propriu;
  • Ia ultima versiune de jQuery și copiaz-o în folderul js.
  • Inițializează un repo git și dă-i commit-ul inițial.

Ei bine… Până aici! Chiar dacă nu îmi lua prea mult timp, la un moment dat am făcut o arhivă cu fișierele/folderele de bază și, de fiecare dată când începeam un proiect nou, dădeam un extract strategic la arhivă. Timpul a trecut, CSS Reset-ul s-a îmbunătățit, au apărut alte versiuni de jQuery etc. Prin urmare… back to square one.

Când am început să folosesc git-ul, am început să folosesc și bash prompt mai mult. Prin urmare, skill-urile mele de noob absolut în bash mi-au permis să fac un script care face fix ce aveam nevoie. Așa a luat naștere Baseproject. Și cum e cool să ai cel puțin un proiect pe github, l-am pus și acolo, să-l vadă tot poporul.

Ce face?

Păi… Ce am zis mai sus: creează fișiere și foldere și le mută unde trebuie!

Cum face?

Pui tot folderul baseproject în directorul home, faci un SymLink (în bash-ul cygwin):

ln ~/baseproject/i.bash ~/i.bash

Și aia e tot! Tot ce trebuie să faci acum este să faci click dreapta pe un folder și să alegi „Bash Prompt here” (dacă această opțiune nu există, o adaugi folosind chere -i; am scris aici despre chere) și scrii: ~/i.bash. Apeși un enter și te minunezi de tehnologie :D

Păreri? Sugestii?

12 Comentarii to “Baseproject”

  1. cam asta incearca sa faca si templateurile de proiecte din IDE-urile mari [Eclipse,Netbeans,InteliJ…]. cand dau New… -> New Project -> Web Project , imi baga o structura de proiect cu foldere si subfoldere si cateva fisiere. tu ai mers mai departe si ai bagat un mic js si css si un php. ar trebui mers si mai departe. tot cu bash, faci cu un readline un menu interactiv, de genul:
    adaugi db la proiect?
    1. mysql
    2. psql
    3. none
    blink blink 1
    si apoi pac un config.php sau db.php cu mysql_connect la o baza cu numele folderului parinte [numele proiectului]
    user module needed?
    1. yes
    2. no
    si pac, inca niste phpuri
    etc…
    eu am un netbeans plugin care imi face faze din astea, insa e pentru proiecte web in java.
    tin-te de proiectul asta, merita investit in el.

  2. Staicu Ionuț-Bogdan

    Chestia e că eu fac doar front end, nu am nevoie de myslq & stuff :)

    tin-te de proiectul asta, merita investit in el.

    Încerc :)

  3. Exact cam ce zice jgabios, în netbean creez un nou proiect (să zicem web) și îmi creează el automat structura de foldere, filele de configurare și restul.

    Dacă adaug chestii noi, gen bază de date, IDE-ul mă trece automat printr-un wizzard pentru configurare access la baza de date, mapare tabele la clase, eventual file suplimentare pentru configurare și îmi pune și librăriile necesare.
    Desigur, se pot defini template-uri pentru tipuri de fișierele necesare.

    Oricum, proiectul ăsta ar fi mișto dacă ai lăsa și pe alții să contribuie la el, ar fi interesant de văzut cum încep și alții proiectele, cum au ei kickstart-ul, etc. :)

    P.S. @jgabios, ce plugin este acela?

  4. nu e public, eu l-am facut si eu il utilizez ca si Ionut. poate ca o sa il fac si eu public cand o sa am timp sa il curat. este pentru web, face o gramada de lucruri repetitive, imi adauga librariile, imi baga mootools, etc… . aa, si e specific pentru rife [http://rifers.org/].
    code templateurile sunt tari iarasi da, trebuie si din astea sa iti sporesti eficienta in scrierea codului.

  5. Staicu Ionuț-Bogdan

    Oricum, proiectul ăsta ar fi mișto dacă ai lăsa și pe alții să contribuie la el

    Dude, e pe GitHub! ORICINE poate contribui! :)

  6. Nu știu cu ce se mănâncă gitHub-ul… folosesc doar CVS și SVN. Îmi sunt de ajuns. :D
    Adică înțeleg în mare cam cu ce se mănâncă, mai puțin partea de “social”.
    Dacă contribuie oricine presupun că asta înseamnă că apar enșpe mii de forkuri, că doar nu o scrie toți direct în proiectul tău. Deci greu de urmărit. :D

    P.S. Tocmai am descoperit că Syntevo a făcut client pentru Git. Am folosit clientul lor de SVN și CVS de ani de zile.

  7. Scuzati intrebarea, dar de-abia am descoperit Git-ul si as vrea sa stiu daca acesta poate salva automat fiecare versiune a unui fisier? Am mai folosit inainte SVN dar nu am gasit vreo optiune in sensul asta.

    Momentan folosesc AutoVer (http://beanland.net.au/AutoVer/). Care e mai mult backup decat revision control dar in esenta e ceea ce imi trebuie.

    Multumesc.

  8. Staicu Ionuț-Bogdan

    Adi, nu știu să existe o astfel de aplicație dar ai putea să tragi un ochi pe la less să vezi cum „urmărește” fișierul.

    Daaar… De ce ai face asta? Îți dai seama că în cazul în care vrei să te întorci cu două zile în urmă vei avea foarte multe versiuni de controlat :)

  9. Multumesc pentru raspunsul rapid.
    Nu stiu de ce, dar eu ma inteleg mai bine cu o chestie de genul asta, poate sunt doar eu :)

  10. Staicu Ionuț-Bogdan

    Adi, cam așa eram și eu. Te obișnuiești în câteva ore, imediat ce înțelegi conceptul de version control :)

  11. Nu stiu exact daca m-am exprimat bine in primul mesaj dar nu vreau o sa creez a copie a fisierului cu care lucrez (asta face momentan AutoVer) ci as vrea doar sa vad diferentele dintre versiunea actuala si cea de la o salvare anterioara (chestia asta sa o pot face automat, fara checkout etc).

    Scuze pentru ca sunt oarecum offtopic.

  12. @adi: de regulă eu dau un right click și selectez compare. Apoi compar fie alegând opțiunea “Same revision (What was changed locally)” fie selectez Other și atunci pot compara după Date, Revision sau Tag.

    70% cazuri, folosesc comparația după Revision, 25% să zic compar cu “Same revision” iar restul…

    Backup-ul este backup, să fiu sincer și eu mai uit să pun fișierele în repository, vin alții scriu în ele și când îmi aduc aminte să dau commit deja nu se mai poate și am o cârcă de conflicte.

Show trackbacks

Ți-a plăcut articolul? Lasă un comentariu!

You can insert code snippets using BBcode:
[js].[/js] [html].[/html] [php].[/php] [css].[/css]
You can also use some HTML tags:
<blockquote>.</blockquote> <code>.</code> <a href="">.</a> <strong>.</strong> <em>.</em>

windows apple dropbox facebook twitter