Browse Source

scriptapps misc

master
Julian Noble 2 weeks ago
parent
commit
551c993c22
  1. 95
      src/scriptapps/SELFSIGN.PS1
  2. 2
      src/scriptapps/punk.tcl
  3. 16
      src/scriptapps/selfsign_wrap.toml
  4. 15
      src/scriptapps/tcltm.tcl

95
src/scriptapps/SELFSIGN.PS1

@ -1,56 +1,61 @@
[cmdletbinding()]
# ----------------------------------------------------------------------------------------------------------------------------------------------------------
function ParameterDefinitions {
param(
[Parameter(Mandatory=$true)]
[string] $filename
[Parameter(Mandatory)][string] $filename,
[Parameter(ValueFromRemainingArguments)] $opts
)
}
# see also https://vcsjones.dev/subject-interface-packages/
# ----------------------------------------------------------------------------------------------------------------------------------------------------------
function psmain {
[CmdletBinding()]
#Empty param block (extra params can be added)
param()
dynamicparam { GetDynamicParamDictionary ParameterDefinitions }
process {
#Called once - we get a single item being our PSBoundParameters dictionary
write-host "Bound Parameters:$($PSBoundParameters)"
switch ($PSBoundParameters.keys) {
'filename' {
write-host "got filename " $PSBoundParameters.filename
Set-Variable -Name $_ -Value $PSBoundParameters."$_"
if (($filename.length -eq 0) -or -not (test-path $filename)) {
write-host "file $filename not found"
exit 1
}
$cert = Get-ChildItem -path Cert:\LocalMachine\My -CodeSigningCert | where {$_.subject -eq "CN=punkshell local"} | Select-Object -First 1
}
'opts' {
write-warning "Unused parameters: $($PSBoundParameters.$_)"
}
Default {
write-warning "Unhandled parameter -> [$($_)]"
}
}
foreach ($boundparam in $PSBoundParameters.GetEnumerator()) {
}
}
end {
# PSBoundParameters
write-host "filename:'$filename'"
$cert = Get-ChildItem -path Cert:\LocalMachine\My -CodeSigningCert | Where-Object {$_.subject -eq "CN=punkshell local"} | Select-Object -First 1
if ($cert.length -eq 0) {
write-host "No self signing certificate found (Cert:\LocalMachine\My)"
exit 2
}
write-host "Using Certificate"
write-host $cert | Select-Object FriendlyName,Thumbprint,Subject,NotAfter
write-host "Processing '$filename' ..."
try {
Write-Host $(Set-AuthenticodeSignature -FilePath $filename -Certificate $cert)
} catch {
throw $_.Exception.Message
}
echo "Using Certificate"
echo $cert | select FriendlyName,Thumbprint,Subject,NotAfter
echo "Processing $filename ..."
Set-AuthenticodeSignature -FilePath $filename -Certificate $cert
echo "-done-"
# SIG # Begin signature block
# MIIFkgYJKoZIhvcNAQcCoIIFgzCCBX8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCfgqqTvE/X4m/K
# UC7uGTV6Lz+BDJQsjeZDk0vmylnQmaCCAwgwggMEMIIB7KADAgECAhBETzeKK6w7
# vkayhsNPPi+IMA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNVBAMMD3B1bmtzaGVsbCBs
# b2NhbDAeFw0yNDAxMTIxMTE1MTBaFw0yOTAxMTIxMTI1MTBaMBoxGDAWBgNVBAMM
# D3B1bmtzaGVsbCBsb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
# AMoQ58xHVHwNmqM3hb6KsBAYYalFJliY189Y+oNMHtgPbDuUae0Tcd79yssV4hqp
# ZnK4f45Jbs7+SUyqoGtHyXrzhtHUFdFb8yC4T8ET2V46ddFB/JyPDUWdJikT2Erc
# Gw5/4Ag7X8P6TVMkGSaVM0T+h8kBHkzG5CTpwsOP+wMSGStcZTvyon67D3CKnY78
# JOmovfhj97eo8oU5AWGbYEPXBmaS+xqWJeU/eX/egMECbo9kT9Y0WQk+2axqZyeL
# p2+xsvmiNpLn1i0g+NzWUxNp5ibTr2rOm0jW3vh3NklCbjby2IvjukzuszeOU9sc
# qXK6+vdAMRMS/x2/whnrErUCAwEAAaNGMEQwDgYDVR0PAQH/BAQDAgeAMBMGA1Ud
# JQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQ4K5GVCXhCnD89VKgNQsGS8r6iiDAN
# BgkqhkiG9w0BAQUFAAOCAQEAgBTOVp+g96oaDjc+j9boUziG6aihKlVY3ic5uOcB
# Rqo6/kfSWzA/DisXWhPgwxrTq3ByPULLOpNNnzsQ8IDN6WH4psv5PvrT01jFcib7
# H+vDMYQl+7vDgLcqXczWjDHni56uABjM/1A4WdEJ8tpgP+XqwGkWPlKHHrp+bSgF
# 9aCw4h1HkgBzaFnsCHMNIQT7YkFW+CfBnp/b/irsGUj/Pp63GLfFrgkcgwCPRBvN
# LHI6rAX3iF8Yfpoka0lD1Ay/SEPWB8Oz8MEz2RQr+ELx9mKJHk/NBED+auKnInV1
# j7bOgw+xsmgtD0KSDJskk4YfZFwgLyrrbi+oIUAj3f3uGTGCAeAwggHcAgEBMC4w
# GjEYMBYGA1UEAwwPcHVua3NoZWxsIGxvY2FsAhBETzeKK6w7vkayhsNPPi+IMA0G
# CWCGSAFlAwQCAQUAoIGEMBgGCisGAQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJKoZI
# hvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcC
# ARUwLwYJKoZIhvcNAQkEMSIEICYgJa5n+ggz59/w10kxjaOomvLdZOkcbtudjrZZ
# KaZmMA0GCSqGSIb3DQEBAQUABIIBAMmaBSwgOjbUmp4NgCYONonMWrZuyX88AcEq
# 9MxbFLu+0OMpEYlK/AUWnWCeTDl8zN4Wcn8E44Rz15xgKjAoZVVnG3L6gGCcBqCd
# qDtgrifr7UZJ2gn0j9n9PyUXmHQ1ovWvNSQNOFF08Ul21HooFgGTRc67Ea90rFGN
# Bnz37c85AVSYpbvzEGx1SZ537CpfizQRyAiXJyTEyZNH8VPjaYvJPqL0qWak+hZV
# x2Kb1IUbpG/oKpzZk+dohlbYNtADz7JaPVLZXIoec6GxvvSbVNqiDly1F6L89dZ3
# TcjFEYK1LXUP+h0p4QJK0iZfWxrjtHhb2PCQECsw7rPDxlm4wlw=
# SIG # End signature block
write-host "-done-"
return $PSBoundParameters
}
}
write-host (psmain @args)

2
src/scriptapps/punk.tcl

@ -15,7 +15,7 @@ if {[file tail $dirname] eq "bin"} {
set vfsfolder [file normalize [file join $dirname "../src/_build/punk86${ext}.vfs"]]
}
9 {
set vfsfolder [file normalize [file join $dirname "../src/_build/punk9cook${ext}.vfs"]]
set vfsfolder [file normalize [file join $dirname "../src/_build/punk902z${ext}.vfs"]]
}
default {
error "no vfs available for tcl major version $tclmajorv"

16
src/scriptapps/selfsign_wrap.toml

@ -0,0 +1,16 @@
[application]
template="punk.multishell.cmd"
as_admin=true
scripts=[
"selfsign.ps1",
]
default_outputfile="selfsign.cmd"
default_nextshellpath="pwsh"
default_nextshelltype="powershell"
win32.nextshellpath="pwsh"
win32.nextshelltype="powershell"
win32.outputfile="selfsign.cmd"

15
src/scriptapps/tcltm.tcl

@ -1,13 +1,14 @@
if { ![package vsatisfies [package provide Tcl] 8.5] } {puts stdout "Tcl: >= 8.5 is required"; return}
if { ![package vsatisfies [package require sha1] 2.0.3] } {puts stdout "sha1: >= 2.0.3 is required"; return}
if { ![package vsatisfies [package require yaml] 0.3.6] } {puts stdout "yaml: >= 0.3.6 is required"; return}
if { ![package vsatisfies [package provide Tcl] 8.5-] } {puts stdout "Tcl: >= 8.5 is required"; return}
if { ![package vsatisfies [package require sha1] 2.0.3-] } {puts stdout "sha1: >= 2.0.3 is required"; return}
if { ![package vsatisfies [package require yaml] 0.3.6-] } {puts stdout "yaml: >= 0.3.6 is required"; return}
namespace eval ::tcltm::binary {
proc readfile { dir file } {
set b [open [file normalize [filename $dir $file]]]
fconfigure $b -translation binary
fconfigure $b -encoding binary
#fconfigure $b -encoding binary
fconfigure $b -encoding iso8859-1
set data [read $b]
close $b
return $data
@ -233,7 +234,8 @@ namespace eval ::tcltm::binary {
}
set fh [open $tmp w]
fconfigure $fh -translation binary
fconfigure $fh -encoding binary
#fconfigure $fh -encoding binary
fconfigure $fh -encoding iso8859-1
puts -nonewline $fh [string range $bindata $bindex [incr bindex [dict get $finfo SIZE]]-1]
flush $fh
close $fh
@ -668,7 +670,8 @@ namespace eval ::tcltm {
set res [dict create]
set b [open $f]
fconfigure $b -translation binary
fconfigure $b -encoding binary
#fconfigure $b -encoding binary
fconfigure $b -encoding iso8859-1
set data [read $b]
close $b
set pkgs [list]

Loading…
Cancel
Save