Skip to content

Commit

Permalink
misc
Browse files Browse the repository at this point in the history
  • Loading branch information
mikeslattery committed Feb 4, 2020
1 parent 90720d1 commit e43c3ad
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 20 deletions.
29 changes: 17 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,6 @@ Install Linux on an existing Windows system without a Live USB or firmware/BIOS
* Internet access
* AC Wall Power

### Limitations

* Currently, Tunic only installs official flavors of Ubuntu and Linux Mint.
* We are working on testing Windows 7 and 8, MBR, and support for other Debian/Ubuntu based Linux distros.
* Error handling needs improvement.

### What Tunic Does

* Validates your system is compatible with Tunic.
Expand All @@ -35,32 +29,43 @@ Install Linux on an existing Windows system without a Live USB or firmware/BIOS
* Installs Grub with Secure Boot support.
* Calculates Linux equivalent values for your Windows locale and user account.
* Reboots and runs the Ubiquity installer, automated.
* If custom boot, will provide Ubuntu's Ubiquity partiton utility GUI.
* If custom install type choosen, will provide Ubuntu's Ubiquity partiton utility GUI.
* Reboots into your final installed Linux!

See the [TODO](doc/TODO.md) for ideas for future versions.

### Limitations

* Currently, Tunic only installs official flavors of Ubuntu and Linux Mint.
* We are working on testing Windows 7 and 8, MBR, and support for other Debian/Ubuntu based Linux distros.
* Error handling needs improvement.
* During install the "Quit" button may not work.

### More information

See the [doc](doc) directory for more information.

## Getting Started

### Preparation

Backup your data!
* Backup your data!

Before you start, make sure to backup up an image of your entire disk(s).
Tunic does not assist with full disk backup.
Read disclaimer for more information.

No, really. Backup your data.

* Close all other running applications.

### Usage

1. Download and run the [latest executable file](/mikeslattery/tunic/releases/download/latest/tunic.exe) from releases.
1. Answer questions.
1. Let it run. It may take a long time.
1. Enjoy your new Linux OS!

## More information

See the [doc](doc) directory for more information.

## Legal Stuff

### License
Expand Down
20 changes: 12 additions & 8 deletions tunic.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ function checks() {
die( 'It is too risky to use Tunic while on battery.' )
}

if( (New-Object -ComObject 'Microsoft.Update.Installer').isBusy ) {
die('A Windows Update is in progress. Try again later.')
}

$partc = ( get-partition -driveLetter $global:letter )
if( (get-disk -number $partc.diskNumber).partitionStyle -eq 'MBR' ) {
mbr2gpt /validate /allowfullos > $null 2> $null
Expand Down Expand Up @@ -310,7 +314,9 @@ function getLinuxTimeZone() {
}

# Sloppy match
$ltz = $zones[0].type
if( ! $ltz ) {
$ltz = $zones[0].type
}
}
else {
# Match by GMT and hour difference.
Expand Down Expand Up @@ -942,9 +948,10 @@ function gui() {
$buttonPanel.padding = 5
$buttonPanel.AutoSize = $true

$abortButton = New-Object system.Windows.Forms.Button
$global:abortButton = New-Object system.Windows.Forms.Button
$abortButton.text = "Quit"
$abortButton.tabStop = $false
$abortButton.dialogResult = [System.Windows.Forms.DialogResult]::Cancel
$buttonPanel.controls.add($abortButton)

$global:installbutton = New-Object system.Windows.Forms.Button
Expand Down Expand Up @@ -1035,10 +1042,6 @@ function gui() {
installTypeCheck
})

$abortButton.add_click( {
$form.close()
})

$installButton.add_click({
$global:data.username = $username.text
$global:data.fullname = $fullname.text
Expand Down Expand Up @@ -1074,7 +1077,8 @@ function gui() {
$global:dual.visible = $false
$installButton.visible = $false
$global:progress.visible = $true
#TODO: Run as PSJob, remove doevents
#TODO: Run as PSJob, remove doevents, don't hide abortButton
$global:abortButton.visible = $false

if( $global:data.installType -eq $DUALBOOT ) {
$global:data.linuxSize = [double]::parse( $global:linuxSize.text )
Expand Down Expand Up @@ -1168,7 +1172,7 @@ switch($op) {
}
default {
$global:form = (gui)
$form.showDialog()
[void]$form.showDialog()
}
}

0 comments on commit e43c3ad

Please sign in to comment.