Index: client/1.0/neutral/pkgr_upload.eagle ================================================================== --- client/1.0/neutral/pkgr_upload.eagle +++ client/1.0/neutral/pkgr_upload.eagle @@ -34,10 +34,83 @@ [file tail [info script]] \[apiKey\] \[name\] \[version\] \[language\]\ \[fileName1\] ... \[fileNameN\]" exit 1 } + + proc getOuterDirectory { fileNames } { + set result "" + set resultParts [list] + + foreach fileName $fileNames { + set directory [file dirname $fileName] + set directoryParts [file split $directory] + + if {[llength $resultParts] == 0 || \ + [llength $directoryParts] < [llength $resultParts]} then { + set result $directory + set resultParts $directoryParts + } elseif {[llength $directoryParts] == [llength $resultParts]} then { + set result [file dirname $directory] + set resultParts [file split $result] + } + } + + return $result + } + + # + # + # + proc getScriptChunkForFileNames { fileNames } { + set relativeFileNames [list] + + foreach fileName $fileNames { + + } + + 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% $language %version% $version %platform% $platform \ + %fileNames% [getScriptChunkForFileNames $fileNames]] { +apply [list [list] { + package require Eagle.Package.Downloader + + ::PackageDownloader::resetCookieAndLoginSimple + + set fileNames [list] + +%fileNames% + + set options [list \ + -persistent false -usePgp true -useAutoPath true] + + ::PackageDownloader::downloadFiles %language% %version% %platform% $fileNames $options + ::PackageDownloader::logoutAndResetCookie +}] + }]] + + return "" + } # # 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