-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathinstallscript-dd.ps1
124 lines (103 loc) · 3.68 KB
/
installscript-dd.ps1
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
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
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
$usbrel = "https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z"
$chocodl = "https://chocolatey.org/install.ps1"
$7zip= "7Zip4PowerShell"
$rundatetime = Get-Date -Format yyyymmddhhmmss
# Query if 7z module is already installed, install if not
if (Get-Module -Name $7zip) {
Write-Host "7zip already installed"
}
else {
Install-Module -Name $7zip -Force
}
# Query if Chocolatey is installed, install if not
if (Test-Path "C:\ProgramData\chocolatey\choco.exe") {
Write-Host "Chocolatey already installed"
}
else {
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
}
# Install make and git
choco install make -y
choco install git -y
# Check if libusb already exists
if (Test-Path "C:\Libusb") {
Write-Host "The folder C:\libusb exists. Checking for correct libusb files."
$libusbhok = Test-Path C:\libusb\libusb.h
$libusbdllok = Test-Path C:\libusb\libusb-1.0.dll
$libusbdllaok = Test-Path C:\libusb\libusb-1.0.dll.a
}
else {
mkdir "C:\libusb"
$libusbhok = $libusbdllok = $libusbddlaok = $FALSE
}
# Remediate libusb
if ($libusbhok -eq $false -or $libusbdllok -eq $false -or $libusbdllaok -eq $false) {
mkdir C:\libusb\$rundatetime
cd C:\libusb\$rundatetime
Invoke-WebRequest $usbrel -OutFile "usbrel.7z"
Expand-7Zip "usbrel.7z" -TargetPath ./
if ($libusbhok -eq $False) {
Copy-Item .\include\libusb-1.0\libusb.h C:\libusb
$libusbhok = Test-Path C:\libusb\libusb.h
if ($libusbhok -eq $FALSE){
Write-Host "That wasn't supposed to happen."
}
}
if ($libusbdllok -eq $False) {
cp .\MinGW64\dll\libusb-1.0.dll C:\libusb
$libusbhok = Test-Path C:\libusb\libusb-1.0.dll
if ($libusbhok -eq $FALSE){
Write-Host "That wasn't supposed to happen."
}
}
if ($libusbdllaok -eq $False) {
cp .\MinGW64\dll\libusb-1.0.dll.a C:\libusb
$libusbhok = Test-Path C:\libusb\libusb-1.0.dll.a
if ($libusbhok -eq $FALSE){
Write-Host "That wasn't supposed to happen."
}
}
cd C:\
Remove-Item -Recurse -Force C:\libusb\$rundatetime
}
Write-Host "libusb set up and is ok"
# Clone repo and build
if (Test-Path C:\github) {
$githubdirpriorexist = $true
cd C:\github
mkdir $rundatetime
cd $rundatetime
}
else {
mkdir github
cd C:\github
mkdir $rundatetime
cd $rundatetime
}
#start build block
$env:Path += ";C:\Qt\5.15.0\mingw81_64\bin;C:/Qt/Tools/mingw810_64\bin"
#git clone https://github.com/simoninns/DomesdayDuplicator.git
git clone https://github.com/TokugawaHeavyIndustries/DomesdayDuplicator.git
cd DomesdayDuplicator\Linux-Application\DomesdayDuplicator
qmake
make all
make install
windeployqt C:\github\$rundatetime\DomesdayDuplicator\Linux-Application\DomesdayDuplicator\release
#endbuildblock
# Copy release out and clean up
Write-Host "Where would you like the release saved?"
Write-Host "Default: C:\DomesdayDuplicator"
Write-Host "NOTE! If this directory already exists, it will be overwritten!"
Write-Host ""
$finalreleasedir = Read-Host
if ([string]::IsNullOrWhiteSpace($finalreleasedir)) {
$finalreleasedir = ‘C:\DomesdayDuplicator’
}
Copy-Item -Path C:\github\$rundatetime\DomesdayDuplicator\Linux-Application\DomesdayDuplicator\release\* -Destination $finalreleasedir -Recurse
cd $finalreleasedir
if ($githubdirpriorexist -eq $false) {
Remove-Item C:\github -Recurse -Force
}
if ($githubdirpriorexist -eq $true) {
Remove-Item C:\github\$rundatetime -Recurse -Force
}