Check-in [e05a3e1067]
Not logged in
Overview
Comment:Comments, cleanup, more work in progress on the uploader client. Not yet tested. Also, 'getContainingDirectory' still needs work to forbid mismatched root directories.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | uploaderClient
Files: files | file ages | folders
SHA1: e05a3e10670191e8729683fb453826895d487e8f
User & Date: mistachkin on 2016-12-18 03:10:32
Other Links: branch diff | manifest | tags
Context
2016-12-18
20:56
Make the 'getCommonContainingDirectory' procedure work correctly for all corner cases. More cleanup. check-in: 2a6ac9473f user: mistachkin tags: uploaderClient
03:10
Comments, cleanup, more work in progress on the uploader client. Not yet tested. Also, 'getContainingDirectory' still needs work to forbid mismatched root directories. check-in: e05a3e1067 user: mistachkin tags: uploaderClient
00:55
More work getting the script block generator working. check-in: 2515a3ade8 user: mistachkin tags: uploaderClient
Changes

Modified client/1.0/neutral/pkgr.eagle from [46ce6d2906] to [6dfa391a89].

350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
      if {[catch {
        eval exec -success Success $openPgpInstalledCommand
      } result]} then {
        error "cannot use OpenPGP: may not be installed and/or configured"
      }
    } else {
      if {[catch {
        eval exec [subst $openPgpInstalledCommand]
      } result]} then {
        error "cannot use OpenPGP: may not be installed and/or configured"
      }
    }

    if {![info exists result] || \
        ![regexp -- $openPgpInstalledPattern $result]} then {







|







350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
      if {[catch {
        eval exec -success Success $openPgpInstalledCommand
      } result]} then {
        error "cannot use OpenPGP: may not be installed and/or configured"
      }
    } else {
      if {[catch {
        eval exec $openPgpInstalledCommand
      } result]} then {
        error "cannot use OpenPGP: may not be installed and/or configured"
      }
    }

    if {![info exists result] || \
        ![regexp -- $openPgpInstalledPattern $result]} then {

Modified client/1.0/neutral/pkgr.eagle.asc from [4f9aea824a] to [1151a9c981].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVMeqAAoJEFAslq9JXcLZ7TMP/i1uqLXgToUaI4sFV8hoxPWQ
buaSI3nfNLJvv8jVJAfe7VolYJw9v0FHpeDTcVToVUDlcGy8W561stkgYn96f4tZ
C7jLGhqtv5IpESjXDm/1bf8QoJrLShx74W68/o1ae4uhlpPYxZg5vcSYFNS09h+r
BGNNza0rZS/4elml92cbsfc/h3Qn2A9chu34eiF0TC4zhCknrmU4LKD3yhlqpJWT
cDIGyKUecW+mSXJGltmmJL+IgO+tNwA72q91sJ3ZIsaEFdYMENZkwva9l7LxoK3j
tqJqknv6a8H1V9PKN9c+qUROq0c5+biwhgldfg1JTLD5ah1YcrZNB9idUen/ftf+
QTQnx3nYPLl7fnMiM6S6svWZjSdZ98Fnpu4Jr1F3Im4DSp6wQcILYruGah9ac49Z
XB/yFpiit7ZhoTH1IVNYYQMdqbf/Wb6WBO5q4CxA000C6ANrk2Cm7Xh5wFlTafg3
VsEzRNhOLfu8dO2CaOzTIfRo4QhwDJl9yDauei4sPo0J2FmbPTyMBnBwz/X14Gcv
st5sFAIsryfSx2c3rDpnj8aFHcQLi0DuB8QCR0p4aSKVb2lenmZfcA85PZYD662v
2x/41sP//rajbEz3YjJlnoK19acDwJSU6uFuvLEqklnd7TDFHl1YtnVVD6wvfSxV
F67DBCIaQLgfEMK45lzv
=waFs
-----END PGP SIGNATURE-----




|
|
|
|
|
|
|
|
|
|
|
|
|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVf3KAAoJEFAslq9JXcLZdl8P/3gJbugJFTv34QLfX4lGkE/O
90DdUo9cE5Q3B4TzhdI7q0Pndr3npbHfYN4xE1x31ru49TAvFfvqlfb8ruWbLaut
yVT4qWixveJ+9Dmyqz/caP4EEOLiWy5Esyiodsnm0vfmsZNF2l2ZheLemcLk6Vzm
Z5mBH3wDwdPP0KP7qKEpz5havgnyt1OMqAeilq8Kr0azBhlKKfCv74XpYvKJk+Rp
6DHO9aRrszMs6MOBHwPBs7WncMiOANNHnj/Q24sxIdqGjIA7FmU4mkZBC0j2ambD
8tk8DUvKLeHMsttpB8K6pur9OdLkXTNy96tH2wMsSH77ewvcuNJs+znB8p2OEcGr
s61qNhioRym9L/mtoMeaDQhmTr6xHLP5brLW2VKrm61UoWpakTjcKIX7mKEe2KN0
9PVWgVoKO1u3xxRpqERsdgb72AiHk0usODIqy7WazLLOh+he/yOSiJtYj2Q4VsiC
O5E7GTkdD9XRWaltkJ2TYxDC8C4VSUoWsXTKHnMRczg3iIk6sqgxRkAHqa1ggjM9
sBMuwJtJwKeWvLtTwJef5qZp4pdY9rxZo5wn92nMx9veLUit963ORAe1ww2gqFdk
o7kAVia6QL6csbhyO8hgx+ozi0vrD9THIfO6KNYXhn6zEthX8ZYcf9gS/gUcpef9
HP4UN52z9xe1HmJ1zztl
=m5li
-----END PGP SIGNATURE-----

Modified client/1.0/neutral/pkgr.eagle.harpy from [c814762109] to [ad1f66b9ba].

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>b26eb0c0-d25c-485f-9228-064fdd1f781a</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-12-17T05:04:57.1298828Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x9559f6017247e3e2</Key>
  <Signature>
    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
  </Signature>
</Certificate>







|


|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>0dc9006c-d011-45fe-a801-6b1fb194725f</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-12-18T03:08:09.6591796Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x9559f6017247e3e2</Key>
  <Signature>
    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
  </Signature>
</Certificate>

Modified client/1.0/neutral/pkgr.eagle.harpy.asc from [e6c0f2e243] to [5194a87a9b].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVMetAAoJEFAslq9JXcLZE/8QAJY8LtO8YUPPhTY+RPAPw7vZ
R5W/eCOJ1Qy185xjLVYeb6V0ULxEAgY7iNw4mAkF7dZl1oQ56Xhao4L2sH4+nsMx
q/BU0Y/Bk0StpHpRvw10bWl/iVo4W2qK07gXepgL9zpI5pl/lJerSJA3LHd6RD8T
Au/2dw6d/N4ozkc3BTZf4PVZCKfLzVdQ1hEbpDTVlWd0fDS9sEywdML/OKgMzvbG
YfJrTwjF8sf3urJDbBolFxV430mdbIbLPyvkUCCiOjC3oJi0766B2Xsz+95fY16y
fMa8T96R2atRPCOolDN5jdIvCkP3VRKlts6OoNZ7nojiS0SsDsREgt5cEFWieXYg
JFf0Ln5wqjAWxRLl/MlZw2qoN4VQKD9OyS/m/lncNQ4udP4/AIeuQIIeJ0e/pjuQ
7jiYm9ZCyBcFT7ncU1gZjp9zQar4hWY1oF79RfiwAhno8Rz1CwAFNGKaJ7nenx+7
/orx8qcDMFZnPh0fsLQJ2f+Z7TTFmLDuYvA8tDHZRWF4RO//+HYec2KZYIay1ZHI
6RiaNzwjNKI2RF9yJUS+6tGhhu1ck2MR5IXuQ9QFLXqke15qwkpMdKUTxu8N2K/L
FToN9rn9WfC6O1TeUGZkYr7q9hgZ7hBCn0iiLikrgafxuSVQ5eQCRyLD+04vn3nX
cXMvYolWIL6QiREGHpsW
=zSis
-----END PGP SIGNATURE-----




|
|
|
|
|
|
|
|
|
|
|
|
|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVf3LAAoJEFAslq9JXcLZVWgQAJRR53COXyGIGTjnYLyzyZ81
dYJgaM0TIOGK6kPZ+QnJqVKZzrTK5v68JSBxOaIhP15GcBhBfk03Mfi12QjdnZ4N
NkZ7odh1X3glBbRoSHCqfyfma8Uz25fW2KVdggFCFyX5SK5A1JgWbFJO2CCcFqy5
po6BDC9kKXAPy6a9PEpPtITXnzo0eixYEQ2Y1p2fcWofKJaGtkNOtxEk5q4S9JLX
vV9oFTRnKYOdwil2Ik1LAgANrCYI/gDDckDOsQ92D86xfz6Hz/NHRFbI4zrxR5pm
PqtmRFq58IxJ/6e7AydJ0hEQHuRBA+AES/jkvsb4dIo/NLkiTth0mV/nQodBGIWK
oT62Ytz/V4mzXrmlwdquHb3mdu3SAkCi/kSEFBpUzg+oOTWPPJ2hNZ7cukhAsT0u
WIJZFFi5QgWE8FP+yNPX3RqqjLX2ub1kTacLi4cWl71eOYHC15eIMQFuSDdfYNT6
Oqz9h9sOhLXtZacQmUqYZdT9lXX6QWutfcbjzacIS6c6z0hzJGI7q4MGFsBIJw/c
jHlgizkCGIX71KtYCeODwpnHBEqy8DPUlRc6Js0xWruXna2f5W7jwVAkVQZTWSE0
8cIwQ6a2BQMc4/p3xBPOwvcCX/IPm8ugxgTsOrkfBtYw4hIFcEaHflFy5KAoGf6o
FpnkDrmayO97yAwGLY38
=Z5JN
-----END PGP SIGNATURE-----

Modified client/1.0/neutral/pkgr_upload.eagle from [06d64b587a] to [42f6088384].

33
34
35
36
37
38
39


















































40
41
42
43
44
45
46
  [file tail [info nameofexecutable]]\
  [file tail [info script]] \[apiKey\] \[name\] \[version\] \[language\]\
  \[fileName1\] ... \[fileNameN\]"

    exit 1
  }



















































  #
  # NOTE: This procedure returns a string value, formatted for use within a
  #       script block being processed by the [string map] command.  The
  #       value argument is the string value to format.  No return value is
  #       reserved to indicate an error.  This procedure may not raise any
  #       script errors.
  #







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
  [file tail [info nameofexecutable]]\
  [file tail [info script]] \[apiKey\] \[name\] \[version\] \[language\]\
  \[fileName1\] ... \[fileNameN\]"

    exit 1
  }

  #
  # NOTE: This procedure sets up the default values for all configuration
  #       parameters used by the package uploader client.  The script
  #       argument is the fully qualified path and file name for the script
  #       being evaluated.
  #
  proc setupUploadVars { script } {
    #
    # NOTE: What is the fully qualified path to the directory containing the
    #       checkout for the package client?
    #
    variable checkoutDirectory

    if {![info exists checkoutDirectory]} then {
      set checkoutDirectory [file dirname $script]
    }

    #
    # NOTE: The command to use when attempting to stage package files using
    #       Fossil.
    #
    variable fossilAddCommand; # DEFAULT fossil add {${fileName}}

    if {![info exists fossilAddCommand]} then {
      set fossilAddCommand {fossil add {${fileName}}}
    }

    #
    # NOTE: The command to use when attempting to commit package files using
    #       Fossil.
    #
    variable fossilCommitCommand; # DEFAULT fossil commit ...

    if {![info exists fossilCommitCommand]} then {
      set fossilCommitCommand {fossil commit -m {${comment}}\
          --branch {${branch}} --user anonymous --chdir \
          {${checkoutDirectory}} --no-prompt}
    }

    #
    # NOTE: The regular expression pattern used when attempting to verify
    #       that Fossil committed a set of files.
    #
    variable fossilCommitPattern; # DEFAULT: {^New_Version: ([0-9a-f]{40})$}

    if {![info exists fossilCommitPattern]} then {
      set fossilCommitPattern {^New_Version: ([0-9a-f]{40})$}
    }
  }

  #
  # NOTE: This procedure returns a string value, formatted for use within a
  #       script block being processed by the [string map] command.  The
  #       value argument is the string value to format.  No return value is
  #       reserved to indicate an error.  This procedure may not raise any
  #       script errors.
  #
55
56
57
58
59
60
61



62
63
64
65
66
67
68
69
      return $value
    } else {
      return $list
    }
  }

  #



  #
  #
  proc getContainingDirectory { fileNames } {
    set result ""
    set resultParts [list]

    foreach fileName $fileNames {
      set directory [file dirname $fileName]







>
>
>
|







105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
      return $value
    } else {
      return $list
    }
  }

  #
  # NOTE: This procedure processes a list of qualified file names and tries
  #       to determine their common containing directory, if any.  The
  #       fileNames argument is the list of (fully?) qualified file names to
  #       process.
  #
  proc getContainingDirectory { fileNames } {
    set result ""
    set resultParts [list]

    foreach fileName $fileNames {
      set directory [file dirname $fileName]
80
81
82
83
84
85
86
87



88
89
90
91
92
93
94
95
96

97
98
99
100
101
102

103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121












122

123
124
125
126
127
128
129
130
131
132
133
134
135
136
137












138
139
140



141
142
143
144
145
146
147
      }
    }

    return $result
  }

  #
  #



  #
  proc getScriptChunkForFileNames { fileNames maximumLevels } {
    set directory [getContainingDirectory $fileNames]
    set directoryParts [file split $directory]
    set fileNameIndex [expr {[llength $directoryParts] - 1}]

    if {$fileNameIndex < 0} then {
      error [appendArgs \
          "bad file name index"]

    }

    set relativeFileNames [list]

    foreach fileName $fileNames {
      set fileNameParts [lrange [file split $fileName] $fileNameIndex end]


      if {$maximumLevels > 0 && \
          [llength $fileNameParts] > $maximumLevels} then {
        error [appendArgs \
            "depth for file name \"" $fileName \
            "\" exceeds maximum (" $maximumLevels )]
      }

      set relativeFileName [eval file join $fileNameParts]

      if {[string length $relativeFileName] == 0 || \
          [file pathtype $relativeFileName] ne "relative"} then {
        error [appendArgs \
            "bad file name \"" $relativeFileName "\", not relative"]
      }

      lappend relativeFileNames $relativeFileName
    }













    set result ""


    foreach relativeFileName $relativeFileNames {
      if {[string length $result] > 0} then {
        append result \n
      }

      append result {  lappend fileNames [file join }
      append result [file split $relativeFileName]
      append result \]
    }

    return $result
  }

  #












  #
  #
  proc createRepositoryScript { language version platform fileNames options } {



    return [string trim [string map [list \r\n \n \
        %language% [formatStringMapValue $language] \
        %version% [formatStringMapValue $version] \
        %platform% [formatStringMapValue $platform] \
        %backslash% \\ %ns% ::PackageDownloader %fileNames% \
        [getScriptChunkForFileNames \
        $fileNames 2]] {







|
>
>
>

|






|
>





|
>



















>
>
>
>
>
>
>
>
>
>
>
>

>















>
>
>
>
>
>
>
>
>
>
>
>
|


>
>
>







133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
      }
    }

    return $result
  }

  #
  # NOTE: This procedure attempts to process a list of (fully?) qualified file
  #       names and return the corresponding list of relative file names.  The
  #       fileNames argument is the list of (fully?) qualified file names to
  #       process.  This procedure may raise script errors.
  #
  proc getRelativeFileNames { fileNames } {
    set directory [getContainingDirectory $fileNames]
    set directoryParts [file split $directory]
    set fileNameIndex [expr {[llength $directoryParts] - 1}]

    if {$fileNameIndex < 0} then {
      error [appendArgs \
          "invalid containing directory \"" $directory \
          "\": cannot go up one level"]
    }

    set relativeFileNames [list]

    foreach fileName $fileNames {
      set fileNameParts [lrange \
          [file split $fileName] $fileNameIndex end]

      if {$maximumLevels > 0 && \
          [llength $fileNameParts] > $maximumLevels} then {
        error [appendArgs \
            "depth for file name \"" $fileName \
            "\" exceeds maximum (" $maximumLevels )]
      }

      set relativeFileName [eval file join $fileNameParts]

      if {[string length $relativeFileName] == 0 || \
          [file pathtype $relativeFileName] ne "relative"} then {
        error [appendArgs \
            "bad file name \"" $relativeFileName "\", not relative"]
      }

      lappend relativeFileNames $relativeFileName
    }

    return $relativeFileNames
  }

  #
  # NOTE: This procedure attempts to create a script chunk that appends the
  #       specified list of file names to a list variable.  The fileNames
  #       argument is the list of (fully?) qualified file names to append to
  #       the list variable.  The maximumLevels argument is the maximum path
  #       depth allowed for all file names.  This procedure may raise script
  #       errors.
  #
  proc getScriptChunkForFileNames { fileNames maximumLevels } {
    set result ""
    set relativeFileNames [getRelativeFileNames $fileNames]

    foreach relativeFileName $relativeFileNames {
      if {[string length $result] > 0} then {
        append result \n
      }

      append result {  lappend fileNames [file join }
      append result [file split $relativeFileName]
      append result \]
    }

    return $result
  }

  #
  # NOTE: This procedure creates and returns a script block designed for use
  #       with the package repository server in order to download and provide
  #       a package consisting of a set of files.  The language argument must
  #       be the literal string "eagle" or the literal string "tcl".  The
  #       version argument must be one of the literal strings "8.4", "8.5",
  #       or "8.6" when the language is "tcl" -OR- the literal string "1.0"
  #       when the language is "eagle".  The platform argument must be an
  #       empty string -OR- one of the literal strings "neutral", "win32-arm",
  #       "win32-x86", "win64-arm64", "win64-ia64", or "win64-x64".  The
  #       fileNames argument is the list of (fully?) qualified file names to
  #       be downloaded when the associated package is being provided.  The
  #       options argument is reserved for future use, it should be an empty
  #       list.
  #
  proc createRepositoryScript { language version platform fileNames options } {
    ::PackageDownloader::verifyLanguageAndVersion $language $version isClient
    ::PackageDownloader::verifyPlatform $platform platform

    return [string trim [string map [list \r\n \n \
        %language% [formatStringMapValue $language] \
        %version% [formatStringMapValue $version] \
        %platform% [formatStringMapValue $platform] \
        %backslash% \\ %ns% ::PackageDownloader %fileNames% \
        [getScriptChunkForFileNames \
        $fileNames 2]] {
158
159
160
161
162
163
164
























































































165
166
167
168
169
170
171
      -persistent false -usePgp true -useAutoPath true]

  %ns%::downloadFiles %language% %version% %platform% $fileNames $options
  %ns%::logoutAndResetCookie
}]
    }]]
  }

























































































  #
  # NOTE: Figure out the fully qualified path to the current script file.
  #       If necessary, add it to the auto-path for the interpreter.  The
  #       necessary supporting packages (i.e. the Package Repository and
  #       other support packages) that are assumed to exist in the same
  #       directory as the current script file.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
      -persistent false -usePgp true -useAutoPath true]

  %ns%::downloadFiles %language% %version% %platform% $fileNames $options
  %ns%::logoutAndResetCookie
}]
    }]]
  }

  #
  # NOTE: This procedure attempts to stage the specified package files using
  #       Fossil.  The fileNames argument is a list of (fully?) qualified
  #       local file names to stage.
  #
  proc stagePackageFiles { language version platform fileNames } {
    variable checkoutDirectory
    variable fossilAddCommand

    set relativeFileNames [getRelativeFileNames $fileNames]
    set savedPwd [pwd]; cd $checkoutDirectory

    foreach fileName $fileNames relativeFileName $relativeFileNames {
      file mkdir [file join \
          $language $version $platform [file dirname $relativeFileName]]

      file copy $fileName $relativeFileName
      set fileName $relativeFileName

      if {[isEagle]} then {
        set fileName [::PackageRepository::formatExecArgument $fileName]

        if {[catch {
          eval exec -success Success [subst $fossilAddCommand]
        } error]} then {
          cd $savedPwd

          error [appendArgs \
              "failed to stage file \"" $fileName "\": " $error]
        }
      } else {
        if {[catch {
          eval exec [subst $fossilAddCommand]
        } error]} then {
          cd $savedPwd

          error [appendArgs \
              "failed to stage file \"" $fileName "\": " $error]
        }
      }
    }

    cd $savedPwd
  }

  #
  # NOTE: This procedure attempts to commit the staged package files to the
  #       remote package file repository using Fossil.  The varName argument
  #       is the name of a scalar variable in the context of the immediate
  #       caller that will receive the resulting Fossil check-in identifier.
  #
  proc commitPackageFiles { varName } {
    variable checkoutDirectory
    variable fossilCommitCommand
    variable fossilCommitPattern

    set branch ""; # TODO: Figure out a good branch.
    set comment ""; # TODO: Figure out a good comment.

    if {[isEagle]} then {
      if {[catch {
        eval exec -nocarriagereturns -stdout output -stderr error \
            [subst $fossilCommitCommand]
      } result] == 0} then {
        set result [appendArgs $output $error]
      } else {
        return false
      }
    } else {
      if {[catch {
        eval exec [subst $fossilCommitCommand]
      } result]} then {
        return false
      }
    }

    if {[string length $varName] > 0} then {
      upvar 1 $varName checkin
    }

    if {![info exists result] || \
        ![regexp -line -- $fossilCommitPattern $result dummy checkin]} then {
      return false
    }

    return true
  }

  #
  # NOTE: Figure out the fully qualified path to the current script file.
  #       If necessary, add it to the auto-path for the interpreter.  The
  #       necessary supporting packages (i.e. the Package Repository and
  #       other support packages) that are assumed to exist in the same
  #       directory as the current script file.
189
190
191
192
193
194
195

196
197
198

























199
200
201
202
203
204
205
  #       package.
  #
  namespace eval ::PackageRepository {
    variable verboseUriDownload true
  }

  #

  # NOTE: Load the Package Repository Client package now.
  #
  package require Eagle.Package.Repository


























  #
  # NOTE: Verify that the number of command line arguments meets the basic
  #       requirements of this tool.
  #
  if {[info exists ::argv] && [llength $::argv] >= 5} then {
    #







>
|

|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
  #       package.
  #
  namespace eval ::PackageRepository {
    variable verboseUriDownload true
  }

  #
  # NOTE: This package requires both the package repository and downloader
  #       client packages.
  #
  package require Eagle.Package.Downloader

  #
  # NOTE: This package requires that support for namespaces, which is an
  #       optional feature of Eagle, must be enabled.
  #
  if {[isEagle] && ![namespace enable]} then {
    error "namespaces must be enabled for this package"
  }

  #
  # NOTE: Attempt to read optional settings file now.  This may override
  #       one or more of the variable setup in the next step.
  #
  ::PackageRepository::maybeReadSettingsFile [info script]

  #
  # NOTE: Setup the variables, within this namespace, used by this script.
  #
  setupUploadVars [info script]

  #
  # NOTE: Provide the package to the interpreter.
  #
  package provide Eagle.Package.Uploader \
    [expr {[isEagle] ? [info engine PatchLevel] : "1.0"}]

  #
  # NOTE: Verify that the number of command line arguments meets the basic
  #       requirements of this tool.
  #
  if {[info exists ::argv] && [llength $::argv] >= 5} then {
    #

Modified client/1.0/neutral/pkgr_upload.eagle.asc from [60f01e4cc7] to [f35eaacddd].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVM2HAAoJEFAslq9JXcLZqDQP/0EuHa77yyYqMTY5LnOfFZ0t
vDquGO1Qk4vOw3m3lQKejssZqQLS46qe0+xfdDg81/vIU5w81Z1FI8V51m5EgHd4
g9O9GOGgLR/ZRaEkEY12nzvyk4kBYQ6OmQshVVD0cSb+72SNh5Olry8DnoG8bRn0
LGB43ir2+6Mhu02o7WGdI7HlST51/WHMkIkvpbRqxFa8W2E0YahngZJA0icTnpHN
ZY+iosWtPk9gigW0GWAjJLQBbwVYjnfd0hX5W5AcQ6ZU/6m1vBNGJTMk8+cuFnPr
TvzohUMJdO38ITtFr/s/pIq7ELyP25ayTMDdWKARKHKRoLQAXuWvwmXNXrF71VSE
fBPQrY47AGE4PBpG+yVqlv1hqDu+sPhRzNl2XcXTRVOZ1mRhQnfc2ebQkSKETU+O
vzspwLmFrOJ8gsYTidSgw8WCXaywjssISNtSm0AcklwjgOeO2e6Vc1erY1h9HctS
kTB63CuH5V4OuxBUkjFXqmhBuqYUZG+W6Soha99hIw9Jj8j12yfOF97N7ldm7XVO
NoQweZJXYrV4At9ZiXXhMsZ8RgolQtms29kFXeZ879rq4P8QlCmIN+NDJZHbI2k8
TyVayOg1Q8LcLIi51o/kQ7ldzSd/xZf6kJzPZdUDpKqJBZHUH0aF8C1f/VhebacI
c+gJibewxrSrqMjIE6B+
=MPwB
-----END PGP SIGNATURE-----




|
|
|
|
|
|
|
|
|
|
|
|
|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVf3PAAoJEFAslq9JXcLZG3oP/3S/KjjVQUDoCWCQV3DlFtGH
0hz0IkBJy87MCbxE3VPW7Kojqx2qRbma3a5yUvaBGm4J9r3t5+z6J9Nx0CJJrYqi
Db3dMiRKv6RiPVjA1vcL7uozJOT5mOuLTTZfc4r/YafEN2izbNidUqQGI4qzx4Tt
dD2hy84jbShUNkpM3AmvIJXIYoR99VWqPgyzpaF8LiYGA1hLH2Y5rvbfrLr6SnLd
RZOvdBVrrrSNYKRRVwsXrxvOVM1a5OxSnz31nV50zL/Rm7ujxk4r3I+oPhRTOKnH
ad9cjry9OBexu9aLtUm4r4pujbuRIP7Dy/MDc8ySoFEpVrPQ2SD1t4rTdHOFFr2Q
TQYdGq9tMNfsNwbTbPOpvz0tuQ/eUA6PO/ccjQj7rsdOCIaHSyh9z6MdxCIXSfTi
99QIICXaz+cdLZCe/ojB7VU0/qAQRYBIthrmd2cdfxdsqPdk0Q+vtaO5BMLddGzQ
ujYBeN89hovslDH4hriYY6O5ChWr0QNBLBR00AlBr5iL7UI/MZTjEoK9qsNfdv1d
XqhjewMBL51WlJRtW7YBPYfPWDqA4gjApxzB/Xk2vSYx0CeRkLSE7F7I6F9LO+I8
E2lPOw56MsPMENmpeIkrUf0hZ/NXyMzha6Y2vi2dOBolEBIcGYQ4Qbp0oXuD1B/x
8cpf4Xvs0Dj34ZfnbL9r
=ARcM
-----END PGP SIGNATURE-----

Modified client/1.0/neutral/pkgr_upload.eagle.harpy from [1d2925f0b5] to [4ce0ba16dd].

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>410ca3b4-8e95-44e4-a931-03b0cc7e1281</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-12-17T05:30:22.5644531Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x9559f6017247e3e2</Key>
  <Signature>
    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
  </Signature>
</Certificate>







|


|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>3783ac1d-7987-47b1-8d9a-de7990ae10d3</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2016-12-18T03:08:32.8886718Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x9559f6017247e3e2</Key>
  <Signature>
    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
  </Signature>
</Certificate>

Modified client/1.0/neutral/pkgr_upload.eagle.harpy.asc from [f19af08e58] to [6121a4c8b4].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVM2KAAoJEFAslq9JXcLZiNsQAJqKASG3YGn6w7BJRAonKw0y
jmxVC9wCeFwarD46I0E93XQmNNA6mkonRwT5CvDuUd4G+sH7i5fyM2BIVy0XFO26
OutiouvupFBiQU2ObsZbGYKrsfN/EpA2/axWAldg4WYDH7dC+3pNd95yp61dDfBg
bJ6sidNHnUokLzJQ5PaFSYrgaf9/toEZZfOeCmF+4r0frIf4anERuwA4R+RmeeX4
3ZZbnbb2GwNortF/DEy5DyRO/sz7eyBIBACdp/IacSvHy0UIFD8vIIA71DFrYiMg
pmf0JyFjwXFF98VLwmatpb3OvtuwEoN+0vaCZ/BRAY4FpTykDUuvKGAYn26k0lVU
xaKtt9jDBii1VnO3ZgoBjnAYu4dfd35F+EOi7P5uT6SsPS+GjfbZrQrimyDO++Cd
8rGGw3FEKFVaV40mrT1dlIdpo64fsQmLTwYc+SM/fiQbtbKZb9y+Rqo0UO9cuWCP
l+dZyw8vRRelRxpsZNYuImLk27HRrBr38JelANfFuO7Lm4WiC6DdzEiL3Sf9BtEN
xkapDjBz7VhUJ97m0KoC+ODemckv3tlZD+9deowRdYmdjGKtn8GqbNhNfoF0vUGN
g4zj+UvQ1NblfPLVBEF4WcZFiHqAuRTw/WDBraZXhwbMi51JjVWfOo2WK13tODl8
KGic5Aea3InSHNGZU4rj
=MPMG
-----END PGP SIGNATURE-----




|
|
|
|
|
|
|
|
|
|
|
|
|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJYVf3RAAoJEFAslq9JXcLZNRwP/19dwigW9orEHvIOxyWKnIJF
Ey3tpStxC7ZmV2A0vQ2wS8ID55mljlnswaybEJcFJl6zeyTgvJFY48WK7Xk+OXyN
U/5wiHmVbB76RRL6bl1O0GzRlr+0UjSNnNk2v68Bio+GzD1E2Q/IeAPFdQHfRSJ8
KtB1/LI4SxFbmyvvrVOMuqFuQqR34xAaBrX1kWSlN5DE6QmN8IoU1VXH58ZiThAR
uApHhvnAN/kZK5wOBn9dZaJEB9zxW2+0kg5lkezcpWb1RUVXs2XDw/2MA31XNhl0
krfNyGXJ392byfIBQmTUgDvmRbShqg6igDiapKzdROnR6N6Ru/fkQ2KmZVx1ybET
Awl6SYBsnp9N808GFQGqtijcv+tn4hZA3bqMGMx+au0ri6lkQqXWnZOp/vREYkqJ
0oB4iP35cVOVrdsY7DEwJmCzD2As9trUcwCETX8HYQw7XT5jKsGGkk8UrqPoiv4G
6t/dpoTqwqYnKOPUObmD0o/hU27CxnDCxMYs4T+IRVUu+xAMkZ2ibrW4pPw7cGiv
FARTEU+WDVz34CFGiFm67toamUiFnSiJmWrgHTMNfyhqm0Z98qkpObDRtj55i+w5
5yu+l4FAGPHPJHQGqTGufAG76mWMLlJFMjHSsuYBdkV6SDPoDLQdiDzYV5t89j8n
ufVKNYd18OAITM1YVIjF
=A96A
-----END PGP SIGNATURE-----