From 1596d9aeaeeb27628ab0dea6344073a4d4324197 Mon Sep 17 00:00:00 2001 From: "U-SLAVA-DFB8FF805\\Slava" Date: Mon, 13 Apr 2009 19:03:17 -0500 Subject: [PATCH] mason: add workaround for cygwin git issue --- extra/mason/cleanup/cleanup.factor | 2 +- extra/mason/common/common.factor | 15 +++++++++++++-- extra/mason/release/archive/archive.factor | 2 +- extra/mason/release/tidy/tidy.factor | 4 ++-- 4 files changed, 17 insertions(+), 6 deletions(-) mode change 100644 => 100755 extra/mason/cleanup/cleanup.factor mode change 100644 => 100755 extra/mason/common/common.factor mode change 100644 => 100755 extra/mason/release/archive/archive.factor mode change 100644 => 100755 extra/mason/release/tidy/tidy.factor diff --git a/extra/mason/cleanup/cleanup.factor b/extra/mason/cleanup/cleanup.factor old mode 100644 new mode 100755 index a2c087392a..a273696f51 --- a/extra/mason/cleanup/cleanup.factor +++ b/extra/mason/cleanup/cleanup.factor @@ -18,6 +18,6 @@ IN: mason.cleanup build-dir [ compress-image compress-test-log - "factor" delete-tree + "factor" really-delete-tree ] with-directory ] unless ; diff --git a/extra/mason/common/common.factor b/extra/mason/common/common.factor old mode 100644 new mode 100755 index 3cd38e1ff4..047bdaa844 --- a/extra/mason/common/common.factor +++ b/extra/mason/common/common.factor @@ -2,11 +2,22 @@ ! See http://factorcode.org/license.txt for BSD license. USING: kernel namespaces sequences splitting system accessors math.functions make io io.files io.pathnames io.directories -io.launcher io.encodings.utf8 prettyprint +io.directories.hierarchy io.launcher io.encodings.utf8 prettyprint combinators.short-circuit parser combinators calendar -calendar.format arrays mason.config locals ; +calendar.format arrays mason.config locals system ; IN: mason.common +HOOK: really-delete-tree os ( path -- ) + +M: windows really-delete-tree + #! Workaround: Cygwin GIT creates read-only files for + #! some reason. + [ { "chmod" "ug+rw" "-R" } swap (normalize-path) suffix try-process ] + [ delete-tree ] + bi ; + +M: unix really-delete-tree delete-tree ; + : short-running-process ( command -- ) #! Give network operations at most 15 minutes to complete. diff --git a/extra/mason/release/archive/archive.factor b/extra/mason/release/archive/archive.factor old mode 100644 new mode 100755 index 5ef424ad4f..fff8b83c23 --- a/extra/mason/release/archive/archive.factor +++ b/extra/mason/release/archive/archive.factor @@ -29,7 +29,7 @@ IN: mason.release.archive "-fs" "HFS+" "-volname" "factor" } archive-name suffix try-process - "dmg-root" delete-tree ; + "dmg-root" really-delete-tree ; : make-unix-archive ( -- ) [ "tar" , "-cvzf" , archive-name , "factor" , ] { } make try-process ; diff --git a/extra/mason/release/tidy/tidy.factor b/extra/mason/release/tidy/tidy.factor old mode 100644 new mode 100755 index 497be09044..054b15f0f5 --- a/extra/mason/release/tidy/tidy.factor +++ b/extra/mason/release/tidy/tidy.factor @@ -12,11 +12,11 @@ IN: mason.release.tidy append ; : remove-common-files ( -- ) - common-files [ delete-tree ] each ; + common-files [ really-delete-tree ] each ; : remove-factor-app ( -- ) target-os get "macosx" = - [ "Factor.app" delete-tree ] unless ; + [ "Factor.app" really-delete-tree ] unless ; : tidy ( -- ) "factor" [ remove-factor-app remove-common-files ] with-directory ;