Wer weiß eine schöne Lösung?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wer weiß eine schöne Lösung?

    Hi,

    ich habe gerade die Nase voll. Ich habe ein PHP Projekt, welches ich mit .git verwalte. Das führt dazu, dass in dem Ordner wo das Projekt liegt das repostiory (.git) liegt welches natürlich immer weiter anwächst.

    Wenn ich nun das Project deploye, dann muss ich dieses von Hand machen da mein Entwicklungsrechner keinen Zugriff auf das Intranet der Firma hat. Das ist bei PHP ja auch normal gar kein Problem: Ich kompremiere den Projekt Ordner und kopiere ihn auf einen Stick. Dann stecke ich den Stick an den Firmen Laptop und kpiere den Ordner einfach auf den Server und entzippe ihn in das entsprechende www Verzeichnis.

    Dummerweise wird nun dieses .zip File durch das .git unnötig aufgebläht und das verzögert den Upload, das entpacken etc. Das muss ja nicht sein.

    Lösung:

    Alle hidden Files nicht mit einpacken. Das geht über terminal ja auch relativ gut. Ist aber eben auch nervig. Schöner wäre es, ich könnte wie bisher einen Rechtsklick auf den Ordner machen und dann einfach "Compress without hidden" oder so auswählen,

    In welcher Form das jetzt auch immer machbar ist versuche ich mit diesem Thread zu eruieren.

    Ich denke mit einem selbst geschriebenen Programm das als Dienst oder sowas arbeitet geht es auf jeden Fall. Aber geht es vielleich auch einfacher/schneller? Vielleicht hat ja auch jemand ein ähnliches Programm geschrieben, dass per rechtsklick startbar ist und das nur in sofern umgeschrieben werden muss, dass die eigentlich ausgelöste Aktion eine andere ist? Vielleicht hat ja sogar jemand Lust so ein Programm aus Übungszwecken zu schreiben?

    Ich wäre für jede Lösung die mir so viel Arbeit wie möglich abnimmt mindestens "3 Macoun Bier" dankbar :)

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Naja, alle hidden files würd ich nicht excluden (.htaccess und co). Jedoch die resource-forks auf jeden fall. Ich würd das zeug dann auch direkt auf den stick kopieren lassen sodass du dir das sparen kannst. Eventuell auch noch dateinamen mit datum versehen sodass du die zips aufm firmenlaptop als backup liegen lassen kannst.

    Edit: ist es ein lokales git-prject oder liegt es auf github, butbucket und co? Dann könntest dus ja einfach vom firmenrechner laden oder noch einfacher direkt vom firmenserver laden wenn der git unterstützt.
  • Hallo,

    mit unter dafür hat Apple ja die AppleScript-Droplets erfunden.
    Einfach den AppleScript Editor öffnen und Code als Programm sichern.

    Auf das Programm können dann sämtliche Dateien und Ordner gezogen werden.
    Für jedes Element wird Dir ein Archiv erzeugt.

    Die Dateien/Ordner, die Du ausschließen möchtest musst Du selbst hinzufügen.

    Viele Grüße

    JavaScript-Quellcode

    1. --
    2. on open itemList
    3. --
    4. my archiveDroppedItems(itemList)
    5. --
    6. end open
    7. --
    8. on archiveDroppedItems(itemList)
    9. --
    10. repeat with nItem in itemList
    11. --
    12. set nItemPath to POSIX path of nItem
    13. --
    14. -- display alert "item" message nItemPath
    15. --
    16. my archiveItem(nItemPath)
    17. --
    18. end repeat
    19. --
    20. end archiveDroppedItems
    21. --
    22. on archiveItem(aItem)
    23. --
    24. -- display alert "item" message aItem
    25. --
    26. set folderPath to my parentFolderPathOfItem(aItem)
    27. if (length of folderPath < 1) then
    28. return false
    29. end if
    30. --
    31. -- display alert "folder" message folderPath
    32. --
    33. set itemName to my nameOfItem(aItem)
    34. if (length of folderPath < 1) then
    35. return false
    36. end if
    37. --
    38. -- display alert "name" message itemName
    39. --
    40. set archivePath to folderPath & itemName & ".zip"
    41. if (length of archivePath < 1) then
    42. return false
    43. end if
    44. --
    45. --display alert "archive" message archivePath
    46. --
    47. my moveItemToTrash(archivePath)
    48. --
    49. do shell script "zip -rj " & quoted form of archivePath & " " & quoted form of aItem
    50. --
    51. return true
    52. --
    53. end archiveItem
    54. --
    55. on parentFolderPathOfItem(aItem)
    56. --
    57. if (length of aItem < 1) then
    58. return ""
    59. end if
    60. --
    61. set folderPath to POSIX path of (POSIX file (aItem & "/..") as alias)
    62. --
    63. return folderPath
    64. --
    65. end parentFolderPathOfItem
    66. --
    67. on nameOfItem(aItem)
    68. --
    69. if (length of aItem < 1) then
    70. return ""
    71. end if
    72. --
    73. tell application "Finder"
    74. set itemName to name of ((aItem as POSIX file) as alias)
    75. end tell
    76. --
    77. return itemName
    78. --
    79. end nameOfItem
    80. --
    81. on moveItemToTrash(aItem)
    82. --
    83. if (length of aItem < 1) then
    84. return false
    85. end if
    86. --
    87. tell application "Finder"
    88. --
    89. set aFile to (aItem as POSIX file)
    90. if not (exists aFile) then
    91. return false
    92. end if
    93. --
    94. move aFile to trash
    95. --
    96. end tell
    97. --
    98. return true
    99. --
    100. end moveItemToTrash
    101. --
    Alles anzeigen
  • manoh schrieb:

    githooks post-commit

    Ein ganz anderer Weg wäre, nach einem Commit läuft automatisch ein Script, dass dir dein RAR/ZIP/TGZ erstellt. Dann musst Du nur noch die Datei auf deinen Stick kopieren.
    Also die Idee finde ich ziemlich gut. Da werden dann zwar zig unnötige Pakete gezippt da ja nicht jeder Commit deployed wird aber das interessiert mich ja nicht.

    Danke

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • little_pixel schrieb:

    Hallo Claus,

    Du musst nur die Zeile im zip shell script mit Deinem Ausschuss erweitern.
    Da Du es ja im Terminal schon hattest, ist das ja nur copy&paste für die Erweiterung.

    Viele Grüße
    Hallo, weil wir schon bei AS und hidden files sind - vielleicht kennst du ja eine einfache lösung dafür:


    Quellcode

    1. set background picture of theViewOptions to file ".background.png"
    Das funktioniert nur wenn man den Finder so eingestellt hat dass transparente files angezeigt werden (hab ich per default aus und möchte es nicht dauernd ein und ausschalten).

    besten dank!
  • little_pixel schrieb:

    Hallo Claus,

    Du musst nur die Zeile im zip shell script mit Deinem Ausschuss erweitern.
    Da Du es ja im Terminal schon hattest, ist das ja nur copy&paste für die Erweiterung.

    Viele Grüße

    Ich wollte das gerade mal probieren aber dummerweise funktioniert jetzt Dein Scirpt nicht mehr? Ich bekomme immer einen Fehler

    zip warning: first full name: /Users/.../Documents/Developer/.../.../.../jobs/.DS_Store
    second full name: /Users/.../Documents/Developer/.../.../.../.idea/.DS_Store
    name in zip file repeated: .DS_Store
    this may be a result of using -j

    [b]zip error: Invalid command arguments (cannot repeat names in zip file)[/b]


    Kannst Du was damit anfangen?


    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Dann fängt der Inhalt des Paketes aber mit

    /Users/.../Documents/Developer/.../.../.../

    an. Auch nicht schön. Ausserdem überschreibt das Script ungefragt ein bereits bestehendes. Das sollte auch nicht sein. Da sollte er wie das OS selbst auch ein (1), (") oder so dahinter machen.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Guten morgen,

    Thallius schrieb:

    Dann fängt der Inhalt des Paketes aber mit

    /Users/.../Documents/Developer/.../.../.../

    an. Auch nicht schön. Ausserdem überschreibt das Script ungefragt ein bereits bestehendes. Das sollte auch nicht sein. Da sollte er wie das OS selbst auch ein (1), (") oder so dahinter machen.

    Gruß

    Claus
    Das stimmt nicht. Das alte landet im Papierkorb und bekommt einen Zeitstempel.

    Viele Grüße