Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Check-in [41f2ddf18a]

Overview
Comment:Fix UTF-8 BOM, SecPolicy for .BAT, and MSI registration for silent windows installers.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 41f2ddf18a00c10e0e6125c40ec667ee7ebabd9a
User & Date: mario on 2016-11-19 13:13:46
Other Links: manifest | tags
Context
2016-11-19
13:14
Normalize all broken plugins with status: broken, and priority: obsolete check-in: 8e52a0479a user: mario tags: trunk
13:13
Fix UTF-8 BOM, SecPolicy for .BAT, and MSI registration for silent windows installers. check-in: 41f2ddf18a user: mario tags: trunk
13:13
Make *.pls default again for exportcat. check-in: b14e5127d9 user: mario tags: trunk
Changes

Modified dev/install_python_gtk.bat from [3293957a26] to [8de551208f].

1

2
3



1
2


3
4
5

+
-
-
+
+
+
@echo off
cls
PowerShell Set-ExecutionPolicy -ExecutionPolicy ByPass
PowerShell -File c:\usr\share\streamtuner2\dev\install_python_gtk.ps1
PowerShell Set-ExecutionPolicy -ExecutionPolicy ByPass -Scope CurrentUser
PowerShell -File \usr\share\streamtuner2\dev\install_python_gtk.ps1
PowerShell Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

Modified dev/install_python_gtk.ps1 from [c17079b444] to [97c592f59a].

1
2
3
4
5
6
7
8
9
10






















11
12
13
14
15
16
17
18


19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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










+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+






-
-
+
+







<#
 #
 # Run as post-install script for .exe package
 #
 #  - downloads Python + Gtk
 #  - some python libraries
 #  - and runs their respective installers
 #  - crafts streamtuner2 desktop shortcut
 #
 #>

[CmdletBinding()]            
Param(            
)            
            
function Test-IsElevated {
    [CmdletBinding()]
    param(
    )
    [Security.Principal.WindowsPrincipal] $Identity = [Security.Principal.WindowsIdentity]::GetCurrent()
    $Identity.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}

if(!(Test-IsElevated)) {
    Write-Host "If you run this script in non-elevated mode you will not be able to uninstall Python from control panel."
    Write-Host ""
    Write-Host "Do you want to proceed?"
    $y = Read-Host "y/n"
    if ($y -notmatch "y|Y|1") {
        exit;
    }
 }

$TEMP = $env:TEMP
$PYTHON = "C:\Python27"

#-- what
$files = @(
  "https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi",
  "http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pygtk-all-in-one-2.24.2.win32-py2.7.msi",
  "https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi#qb",
  "http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pygtk-all-in-one-2.24.2.win32-py2.7.msi#qbex",
  "$PYTHON\Scripts\easy_install.exe requests",
  "https://pypi.python.org/packages/3d/ee/affbc53073a951541b82a0ba2a70de266580c00f94dd768a60f125b04fca/lxml-2.3.win32-py2.7.exe",
  "https://pypi.python.org/packages/62/71/8ac1f5c0251e51714d20e4b102710d5eee1683c916616129552b0a025ba5/pyquery-1.2.17-py2.py3-none-any.whl#noexec",
  "$PYTHON\Scripts\pip.exe install $TEMP\pyquery-1.2.17-py2.py3-none-any.whl",
  "http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe"
)

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
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
97
98
99
100
101
102
103
104







+
+
+
+
+
+
+












-
-
+
+
+
+
+
+
+
+
+
+
+







Write-Host "Downloading packages..."

#-- process
ForEach ($url in $files) {

    echo "`n[[[ $url ]]]" #`
    chdir($TEMP);

    $regPath = "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
    if(!(Test-Path $regPath)) {
        $regPath = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall"
    }
    $regValueName = "WindowsInstaller"
    $regValue = "0"

    if ($url -match "https?://.+") {
        $file = [regex]::match($url, "/([^/]+?)([\?\#]|$)").Groups[1].Value;

        # download
        $wget = New-Object System.Net.WebClient
        $wget.DownloadFile($url, "$TEMP\$file");

        # run
        if ($url -match ".+#noexec") {
            Write-Host "(skipping)"
        }
        elseif ($url -match ".+.msi$") {
            Start-Process -Wait msiexec -ArgumentList /i,"$TEMP\$file"
        elseif ($url -match ".+.msi#qb$") {
            Write-Host "Installing Python 2.7.12 ..."
            Start-Process -Wait msiexec -ArgumentList /i,"$TEMP\$file", " /qb"
            $registryPath = $regPath+"\{9DA28CE5-0AA5-429E-86D8-686ED898C665}"
            Set-ItemProperty -Path $registryPath -Name $regValueName -Value $regValue
        }
        elseif ($url -match ".+.msi#qbex$") {
            Write-Host "Installing PyGtk 2.24.2 ..."
            Start-Process -Wait msiexec -ArgumentList /i,"$TEMP\$file", " TARGETDIR=C:\Python27 ADDLOCAL=ALL REMOVE=PythonExtensionModulePyGtkSourceview2,PythonExtensionModulePyGoocanvas,PythonExtensionModulePyRsvg,DevelopmentTools /qb"
            $registryPath = $regPath+"\{09F82967-D26B-48AC-830E-33191EC177C8}"
            Set-ItemProperty -Path $registryPath -Name $regValueName -Value $regValue
        }
        elseif ($url -match ".+.exe$") {
            Start-Process -Wait "$TEMP\$file"
        }
        else {
            & "$TEMP\$file"
        }
74
75
76
77
78
79
80








112
113
114
115
116
117
118
119
120
121
122
123
124
125
126







+
+
+
+
+
+
+
+

#-- make ST2 .lnk
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\Streamtuner2.lnk")
$Shortcut.TargetPath = "$PYTHON\pythonw.exe"
$Shortcut.Arguments = "c:\usr\bin\streamtuner2"
$Shortcut.Save()

function Test-IsElevated {
[CmdletBinding()]
param( 
)
 [Security.Principal.WindowsPrincipal] $Identity = [Security.Principal.WindowsIdentity]::GetCurrent()
 $Identity.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}