[146641] branches/vcs-fetch/base/src/port1.0/portfetch.tcl

raimue at macports.org raimue at macports.org
Mon Mar 14 12:06:03 PDT 2016


Revision: 146641
          https://trac.macports.org/changeset/146641
Author:   raimue at macports.org
Date:     2016-03-14 12:06:03 -0700 (Mon, 14 Mar 2016)
Log Message:
-----------
Implemented basic working version for fetch.type git

Modified Paths:
--------------
    branches/vcs-fetch/base/src/port1.0/portfetch.tcl

Modified: branches/vcs-fetch/base/src/port1.0/portfetch.tcl
===================================================================
--- branches/vcs-fetch/base/src/port1.0/portfetch.tcl	2016-03-14 18:47:28 UTC (rev 146640)
+++ branches/vcs-fetch/base/src/port1.0/portfetch.tcl	2016-03-14 19:06:03 UTC (rev 146641)
@@ -97,6 +97,8 @@
 default git.cmd {[findBinary git $portutil::autoconf::git_path]}
 default git.dir {${workpath}}
 default git.branch {}
+default git.file {${distname}.${fetch.type}.tar.xz}
+default git.file_prefix {${distname}}
 
 default hg.cmd {[findBinary hg $portutil::autoconf::hg_path]}
 default hg.dir {${workpath}}
@@ -191,6 +193,7 @@
             }
             git {
                 depends_fetch-append bin:git:git
+                default distname {${name}-${git.branch}}
             }
             hg {
                 depends_fetch-append bin:hg:mercurial
@@ -418,13 +421,12 @@
 proc portfetch::gitfetch {args} {
     global distpath workpath worksrcpath patchfiles \
            git.url git.branch git.cmd \
-           name fetch.type
+           name distname fetch.type
 
-    set generatedtar "${distpath}/${name}-${git.branch}.${fetch.type}.tar"
-    set generatedfile "${generatedtar}.xz"
+    set generatedfile "${distpath}/${git.file}"
 
     if {${git.branch} ne "" && [file isfile "${generatedfile}"]} {
-        return 0
+        return "${generatedfile}"
     }
 
     set options "-q"
@@ -437,24 +439,30 @@
     set cmdstring "${git.cmd} clone $options ${git.url} ${generatedpath} 2>&1"
     ui_debug "Executing: $cmdstring"
     if {[catch {system $cmdstring} result]} {
+        if {[file exists "${generatedpath}"]} {
+            delete ${generatedpath}
+        }
         return -code error [msgcat::mc "Git clone failed"]
     }
 
     if {${git.branch} eq ""} {
         file rename ${generatedpath} ${worksrcpath}
-        return 0
+        return ""
     }
 
     # generate tarball
     set xz [findBinary xz ${portutil::autoconf::xz_path}]
-    set cmdstring "${git.cmd} -c \"tar.tar.xz.command=xz -c\" archive --format=tar.xz --output=${generatedfile}.TMP ${git.branch} 2>&1"
+    set cmdstring "${git.cmd} -c \"tar.tar.xz.command=xz -c\" archive --prefix=\"${git.file_prefix}/\" --format=tar.xz --output=${generatedfile}.TMP ${git.branch} 2>&1"
     ui_debug "Executing $cmdstring"
     if {[catch {system -W ${generatedpath} $cmdstring} result]} {
+        if {[file exists "${generatedfile}.TMP"]} {
+            delete "${generatedfile}.TMP"
+        }
         return -code error [msgcat::mc "Git archive creation failed"]
     }
     file rename -force "${generatedfile}.TMP" "${generatedfile}"
 
-    return 0
+    return "${generatedfile}"
 }
 
 # Perform a mercurial fetch.
@@ -589,9 +597,19 @@
 
 # Initialize fetch target and call checkfiles.
 proc portfetch::fetch_init {args} {
+    global fetch.type distname git.branch all_dist_files
     variable fetch_urls
 
     portfetch::checkfiles fetch_urls
+
+    switch -- "${fetch.type}" {
+        git {
+            if {${git.branch} ne ""} {
+                lappend all_dist_files ${distname}.${fetch.type}.tar.xz
+                distfiles-append ${distname}.${fetch.type}.tar.xz
+            }
+        }
+    }
 }
 
 proc portfetch::fetch_start {args} {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160314/b21d6d12/attachment.html>


More information about the macports-changes mailing list