Index: client/1.0/neutral/pkgr.eagle ================================================================== --- client/1.0/neutral/pkgr.eagle +++ client/1.0/neutral/pkgr.eagle @@ -611,10 +611,36 @@ } else { error "cannot sign with OpenPGP: passphrase file is not configured" } } + # + # NOTE: This procedure returns a list of the same size as the list argument + # value. Each element will have one pair of surrounding double quote + # characters removed -IF- they are the first and last non-whitespace + # character of that element. A script error should not be raised by + # this procedure. + # + proc dequoteList { list } { + set result [list] + + foreach element $list { + set trimElement [string trim $element] + set trimLength [string length $trimElement] + + if {$trimLength >= 2 && \ + [string index $trimElement 0] eq "\"" && \ + [string index $trimElement end] eq "\""} then { + lappend result [string range $trimElement 1 end-1] + } else { + lappend result $element; # verbatim + } + } + + return $result + } + # # NOTE: This procedure attempts to create a Harpy (script) certificate for # the specified (named) file. Non-zero is only returned if the Harpy # (script) certificate is created successfully. A script error should # not be raised by this procedure. The fileName argument must be the @@ -622,46 +648,70 @@ # procedure assumes that the Harpy package for Eagle is installed and # ready for use (i.e. it can find a valid license certificate). # # proc createHarpyCertificate { fileName } { + global env variable harpySignCommand variable pkgr_harpy_path set toolFileName \ [file nativename [file join $pkgr_harpy_path sign.eagle]] set scriptFileName [file nativename $fileName] - set vendor "Mistachkin Systems"; # NOTE: System default. + + if {[info exists env(PKGR_VENDOR)]} then { + set vendor $env(PKGR_VENDOR); # NOTE: Configured default. + } else { + set vendor "Mistachkin Systems"; # NOTE: System default. + } if {[isEagle]} then { - set shellFileName [formatExecArgument [info nameofexecutable]] + set runtimeCommandLine [getRuntimeCommandLine [getShellExecutableName]] set toolFileName [formatExecArgument $toolFileName] set scriptFileName [formatExecArgument $scriptFileName] set vendor [formatExecArgument $vendor] - if {[catch { + if {[set code [catch { eval exec -success Success [subst $harpySignCommand] - }] == 0} then { + } error]] == 0} then { return true + } else { + pkgLog [appendArgs \ + "Harpy certificate was not created (from Eagle): " \ + [formatResult $code $error]] } } else { # # HACK: Make sure that Eagle is loaded into this process so that we # can figure out the shell for it and then [exec] out to that # shell. # makeEagleReady - set shellFileName [eagle { - file join [file dirname [lindex [info assembly] end]] EagleShell.exe - }] + set runtimeCommandLine [dequoteList [eagle { + apply [list [list] { + set directory [file dirname [lindex [info assembly] end]] - if {[catch { + foreach fileNameOnly [list EagleShell.dll EagleShell.exe] { + set fileName [file join $directory $fileNameOnly] + + if {[file exists $fileName]} then { + return [getRuntimeCommandLine $fileName] + } + } + }] + }]] + + if {[set code [catch { eval exec [subst $harpySignCommand] 2>@1 - } result] == 0} then { + } error]] == 0} then { return true + } else { + pkgLog [appendArgs \ + "Harpy certificate was not created (from Tcl): " \ + [formatResult $code $error]] } } return false } @@ -2543,11 +2593,11 @@ variable harpySignCommand; # DEFAULT: {${shellFileName}} -file ... if {$force || ![info exists harpySignCommand]} then { set harpySignCommand "" - append harpySignCommand {{${shellFileName}}} + append harpySignCommand {${runtimeCommandLine}} append harpySignCommand { -noArgumentsFileName -file {${toolFileName}}} append harpySignCommand { {${scriptFileName}} {${vendor}}} } # Index: client/1.0/neutral/pkgr.eagle.asc ================================================================== --- client/1.0/neutral/pkgr.eagle.asc +++ client/1.0/neutral/pkgr.eagle.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJl9TFyAAoJEFAslq9JXcLZVPYP/2/dW46A4L2joxJnvTp+wesp -79SsSYn1feYDuY4yBMVWmzxTFRtaMpg2Ml6pZx48DIEg57GmwyMRO1yg3t4Qk1VV -cF3x6vDzUprmPoME+7lSc8tN7wMxXXB2FyV4X2JoSrgQ4BxSFlexcohRMlL1fYmw -fnW2Fj+rMm4nKi/vw7eiz56zv3/fogtYz/7jbHz9Z/WKQFxkk95EWDyj4n/p+RiY -xnoPRLwZk/WVJXXEtFob24Xt4cDSC3iGBTepJCqdGxe1FLCOZD9D3W0mFp2p9RB7 -+OXlg6o8AtF4i1NMnJpZkigODOd8Nm8RyiEWXqJgv1ReKLlKsNcOB7TYJNekWTZq -zOUrKfqDx9yEdU20ou+4tQ8EF4noMI1LWUvHhRuZHxXqffu6An1MR+uBLfR90NV9 -Eyas55Xi7xbikpbJwUSI8e9FZ01JItcnrJDBSHX4zfNSsJ4odct9edf7tU9IrnGV -//HdGFz/cMY76ogMWS7vPL9QXGqFKyvV4vEvzQcAS0Ar9iOwW+qppnfGXW1CTNF4 -x/yBsudtnCHTufxWNS9CQU1P6ys2HuetyQn7j/McMmseSRhicie82w/jol6n16IC -6FIiCZH2Tj4PVdXIrsA4yLkdD6+T/9KN6/y4jyOAAZRo3TzsWREQieME6Pl3jLoX -OB+/X/yZl+F602z5+wRO -=/En+ +iQIcBAABCAAGBQJmAQREAAoJEFAslq9JXcLZ21gQAMg4pE0BY+HPRV6RQnm1KNMe +8PfXbdMZ2nDWyQoV6ltpjRlfkaX+PzYf0UERWLhMCcJfAw9mHx0m+nc9j6KImPdM +qph8X+zQSASuh9xgtJyoTK14Jdbc+l/07TzoqoT19LWfrehoPAO9IOh5So23skic +P4cklzQbkvnEN9BG+b+7HwvOc64oO63YRFp/LhwofE4PC+jo/IeOQ4OcY9uDboDR +qJ1WBno8bfOcLkBQDMUKcU0gxI/sQ3Z8aByMex2JGq4IulydeqRoylBOe+Q4kIx+ +5SHomww/FQdMNNujvfcYDCwfLDpdCzLNylWrUF8HhTj78CBGJjOJBRoxECda9uP2 +YDPTawzA95/1ZdVrmgwPxuS5JyI3KtRQtTZKu3kCABAnbYcOLblmdhGAC5GYkeTi +SbmlMoOQszOGcCzEyP8g1HQnPYN17pVCBhIvvvZPU/TO/CYdvJ+axtbDsq78xXlE +Bk995sAteI0Mdwmea1yxzMv3j3s0QI3AgiDk0lFr7HeHqWS+UqVxRgbQVx5EPXG8 +U55+lle9zPL1e1/uljYqX1SBsoyg2P39MKyEFsWOwjsNyP3d+k+ZhYq6+zZ1gZ0F +4ir5YWPFCLmwzLNBGCh+KOGthpjRS7tlLDZ8jCltrfSbHp5Q0HMXbddkdtya1IK5 +YWYJ2twFUkXcwN0y9wUk +=mGbr -----END PGP SIGNATURE----- Index: client/1.0/neutral/pkgr.eagle.harpy ================================================================== --- client/1.0/neutral/pkgr.eagle.harpy +++ client/1.0/neutral/pkgr.eagle.harpy @@ -19,50 +19,50 @@ None Mistachkin Systems - 4b6821d9-cf0a-4066-aaf8-5363ea51a1d0 + b34fb1e0-a464-4ed9-8936-233a8cb90ff1 SHA512 Script - 2024-03-16T05:42:38.1576691Z + 2024-03-25T04:56:47.9177074Z -1.00:00:00 0x9559f6017247e3e2 - a59LbfyYD8u4ZXdREb0VX4wbZ/6Zcd7TZm4R2LTJc9L7oQ/jghdfqtE0qsf9VAQZh8hOcDln0bb4 - 31VjKwEiCfs03G7ZBwraO+ozKdXKTrjZazemmjywGdAHJztchdDY/bAWm/DZNeUN6YoQiuya9WjD - Zs6tF8qsG0IYBewzmriQtY33kcjLr1VN6VtAvFv8GDKoCotAzCHZTNdQJDW2hleYgCKlka/6iXPO - 3BGqNo3zMGmxy6JnTsMCfYY3iCPhoXNqjpQ5s7wci/bsV+egSx8eujKH+QRsvK8ZS5qOyCxFVNz1 - 8P1DFtrfsmwfy4ngJJsU410WaE+QUNqcIz/q8WQBm00bY4tBpaBklhkRw+sKAKTJSTefzQk3Ldg9 - 0WVztefqqdwwHlVy+ItWt6b9ebxcuCJMgn+BWY9O34FJJIT2zu+cCE1xsdsuU2G1+6geAMUpmfl7 - Mu4M0/+B242fCNHo1bWkBcr+7EciObV2Z4XNmqEAjH2gtl2cq4sujGu+AV5iihwa0W6wFxX7vviE - dViFy6toMSpxFpnRboiAcimcLP9ju6Z5Hg+uudwXTIJcMZ3eEjhx46OTIWDHn3uyWT1mXVspTmW6 - akw/GwZ4KMFMKE/4S86VD6WSI25adQ2CUbs7b+cB141zAOQ1Vp4BzJPlUGB/JvQNqHRxzdBBfB1s - ud36EUeLgG4AKW0VSBMDrDgDA4zuhHV+uZMu89yWqkJu6FH6P6LtK2NbuWCrkBft2BO3lLoU0oiX - HCRvv0n+gxiqPJWKQoPXZexR+bDLCnbFBG2A+o1nzaiyzVZ/G43pXWYiKWUoQO5lP+HxluCgUXPQ - k7kV/NGzf9xcDL974IWj/2CFI6Q7qBg+chg7268yThvOJhIoA33TuWnzc+dtxLgxRCSpQKUgGcR9 - N3tmyPVC92wmr2P56f/qWE6f8oc/VAxrO2bi14tvQ5CWinarQPKeVtbb7BCeToqBa9xaWmpLXivo - GODR7PgvnYqmdUoh+79oYMnzbdMD4zj2QkbomuW+VYSCBbYf+ktp9uFLTZn2YT1vX0wb+J8pIzMC - y1NvPsWkbUrd9FBN/61WwcoeZu31R4j9VLBS8fdkyKXrDYCDCptiYrCcZYnc4ZhT6ZhEaO5jVPBi - I2HtBVXAzZR0dfR8hYeJo0QVLl7SCrCvMaA4DycYApuBnpHWmdOder7YyMCV5OD4frh9gX36VglK - Dw+Cs8XBPfVYH1x8zBqGQf6YyjNZP/ZT36VMRkLs32RW+GIgg0JrE86FF2GyTLVgPQbjI9D09G/T - Y7Y/f2EE0Pm0wpoimxw3wXyIQq5BxDmB4gRsrXWMZcQE1QtISU983SkwYBpSuBQbqF/nPpeWWDxh - vKxffeYBFH3wXPL0AXtkwZUdQI3DYSDvOwzfeg/c/h1lYzWqL5/TacmPrs6akyuolstmFZBhvHCI - dFwPqsgINj2XC6JSyQ7fO785859kGbdxlEHPrhZmvZHWr7h8VuBMR3uamKaZ5iyJy+sGDLMtWxJf - z4j13WulfMcDwkRzySn1NETWWmsf69vNkA8Y4b+3Mje1vLDNUVupb7F7och82jDvo9cuwrUW0jUe - Ga1yukX8acJ9qqbdHeB6gnznGtOu0DfKJ+XYZStxGdmwT+7SBSKxZWZnBTyd8L5nWHjZfHG5icXc - lwoYzZexGomB7+Z7BxgeEUigk0SfEkcxnx8FMlovKkCgEosmbWzh0xYgvfK4f907/Zs++wz3BWmq - lQUuNlXOTCjqz0XLiWh7Wk1tm6sfOcqj89sXyZH/rj1TtOhy0ABtC+f0df+BWQvZ7PRRJ0NFI4I0 - PNejnmdiVVXgjQja8HNddNejVs2DObEI6LgdesWcn7N+pAEA207Ykp+ygywgWs7IKp/Wt5AVBQVC - tpfjSf2fKTF9EA+yRN60EolOANmdXGwQltKu1LRrNVAkKHD6PxkD8Zq4ETCegMQdWaS01wwzvd6V - OSX5zzg/u1inR+7bb7prmiQ7+VYsItnA9uCyWhA3+fJUZqirB7HkfbBbkJvhFhebrJMJATpp69oe - 5z+vDGGhemniKIYido6vB/A90xpRHxfaUDfxFsppzxHQNBLY5vafzmj+g9Vvn5AS3C8kVXtRBola - 9hCh1QQSspjuycwVtFpPy0YrwqOkGOKuThAtxsdmUe4WPExFKlwnifSUC5zFqN9+YZPV39mAKp/c - cMXV3hneASyNHG8O/aDxwhgUTR8eb02Ooqo2B9STGLWRXf2WV+6hL3t9ATLgegyn7O/olBVAq7a9 - CsdL8fcMeQcVSWg55feMRIFo90XAdJwE8EdiY27X/TrKqLvnMA6dp7RtWwH+w2WNBi90W5Rk7ANo - 5KNPeqQ00BtNZSW68/nhz2fD1AmQYIzB6swozz2NqG3HjjNV143wzxLfSLdvYOXHVed/WKgB5hQF - WeLxpzObRTZGNlnf/vvuSdWEL291fvAfde1uglihxrE0y6NTDSxzDKKKVn9q44fd59HMUVu6n4LA - MszVRNEq3fBxnSDm8NJtMro4Lw5wmiIBaX2XUMwhV3iKrKuwZVF0yPtkG9Y+cJH3RmgLn/8n3SOz - Mks6K0qYVrj6OhHDw1uAvHLVIuOhLXejoAirtB/mbofrYQUvJP0nSEDX7gmIUH0YYy/NrQFShTo1 - gNmAr1c0cZktl+YmrdilApVCqFrxShIY7Vob9OJTf6ZKlpoaYMR3nFPknPj75TypiO4zeWo= + JdPG1kYIYwLdNgsPwVVgySj7SVPCq8mHId1NG4x7hpH8YyLDGS7UReJvUD75ZMCfJe5SV0KUOSS7 + zUecASHeSwo1JpB3TaXE+IR87hlhZteF1TCCLK8Pu1xk1ZHz4wNlTE5W/K/TbcwShC3xdNLmZ/38 + 9mr2+0g22HjlXYaFvkJUAaXQu3DF78OErkmPUEBDarZusR7aYCAH3zHxx7S2BdhgykvEWg/m8Psh + AyV4hA+N4OoNfO/FOS1oDU5AR6vbb6bZL6b8JdpBsvLttGfoqxPgBR1pwNjcZhu1XHpnUtaK2SUb + xhlJvkhyk9uCMH3AnCbOerGyRSvwZyNXigdLo6QWv4fVoSGMq1ciBeDCviGDuPnBQbl3z5JanmvE + MqS6/TLkJRz8cPUMSQWLbzQqMXAydBCWXzA2Fi6AORNu/el+rOfqwkgLW6P60GgUCdwh5KitzD6f + /PaLBuhBK1/QbOZwou8XO6YG2VIsNPSi6lTcnpIHPT5EiIg6i0EAbSPHQu0Le1hN92vadkW7I2W7 + AO9G6KXrvLmKxYOdESMpB7+sDdcTU25aR4ffkiL6kmM3PT0OX976t5KcL1/yfTSLwgkLbbF3cRoC + wQ6Bdkr3hkidBOU4BQiIC7u57jJ1OMOx1opSVdDwUAvfdw+j4Vz6W2ORYiDumdrU+mlJ3CIG1IEb + Bei6NdL2w8fEMjL7M8L6vIEZBkK28oWrT3cG8MY/2gZkvvOmVWTpsrM4HWxW8iMwjiivr4W5fP4Q + 9h81cTobgB33gFVK0UrK4zt5VVKYw1asMfoNZTi3YVB7gz2+UrrtQPNuvX8kGOnbFViWOnj+5Al9 + cvjHDBJQ7daBqvsnOEVE+kJLbCfYizgp6pPxvriBFvOg5Qbr/ihc+xGR9Hvk7cnMgN6Cs4b1iJrS + 97MTv6szRAfdVRXu478hZbQW4FSNtnxbQC7axBBb7eqInmVVTFPp3SGwfr5RXG4DWZluSjRnaNBO + I8f4WTth2o4FsXrb2/NNOcEWwzqtSfWBOe2Yp9OKqUfsvvZekJUMrCkkl7mF2Wey6xWkPdj/4uwu + BXxp1HaFz7lz5tYeg8p+2/AOvfpP5UXJ76VxE5I9uA7C9TjzTSyZpuBsLf3j/y2NKO2z9a/hAIxf + VXWOD4/VvKxvuHN/+1OXGPSBlFNwaCNfiq+O65IwsXo6x5jri2jafWgNpazER3PPE04wWuP8bR6n + D1BUT+nHvFG/F/P7u7l4JBSOVvAsFBsuyowsEbFSalCGCY0bvPop2MkNIX4guTgJPIjuPx4UpLef + INBA3XLJddvYj8zbOblVIZCpxKtCTyy5plGbDxLVGlvr7I70MCB4NJA5wcx2Dagr1yG3TD90ueay + opr8i7E6BXPKx8mAzTZEutb/oMp7fn+m//wNkINqU7QE7Pfz1IsqIV4AGYUxpv6Tk0cBW0aCf0wy + TAqkxEoT5zY5NYt2Id4PE5JU7P9MiiBuS5jqPbjaLp7AB5jZyD2Zi34DHxS8JvDMThWyxunJuN7X + 8Xc6qacwtK0/eLxg6WtteniqpHwbR21nM9KN8wDg+0IZOR4v+dF7Ft3OqMZEOPz47pNV1EHV3CIK + cJptf4OPH2RtMiI2xZHKkvs9T4S9gUyfqK5rp3+AmkwyrIMaua410vOTAHJg/UKuI/B94lzO0Dk1 + VjpFR2hbFaLM61BGKU4t17shdlGzY7hfKCDm0IbvlY5htiGqoKx7eDKQkIPGB1PzqTEyEffFxoz9 + krM6tQNwc9QY46nL9+eEFejd4RyqT3rP4An27Yf5Hw9lLh592EpCmfXUIrEcza3sBVyh6QE6KX9/ + HNoGoChooCQpCSQuhs1CwTRQ46jaV1fVoc7tBjCefMjIWborg4yiZFLXCnK+yp9TeQCZTARhG69s + QblAt8oIDKP8gdQ9ycy+IrtQsqecfq4yo+3WEhrKVPwbGLD0XKiYk58Q99zRl2yYhYDEViX4iNdU + AVwu6LvBllpHBKPX43s1uzbdu0hfohJI8JM/+eTgFg9dxnP152tRLtMDK+SQ3SbZeAGy4THmnlhy + X/UrqEUIRbesihQkYCky3MUVHztrSSaHUFsgYz6y5VH0Ff+7HZxR8tWBqYpgbi8GtWEBXUpw9ZId + UTJsYuf1p9tbgC2cbYMEksEdqypUWA0gUauxPXpVf+50AomL/qL7OZ6v5q85mwbJpzAU3XeWPfcz + 0v22FA+vNHUNsLytJoV3wccAj2fGms2M+/0UtbSubIZ1fRNHjbAOiUeFZwCrgRAeGNSZr1mumfSn + bqhz4tIRu8g4FXYJ4Z60bqZZvXNCesLHh0I0QjnIZiyEZyrO/zTndDcmqTtuzQSyK/IhBso1yDh3 + /gF1d1xZ09t3E51J7kmDrKD9q0ggr/mzQr27VbFS2uLN+39IJUQS0lBNaJdKKlduNHXDdPkvChcS + edHx7/EIZhjerXSBOmi8DzOv8+zpWXpMFQsKMcpvvEd7M/XhyF9U3PSnC+E9ydagwqC0bN7cA5iR + cwqhEfPJwMZlGFbUSWJjZHNbg2f6wRtsodlI+Ylub5vzjGZrfjURpN9SgNAIoejKxZephEnEVSwK + h8sJ2EJA7ao5+bZ3TclO9opBSFUgEFDq8t25X2wBkrpfOWZ/+MD9w5yOMLDfvf5sUpDz1eg3aEhS + H5zF2SwBMszetgiUHRWjQ4W/kUGpMZuLHmhl6NLwAI5JivXapZMMjyNshG7uLGzh51EciO8= Index: client/1.0/neutral/pkgr.eagle.harpy.asc ================================================================== --- client/1.0/neutral/pkgr.eagle.harpy.asc +++ client/1.0/neutral/pkgr.eagle.harpy.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJl9TF0AAoJEFAslq9JXcLZsqEQALJbPdj6rtvUTVn/+pxEAE09 -9WL1vvKqAoGY9Ss4mR6t9CE7SH+XggqdzaNtvI1SQ4/Ewb4SWH09QHCmrhMmaJ9Q -1Qagv9ISJD0BuOba2k6+/7YpfhK7LgsEbvR6P5nSHYn0sDMiVuRshgA8xDCpBFvP -uYW75oiCnVTk0Ac3CV0k7WmedHkWldXEj6WY8pYSmXWnRlh0DtJZrRUjKzFELQXf -od+ghvgQZMziy/2Ux7msMK15VecJJGr2hwksPMhOJ9hRxwNHkEnvbZV2ZsWMDD4o -plvsLV6tVUDrwp0+mnGEuDXcKZfK5uuxcPxWCwk7fX/BCJLUWACETd6KJKfN8mdt -uehwlC0SIJQtGtVU7lKB8jd+6czLPzBNj67GkiADUaEjgvQPl2dF2xP33VhiM3tu -sXbn628j+9MkMM0h9RmLahWOzxs8ltRLHCMrG0l/qzrXjNZnUihKG48vapMj42Ib -NrelS5KEyL77dvOsDY7zr5AQ4HV2RJim3WHesiOCy4oQ8bNlWnYkou0Q5npqQmG7 -hTlZ/yu0lgCQz9yhGhGVZugvzbZoBy0cLfsNTq8P2H9/MjUj5q4P+wHdPKeW7Uqd -p2IaB7bzxWNt2lV9EhGX9lv3LGGzAKgRTpo1stVziooL1XHv/JLI0tSwjOF4FcE0 -VSXZ03+UemWXF1lg6qiL -=1p3w +iQIcBAABCAAGBQJmAQRFAAoJEFAslq9JXcLZb7IP+wXmbutc0kanyE0irAuOZJkI +JBCiyPb+RpRpGbz65m0Tt9min7QmBTr6qBby8cdu/fBvWIY1hLeF/8j1xh45RJfi +ZfblUjxITsTtk9EX0asmlYWCR+BAF1zDgOYKWmizzaLZqfXpzWmK5F8zHiTe692D +b2NJAzRY+QSep/Fwf3TWaECjCga1QOO1TmQpCRjhW7b4+u0gNCDoqD8pz0zTKIMJ +bEzfOyx1Enom5t7F2emyfrIt6O/8vlsdtN+TKeCBKL0XECMgtWk+OJRYUeCorDI4 +aK91cCTENddjvvkNGFOoBZMZ9XpQoN5TVXm2JjMbDiACbmCotUL/L2FPJut9k8X+ +1xaW+2FeS7aOraOXqiB3UBIAWCn/NzhPAN0RFzrKmSdWqK532HqwTgWChw9RWO/L +pnt+Otp56blmGprbw/4YhuTHLJD2LOj46MC7wmxkS1MLFPqA69L9XAMQMPEMXy2g +r6gBSmwUnuGWEW14bLnuS41cxTgIStw1gplno+okQmryPXm2gLzScykN7A2xZ/E0 +Hp/9emUUg9/cxD+cpsqDee0YX3FWkaWJ1LMdHWlKqTJfqyaJKovqCMlefzHRpwG1 +c1Or4yD46ut2cMJam8Xf2MHTJ6P2HhWt5SKlUG5vn7rFjFx5Q9ljpvuqOE4s3qez +FU2bVOQNDFOtdLYmjFjM +=feSr -----END PGP SIGNATURE-----