Compare commits

..

2122 commits

Author SHA1 Message Date
875166b683
Replace WMIC sections
Addresses issue #227
2024-11-23 15:27:17 -08:00
179748c469
Add Windows 11 24H2 to version list 2024-11-22 07:27:44 -08:00
ffcee1156a
Remove stale docopt files 2024-09-30 01:52:07 -07:00
edd944a325
Hide extra partitions when building UFDs
Addresses issue #226
2024-09-28 23:22:31 -07:00
75119c15ad
Fix bug in ddrescue-tui argument parsing 2024-09-11 18:11:12 -07:00
e6db63c8b0
Fix typo 2024-09-09 21:43:28 -07:00
e388b77639
Add OSFMount 2024-09-09 21:40:19 -07:00
bbdef56df2
Add OSFMount 2024-09-09 21:05:36 -07:00
6a5a944ea0
Refactor notepad replacement in WinPE
The registry method has proved problematic.  This DOSKEY method seems
less error prone since it's evaluated at runtime.
2024-09-09 20:12:54 -07:00
3621914312
Remove temporary WinPE WIM file 2024-09-08 13:28:31 -07:00
0ef9412995
Switch back to ConEmu in WinPE 2024-09-08 03:53:48 -07:00
0335797a5d
Update WinPE sections 2024-09-08 03:04:33 -07:00
2a07aebff3
Move macOS icons into a tar archive 2024-09-08 00:13:47 -07:00
244d917c73
Drop remaining docopt references 2024-09-04 01:14:34 -07:00
13b8dc8696
Replace remaining docopt sections 2024-09-04 00:53:42 -07:00
58576cbdb4
Use FAT32 for all UFD partitions
This breaks macOS images but those are deprecated at this point.
2024-09-04 00:24:03 -07:00
a3a7b25512
Fix case_insensitive_search 2024-09-04 00:16:54 -07:00
50033f42f6
Move to argparse for ddrescue-tui and hw-diags 2024-09-03 01:12:00 -07:00
d00d625142
Avoid crash when launching SDIO under Windows 11 2024-06-12 19:26:15 -07:00
97842e82f2
Make AVRemover optional 2024-06-03 21:08:59 -07:00
4a54b6e00c
Improve resolution detection when run in a VM 2024-04-27 20:46:23 -07:00
ee7c7c2448
Allow using the live CD/DVD/etc as a source 2024-03-30 23:04:49 -07:00
3aff533c4d
Reduce size to zero-out
Most tools will use a 1MiB offset for the first partition
2024-03-30 23:04:08 -07:00
a256e6e764
Disable finalization options when imaging 2024-03-25 23:01:23 -07:00
cc3e36c60d
Ensure destination exists in ddrescue-tui image 2024-03-25 22:54:57 -07:00
f91eac3ec3
Add Memtest86+ boot options in Syslinux config 2024-03-24 18:52:33 -07:00
667de2d672
Adjust Linux boot options
- CLI option was dropped in Syslinux due to keep the list to a minimum.
Also, its main use was to avoid display issues and nomodeset is a better
option IMO
2024-03-24 18:47:00 -07:00
272fd3e43f
Update tmux sections to reflect upstream changes 2024-03-23 22:35:12 -07:00
58069f9db2
Added 23H2 to windows builds list 2024-03-21 16:04:54 -07:00
33d266f83e
Update more tool configs 2023-11-11 19:53:22 -08:00
e84feb3160
Add AIDA64 config 2023-11-11 18:58:13 -08:00
243fb78837
Add WizTree config 2023-11-11 16:38:58 -08:00
565ec32294
Enable OpenShell under Win11 2023-11-11 15:52:02 -08:00
694eec911b
Drop unused boot option 2023-11-04 17:53:20 -07:00
44b7f786e7
Add UFD macOS boot icon 2023-11-02 20:52:13 -07:00
f7d212d115
Refactor built-ufd to match new Linux builds 2023-11-01 23:30:27 -07:00
3230984a4f
Remove more Archiso customization sections
This will be added to build-ufd
2023-10-27 00:44:58 -07:00
9f4b0ffa82
Remove ISO bootloader override section 2023-10-26 23:19:30 -07:00
75bad41e93
Revert to upstream Linux ISO boot setup
We'll move the WizardKit customization to build-ufd
2023-10-26 00:08:52 -07:00
8602723adb
Use C.UTF-8 to match upstream 2023-10-24 00:29:05 -07:00
b01cb6ed26
Remove haveged and rngd to match upstream 2023-10-23 23:41:24 -07:00
aaae24b790
Suppress linting message 2023-10-22 19:54:51 -07:00
94c8c2ba01
Fix detection of full clones in zero_fill_gaps()
This prevents using the wrong domain size and crashing ddrescue.
2023-10-22 19:53:04 -07:00
80a0d9874a
Drop TDSSKiller
Kaspersky removed the tool from their site, it's probably best to follow that.
2023-10-22 17:41:27 -07:00
e85d9c220e
Update LICENSE.txt 2023-10-21 23:39:28 -07:00
864a546fe3
Rename SDIO config file 2023-10-21 23:28:17 -07:00
3ce134901a
Add config files for BCUninstaller and DDU 2023-10-21 23:01:43 -07:00
6d62bfeaea
Update FastCopy URL 2023-10-21 22:53:27 -07:00
c18e82af75
Add missing DeviceCleanup files 2023-10-21 19:17:50 -07:00
9f5c097f81
Fix typos 2023-10-21 19:11:37 -07:00
42c72f20f4
Run DeviceCleanup and DDU elevated 2023-10-21 19:03:15 -07:00
4e887c318b
Use full tool names 2023-10-21 18:59:37 -07:00
e39a2acf26
Add missing launchers 2023-10-21 18:54:04 -07:00
8ab56ae9d8
Replace UninstallView with BCUninstaller
Addresses issue #223
2023-10-21 18:50:20 -07:00
1c6f0f5f28
Update tool sources 2023-10-21 18:43:54 -07:00
4aedea65c7
Add DeviceCleanup and DDU
Address issue #203
2023-10-21 18:42:30 -07:00
d7067af522
Add data structure description to Sensors() object 2023-10-07 16:36:17 -07:00
484f13dc29
Update embedded_python_env.py 2023-09-23 16:27:34 -07:00
868932c5e4
Remove duplicate code 2023-09-18 11:33:47 -07:00
17a62d6f36
Merge branch 'dev' of gitea.2shirt.work:2Shirt/WizardKit into dev 2023-09-18 11:32:50 -07:00
b20b612315
Update LibreOffice version 2023-09-18 11:30:21 -07:00
73bd58a973
Store average temps in history for use in reports
Addresses #204
2023-09-17 19:40:06 -07:00
33e9cde0f4
Keep history of sensor temps
Needed for #204
2023-09-17 18:11:09 -07:00
ee9d316217
Include serial in ddrescue map name
Addresses issue #200
2023-08-28 15:14:50 -07:00
f7345a8a54
Improve full_disk_clone definition 2023-08-26 17:39:27 -07:00
075a0d8541
Ensure relocate_backup_gpt() is run last
Addresses issue #220
2023-08-26 17:38:27 -07:00
5147a4105f
Simplify finalization menu
Addresses issue #220
2023-08-26 16:57:33 -07:00
d933ec6415
Ignore some unused function arguments 2023-08-26 16:55:25 -07:00
f5681a93d8
Add finalization menu to ddrescue-tui
Addresses issue #220
2023-08-26 16:54:53 -07:00
dbe4a342cc
Fix source_parts usage
Addresses issue #221
2023-08-26 14:30:22 -07:00
460fd9c952
Fix misc typos 2023-08-20 16:09:47 -07:00
7603b93338
Remove temp variable from set_mode() 2023-08-13 20:47:55 -07:00
42720d322b
Move build_block_pair_report() to block_pair.py 2023-08-13 20:47:15 -07:00
6bef46bb4d
Move more logic into wk/clone/block_pair.py 2023-08-13 20:39:23 -07:00
670619b65e
Use new log.format_log_path sub_dir option
This removes the need to import time
2023-08-13 19:47:32 -07:00
b9c4c9c32f
Add sub_dir option to format_log_path 2023-08-13 19:36:38 -07:00
e7642bdc63
Move image sections to wk/clone/image.py 2023-08-13 17:46:31 -07:00
a12995b37d
Move ddrescue classes to separate files 2023-08-13 17:34:14 -07:00
ee34e692dd
Update source/dest earlier in the workflow
Addresses issue #219
2023-08-13 16:31:23 -07:00
2134536960
Remove journalctl alias 2023-08-13 16:15:29 -07:00
47ccd7dd91
Pre-compile Python scripts in build_linux 2023-08-05 14:50:49 -07:00
24e4f7ddcc
Fix pickling ddrescue State() 2023-07-16 18:07:08 -07:00
bddf47816f
Remove duplicate log setup 2023-07-16 17:46:38 -07:00
0c1c65182c
Fix HW Diags test selections for teststations 2023-07-12 12:48:31 -07:00
cda5aee714
Add option to disable password expiration 2023-07-11 11:12:12 -07:00
7c16d13f65
Generate test maps at runtime in ddrescue-tui 2023-07-09 13:58:59 -07:00
840008d8cd
Specify text encoding for zero-fill map file 2023-07-09 13:23:21 -07:00
090a9f2b96
Update ddrescue-tui logging handling 2023-07-09 00:16:46 -07:00
4467369811
Add finalization options to ddrescue-tui
Specifically to zero-fill any gaps from the clone,
to fill the destination with zeros to the end of the device,
and/or to relocate the GPT to the end of the device.
2023-07-08 23:27:05 -07:00
a20fdf7bd3
Only show destination SMART data if present.
Also avoids crash when imaging
2023-07-08 18:58:05 -07:00
df1d2b713f
Simplify _poweroff_source_drive() 2023-07-08 18:37:42 -07:00
4a34f5477d
Add delay to TUI() initialization
Avoids issue where the main menu is printed before the layout is fully
set causing the first few lines to be hidden by the title pane.
2023-07-08 18:32:31 -07:00
0ace951380
Update run_program to avoid linting warnings 2023-07-08 18:10:59 -07:00
6a1cf98d0b
Terminate ddrescue directly instead 2023-07-08 18:10:14 -07:00
8f14fd2442
Fix SMART attribute tracking
Since we've moved to delayed SMART attribute updates we need to set
initial_attributes after we first check the SMART data instead of at
object creation time.
2023-07-08 18:07:55 -07:00
a78a077bdf
Set max idle cutoff to 70* C
Addresses issue #204
2023-07-05 15:51:50 -07:00
d101ec627f
Fix off-by-one bug in tmux.fix_layout()
If resizing both the title and info groups the second group was starting
at a lower initial width.
2023-07-05 15:48:31 -07:00
408a0c6114
Update TUI layout handling
The right column is now created first so the title, info,
current, and worker panes are all in the same "container"
2023-07-05 15:46:27 -07:00
ebd1bbda18
Show SMART data for both devices in ddrescue-tui 2023-07-05 15:00:01 -07:00
7499639c5c
Drop sat,auto detection for smartctl
This was needed twofold.  First is that it was not working as expected
for some time.  Second is that it conflicts with the delayed attribute
updating needed for faster WKClone menus.
2023-07-05 14:57:54 -07:00
d6f3455236
Misc update 2023-07-03 21:27:41 -07:00
55d752dd8b
Use checkmarks in Menu() under ConEmu 2023-07-03 20:45:44 -07:00
f8fc38a78b
Disable highlighting new apps in OpenShell 2023-07-03 20:31:46 -07:00
895d8d2f0a
Disable Bing search desktop widget 2023-07-03 20:25:23 -07:00
815cfde84a
Refactor check_mprime_results() to use sets 2023-07-03 20:16:37 -07:00
9a7fdba3f9
Add warning if cooldown temp is too high vs idle
Addresses issue #204
2023-07-03 20:15:03 -07:00
f9a6850c1a
Split CPU & Cooling tests into separate functions
Addresses issue #204
2023-07-02 15:10:22 -07:00
172f00e4e9
Adjust type hints for NonBlockingStreamReader() 2023-07-02 14:05:20 -07:00
86203a4b86
Use slots for all dataclasses
The minimum Python version was bumped to 3.10 so this is now safe.
2023-06-29 13:48:34 -06:00
8e234ce0cd
Add menu entry for MS Store updates in Auto Setup
Addresses issue #216
2023-06-26 08:20:15 -07:00
9689dcfeab
Update source URLs 2023-06-25 04:10:08 -07:00
cafa2c24fb
Switch to winget where appropriate in Auto Setup
NOTE: Winget is not used for Firefox, LibreOffice, or Open Shell.
This was done because we need more fine-tuned control of the process.
2023-06-25 02:40:43 -07:00
3ff61e9948
Add winget import support 2023-06-25 02:22:04 -07:00
9980dab27b
Add initial winget support 2023-06-25 02:21:26 -07:00
55ce4d8ded
Fix Python dependencies (again) 2023-06-24 23:04:28 -07:00
662f8c1254
Fix bug when running a PowerShell script elevated 2023-06-24 20:32:55 -07:00
d34df7ae07
Add/Update Python dependencies for build_windows 2023-06-24 19:44:20 -07:00
dfcc717048
Open both Microsoft Store and Windows updates
Addresses issue #216
2023-06-24 19:35:12 -07:00
21cbe5d445
Show filesystem type in select_disk_parts() 2023-06-24 18:58:06 -07:00
d94e9097b7
Reduce ESP size to 260MiB 2023-06-24 18:56:31 -07:00
228a5f640e
Adjust TRIM warning message 2023-06-24 18:56:03 -07:00
acd484f891
Check for TRIM in HW Diagnostics and ddrescue-tui
Addresses issue #212
2023-06-17 20:45:44 -07:00
d958945fe8
Relaunch ddrescueview when resuming clone 2023-06-17 20:13:32 -07:00
3e10f2cb8c
Reset layout when aborting HW diagnostics 2023-06-17 18:56:08 -07:00
9810c630f6
Ensure worker panes are added in the proper order 2023-06-17 18:37:56 -07:00
c3bf5f6730
Avoid mixing types for HW Diags main menu 2023-06-17 18:30:33 -07:00
c63b388f81
Small linting refactor 2023-06-17 18:25:12 -07:00
20a0881421
Refactor tmux.fix_layout()
The new code better determines all sizes with splits taken into account.
The non-perfect divisions are also considered when splitting
horizontally.
2023-06-17 18:23:09 -07:00
203ad715e0
Refactor ddrescue-tui source/dest selection
- Re-enables taking images instead of direct cloning!
- Removed some safety checks for clearer code
- We avoid a second scan by reusing the disk_menu object
2023-06-11 15:48:58 -07:00
986c870090
Move ddrescue-tui menus to a separate file 2023-06-10 21:50:56 -07:00
4feb15182e
Rework SMART self-test sections (again)
- Use results from self-test log rather than self-test details
- Include more result details in more scenarios
- Only add self-test results to the report to avoid
  duplicate/conflicting info
- Add check if test started but didn't finish (again?)
2023-06-10 18:59:19 -07:00
88d3ade64d
Avoid background crash when fixing the tmux layout 2023-06-10 18:05:13 -07:00
4202d3c1dc
Adjust cli.ask() log formatting 2023-06-10 17:58:23 -07:00
bcb9228234
Add missing package 2023-06-10 17:56:21 -07:00
f2ab06374b
Revert "Suppress warnings when using tail in tmux"
This reverts commit 3334638a2c.
2023-06-10 17:55:57 -07:00
a2c41fbaf2
Fix destination selection and title pane handling 2023-06-04 19:24:27 -07:00
7e6cfa1896
Add more type hints to ddrescue-tui 2023-06-04 18:54:16 -07:00
13e14e6734
Avoid dangerous default value 2023-06-04 18:13:18 -07:00
45a7f84e19
Restrict journal messages in ddrescue-tui 2023-06-04 18:11:14 -07:00
86f748c599
Clear ddrescue pane when resizing
This replaces the clear every 30s/60s/etc.  It's only enabled while
ddrescue is running to prevent clearing warning messages if printed.
2023-06-04 18:08:59 -07:00
becc564269
Use new TUI layout in ddrescue-tui 2023-06-04 17:43:02 -07:00
7ab6ccbd36
Avoid setting percent to None in tui.py 2023-06-03 18:58:46 -07:00
8e7d202c32
Add reset_title_pane() to tui 2023-06-03 18:58:29 -07:00
05de5c7294
Add type hints to BlockPair 2023-06-03 18:07:30 -07:00
fc2b90a2c0
Raise CPU_CRITICAL_TEMP to 100*C 2023-05-29 17:48:24 -07:00
de7993c39c
Fix type hint for get_known_disk_attributes() 2023-05-29 17:47:58 -07:00
dbb606601d
Drop test() function 2023-05-29 17:32:05 -07:00
1dc22d5991
Remove unused section in layout_needs_fixed() 2023-05-29 17:31:03 -07:00
f50ea711e6
Refactor wk.clone.ddrescue.get_object() 2023-05-29 17:29:02 -07:00
2cce572acf
Drop OrderedDict usage in favor of standard dicts
Python 3.7+ guarantees insertion order is preserved and we (currently)
require 3.10+
2023-05-29 17:25:48 -07:00
a253fdc80f
Add type hints to auto_repairs and auto_setup 2023-05-29 17:09:32 -07:00
386a8b7000
Merge branch 'type-hinting' into dev 2023-05-29 16:26:16 -07:00
a5eb64a055
Add type hints to class instance variables 2023-05-29 16:25:37 -07:00
c009ab2d41
Add even more type hints to function arguments 2023-05-29 16:04:58 -07:00
1bfdb14be4
Refactor color_string() 2023-05-29 14:49:21 -07:00
bf9d994675
Add more type hints to function arguments 2023-05-29 14:01:29 -07:00
f654052f1d
Fix typo 2023-05-29 13:42:45 -07:00
12326a5e2c
Use new Union syntax
This bumps the minimum Python version to 3.10
2023-05-29 12:35:40 -07:00
171cd0019e
Add type hints to function arguments 2023-05-28 20:50:38 -07:00
62edaac25a
Add type hints to functions 2023-05-28 20:09:54 -07:00
60d08a189d
Merge branch 'dev' into type-hinting 2023-05-27 21:15:23 -07:00
69832eda5d
Remove duplicate function wk.log.get_log_filepath 2023-05-27 21:12:27 -07:00
534f258846
Add some type hints 2023-05-27 20:05:03 -07:00
0126452bf1
Merge branch 'ui-split' into dev 2023-05-27 19:50:49 -07:00
3334638a2c
Suppress warnings when using tail in tmux 2023-05-27 19:48:18 -07:00
cb012423bb
Refactor hardware diagnostics to use new TUI 2023-05-27 19:47:26 -07:00
4c76e59238
Add get_window_size() 2023-05-27 19:22:24 -07:00
ba69773fba
Clear history when clearing a pane
Helpful if the pane is resized to prevent cleared lines from returning.
2023-05-27 19:08:48 -07:00
f19c4b2422
Update self-test data before checking result
Addresses #209
2023-05-22 20:59:10 -07:00
59d89575ed
Refactor SMART self-test checks
- Preserve TimedOut status
- Adds last self-test result to notes (if present and result is unknown)
2023-05-21 14:52:28 -07:00
9678f143c7
Misc 2023-05-14 21:59:34 -07:00
7aafcd7c01
Update add_title_pane() to match set_title() 2023-04-09 16:33:11 -07:00
b834be9f00
Close all panes atexit 2023-04-09 16:32:13 -07:00
ba3bf480f7
BREAKING Add wk/ui/tui.py 2023-04-09 15:59:34 -07:00
f9bcd534d4
Move ansi code into wk/ui 2023-04-08 19:20:22 -07:00
d302be2d7c
Use prompt_toolkit for CLI input 2023-04-08 16:26:51 -07:00
13fc64e6ab
Remove unneeded wk.ui calls 2023-04-08 14:16:41 -07:00
44ddb3c258
Replace clear_screen() function
This is now part of wk.ansi and is fully cross-compatible.
2023-04-08 12:45:45 -07:00
95d7159414
Move ANSI color escape sections to their own file 2023-04-02 20:46:54 -07:00
03a143488c
Adjust ui imports and calls 2023-04-02 20:12:18 -07:00
6efc970374
Move tmux sections into wk.ui 2023-04-01 22:36:59 -07:00
e3ebc2d1b8
Merge branch 'dev' into ui-split 2023-04-01 22:28:32 -07:00
96136e8e46
Overwrite .new files if needed
Addresses issue #213
2023-04-01 22:25:11 -07:00
ddb9c4041b
Suppress output when configuring browsers
Addresses #214
2023-04-01 22:20:33 -07:00
9228137187
Fix check_4k_alignment()
Addresses #215
2023-04-01 22:16:38 -07:00
89fd647792
Split wk.std into debug, std, and ui sections 2023-04-01 22:14:03 -07:00
9f66b151af
Replace more pylint sections with ruff 2023-03-26 23:52:52 -07:00
08294caffc
Drop photorec-sort script 2023-03-26 23:09:53 -07:00
7c66eb5e99
Allow password sign-in for MS accounts
Addresses issue #210
2023-03-26 23:04:45 -07:00
d5bc74d21b
Show partition info in 4K alignment check 2023-03-25 20:24:17 -07:00
4f6a07c449
Set Linux as the default boot option 2023-03-19 20:49:32 -07:00
606e657591
Switch to Memtest86+ under UEFI
Memtest86 (by Passmark) still available as an alternate option.
2023-03-19 20:47:36 -07:00
2717ad1a88
Drop pylint reference 2023-03-19 20:21:12 -07:00
10400ec2c3
Add pre-commit hook 2023-03-19 20:13:50 -07:00
bbdc10e0f2
Merge branch 'dev' into ruff-test 2023-03-19 19:45:26 -07:00
16ee95b1d9
Adjust Python module path handling
Simplifies top-level scripts and removes linting exceptions.
2023-03-19 19:42:54 -07:00
e00920f24a
Switch to ruff linting 2023-03-19 18:47:46 -07:00
dad1d3e7f9
Switch to Github release for wimboot 2023-03-18 19:09:02 -07:00
a124b0002b
Remove unused proc var 2023-02-18 14:58:44 -08:00
c888adc1e0
Revert "Fix type causing wrong type to be returned"
This reverts commit 4cc6a5ecd1.
2023-02-16 16:48:01 -08:00
4cc6a5ecd1
Fix type causing wrong type to be returned 2023-02-15 17:36:18 -08:00
ee1f41a1bb
Add VCRedist link 2023-02-07 16:09:33 -08:00
ba1191e425
Add desktop file for OSCViewer 2023-02-04 17:29:38 -08:00
fd9d506ce5
Adjust package lists for OpenSuperClone 2023-02-04 17:29:09 -08:00
9d76502421
Parse KVRT report to create human readable log 2023-02-04 17:22:00 -08:00
f371a4cb83
Limit KVRT scan to Users and ProgramData folders 2023-02-04 17:20:06 -08:00
4f89656edc
Merge branch 'opensuperclone' into dev 2023-01-31 22:41:51 -08:00
4a3bb2cc3f
Revert "Switch to LTS kernel"
This reverts commit f21b95b090.
2023-01-31 22:36:42 -08:00
302ad58814
Remove /utf8 arg from FastCopy launchers
I seems that the FastCopy docs are outdated?
2023-01-02 13:22:07 -08:00
6e4bc11a7e
(Re)add mesa-utils
Needed by the hw-info script
2022-12-23 21:02:13 -08:00
c5b3df3e03
Revert "Update Memtest86 section"
This reverts commit 4a7762f751.
2022-12-23 20:50:12 -08:00
5e95cee2f3
Support kit dir to be at the root of a volume 2022-12-23 19:09:16 -08:00
c235926930
Remove Linux Minimal build
- Merge archiso profiles
- Merge package lists
- Merge full/minimal sections in build_linux
- Remove minimal boot entries
- Remove minimal from build-ufd config and scripts
- Update Linux README.md

Addresses #207
2022-12-17 23:07:35 -08:00
4a7762f751
Update Memtest86 section 2022-12-17 21:44:38 -08:00
3e7d074ca3
Update st package 2022-12-17 20:37:30 -08:00
0e2d51926c
Fix Auto Repairs menu
Reboot entries weren't selected in the default profile due to having
ASCII color escapes.
2022-12-15 20:41:05 -08:00
0ce8169e6b
Skip the main menu when resuming to Auto Repairs
Fixes issue #205
2022-12-15 20:03:05 -08:00
f21b95b090
Switch to LTS kernel 2022-12-15 17:05:29 -08:00
b136462c75
Add dependencies for opensuperclone 2022-12-15 17:04:52 -08:00
137c3ec5e5
Add label for test mode in hardware diagnostics 2022-12-11 21:44:20 -08:00
1dfc7a0243
Add missing build dependencies 2022-12-11 20:56:24 -08:00
786660a625
Add option to install packages in pacinit 2022-12-11 19:08:06 -08:00
a96eacab06
Replace compton (again) 2022-12-03 22:04:26 -08:00
89de2a7679
Avoid crash for devices with bad volume names 2022-11-16 22:41:16 -08:00
2d353cf4e6
Add OpenSuperClone to Linux 2022-11-15 03:35:43 -08:00
76e7994aaa
Switch to mprime-bin
The compiled version is a couple versions out of date?
2022-11-15 03:34:48 -08:00
902ccc7989
Use upstream, precompiled rEFInd binaries
- Needed to allow booting under some MacBook models
2022-11-15 03:33:43 -08:00
e8f86196c8
Refactor Linux dependencies
- Support comments in the package list
- Remove extraneous dependencies
2022-11-15 03:32:30 -08:00
93e4a2e50c
Replace using picom settings 2022-11-12 23:54:11 -08:00
e583929498
Reduce time needed for get_disks() 2022-11-12 23:21:23 -08:00
3922ed08a8
Fix pylint warning W3101 2022-11-12 22:32:25 -08:00
71bbf6ed57
Replace testdisk-wip with testdisk
Needed for dependency issues
2022-11-12 22:20:25 -08:00
f85a03a712
Fix .zlogin in full build 2022-10-30 21:25:02 -07:00
d306a4c4e6
Improve RAM model reporting 2022-10-29 12:06:37 -07:00
b36847fa5c
Skip elevate for Windows Updates 2022-10-23 17:47:07 -07:00
94c1f282f5
Fix reboot entries in Auto Repairs presets 2022-10-23 17:09:08 -07:00
d1ff7a391b
Fix typo 2022-10-23 16:49:42 -07:00
b9202c0ba2
Fix Auto Repairs presets 2022-10-23 16:48:03 -07:00
166ad3198c
Add badblocks support for drives over 16TB 2022-10-23 13:31:37 -07:00
2706d1a9a5
Show failed SMART attributes during disk tests 2022-10-23 13:18:43 -07:00
5c6c123daa
Fix SDIO launcher when SDIO_SERVER not defined 2022-10-22 20:35:05 -07:00
1f984f5b77
Add journalctl-datarec alias 2022-10-22 20:20:17 -07:00
25b64d6852
Limit badblocks scan to minimum in test_mode 2022-10-22 19:41:27 -07:00
a324e71ba9
Open Snappy Driver Instller Origin in AutoSetup
Address issue #202
2022-10-22 18:49:58 -07:00
31de1a20d9
Configure browsers in Additional Users preset.
Addresses issue #202
2022-10-22 18:45:04 -07:00
3d90adf4b2
Add option to run SDIO from network share 2022-10-22 18:24:48 -07:00
eab7a03f70
Update launchers.py 2022-10-19 23:34:51 -07:00
df6d3d4a24
Fix Auto Setup selections under Windows 11 2022-10-19 23:31:20 -07:00
8c03530ec5
Update details before confirming selection 2022-10-19 23:21:23 -07:00
abaed514fb
Fix wk-debug 2022-10-09 00:52:29 -07:00
3d799c2b62
Fix test mode in I/O benchmark test 2022-10-08 22:05:54 -07:00
49ed3c2919
Drop test station name detection via DNS 2022-10-08 20:03:40 -07:00
7dd35e3572
Replace egrep with grep -E 2022-10-08 19:38:45 -07:00
7714b3436f
Track initial and current SMART attributes
Addresses issue #194
2022-10-08 19:26:20 -07:00
4465caa9fd
Skip empty devices 2022-10-08 18:45:31 -07:00
a6a774beae
Update Disk details before checking labels 2022-10-08 18:44:56 -07:00
bb43c7447d
Add wk_debug.py 2022-10-08 18:28:17 -07:00
2c9e56e830
Improve device size reporting in the description
i.e. support 512GB SSDs, 1.5TB HDDs, etc
Addresses issue #199
2022-10-08 16:33:50 -07:00
fc8f81b66d
Open ddrescueview only once per BlockPair 2022-10-08 15:41:54 -07:00
6880a353cc
Set known_attributes when intializing Disk()
This new design uses copy.deepcopy() to avoid erroneous thresholds being
applied to drives during diags.  This also reduces the number of lookups
to one per Disk.
2022-10-08 14:15:32 -07:00
c08ad2b1fb
Avoid crash when saving debug info 2022-10-08 14:00:03 -07:00
591fb8e138
Skip installing Open Shell under Windows 11 2022-10-01 19:15:15 -07:00
a9581c9152
Update OS version sections to support Windows 11 2022-10-01 18:43:44 -07:00
dc2c9955e6
Bump Windows tool versions 2022-09-28 09:32:52 -07:00
5a61ea9abf
Bump psutil version 2022-09-28 09:27:40 -07:00
926b32b574
Clean badblocks results to remove backspaces 2022-09-28 00:33:15 -07:00
5aa49fe5e5
Stomp bugs and typos 2022-09-28 00:33:15 -07:00
d51bf9fe63
Add presets to AutoRepairs 2022-09-28 00:33:15 -07:00
3602665438
Refactor auto_setup.py
Combined the two STATIC VARIABLES sections
2022-09-28 00:33:15 -07:00
e55cc41e2b
Update the AutoRepairs scheduled task every run
This is useful if the kit is being run from a different port and the
letter changed between runs.
2022-09-28 00:33:15 -07:00
2df0bb504f
Reorganize kit layout and update launchers 2022-09-28 00:33:15 -07:00
82e0de422b
Add export_bitlocker.py script 2022-09-28 00:33:15 -07:00
cafdf42a6d
Use same log file for full AutoRepairs session 2022-09-28 00:33:15 -07:00
3b89f1eabc
Support download referer headers and redirects 2022-09-28 00:33:15 -07:00
9f52daeec3
Reduce AutoRepair countdown
Addresses issue #197
2022-09-28 00:33:15 -07:00
dd59f94f85
Replace IOBit with UninstallView 2022-09-28 00:33:15 -07:00
2b42bf9a8c
Update sources 2022-09-28 00:33:14 -07:00
a86649cb29
Update main settings 2022-09-28 00:33:14 -07:00
f008546565
Avoid crashing if a device disconnects mid-diags 2022-09-24 19:58:41 -07:00
21da84e5e2
Update Archiso profile to match upstream changes 2022-09-23 18:25:57 -07:00
a2e1c1fad3
Remove deprecated egrep calls 2022-09-23 18:19:41 -07:00
a97a71a24a
Fix Windows 11 version reporting 2022-09-04 18:10:54 -07:00
5f69e23887
Address Pylint error W1518 2022-09-04 17:44:58 -07:00
d36589751e
Fix mount_volumes() under Linux 2022-09-04 16:57:55 -07:00
5e1cc683fe
Disable Edge first run screen
Addresses issue #193
2022-07-10 15:55:25 -07:00
72640686da
Disable "Let's make Windows even better" screens
Addresses issue #191
2022-07-10 15:48:57 -07:00
df85d3049e
Disable Windows search highlights
Addresses issue #190
2022-07-10 15:42:53 -07:00
38e867d3e3
Lower default skip-size values 2022-07-09 18:52:51 -07:00
9e874f8034
Fix bug locking ddrescue-tui to pass Read-Skip 2022-06-24 10:36:10 -07:00
989fe9f047
Add workaround in Open Shell for S0 LOW POWER IDLE
If the system supports that power state Open Shell can't enter sleep
mode.  The workaround removes the standard sleep option from the list
and adds a new sleep button above the shutdown button that just turns
the monitor off.

Addresses issue #719
2022-06-16 19:27:05 -07:00
301c64be4c
Assume bytes for bare numbers in string_to_bytes() 2022-05-24 16:23:27 -07:00
c4009517e4
Include ddrescueview in Linux builds. 2022-05-24 12:35:34 -07:00
7b13b7de26
Remove useless replace() call 2022-05-24 12:35:10 -07:00
b4547c3555
Remove magic numbers 2022-05-21 17:38:28 -07:00
7abd4c21c3
Refactor Disk children sections
Child devices are not added by default to improve performance.
Disk.children is always present to avoid overly cautious lookups.
2022-05-21 15:03:44 -07:00
193d207d5b
Fix mount-all-volumes 2022-05-21 15:03:34 -07:00
e03956f2fe
Convert Disk description to a property 2022-05-21 14:39:42 -07:00
1616379398
Update mount_volumes to match build_volume_report 2022-05-21 14:35:25 -07:00
29d4e80f7e
Refactor get_disks_macos() to improve performance
Found a way to easily exclude disk images from the list under El Cap
2022-05-20 19:44:12 -07:00
544ffb1aff
Refactor partition table type lookup sections 2022-05-20 17:58:07 -07:00
cf7ed909b3
Remove Python 3.10 requirement 2022-05-20 17:08:10 -07:00
fddd77e6fd
Fix typehint typo 2022-05-19 17:27:49 -07:00
0370ba213b
Add unmount aliases 2022-05-19 15:13:50 -07:00
068f1773aa
Update Linux mount volume sections 2022-05-18 14:59:14 -07:00
4d34e868b2
Update Linux package lists 2022-05-16 15:07:15 -07:00
5fc5cda86d
Avoid adding duplicate attribute failure notes 2022-05-14 17:51:43 -07:00
0ecc4d4146
Add test mode to Hardware Diagnostics
Addresses issue #192
2022-05-14 17:48:04 -07:00
47308c1508
Allow non-integer number of minute countdowns 2022-05-14 16:19:18 -07:00
19e86e0ba0
Update HiDPI sections 2022-05-12 20:35:14 -07:00
eb0e13e794
Patch st to use .Xresources
Enables support for HiDPI systems
2022-05-12 20:35:14 -07:00
859bc990e0
Fix destination size checks
Addresses issue #166
2022-05-01 16:53:48 -07:00
af13a88c81
Merge branch 'refactor-hw' into dev 2022-05-01 16:35:19 -07:00
6642aad2c8
Update ddrescue-tui to use new Disk object vars 2022-05-01 16:20:39 -07:00
2585ed584c
Refactor disk safety checks 2022-04-18 09:21:29 -07:00
95cd3b645d
Remove SMARTSelfTestInProgressError sections
Going forward this is a non-blocking error.
2022-04-11 16:50:21 -06:00
d667695e9e
Move surface scan check to its own function 2022-04-11 14:30:42 -06:00
af8b2b7dd3
Refactor SMART self-test sections 2022-04-08 19:19:23 -06:00
41b4ffd9fb
Cleanup pylint sections 2022-04-08 18:38:55 -06:00
312df1ee9d
Refactor import logic for wk.hw.diags 2022-04-08 15:38:03 -06:00
20f91f01d1
Add type hints to hardware functions 2022-04-06 19:08:23 -06:00
3d7881328f
Move ddrescue out of wk/hw section 2022-04-06 19:08:09 -06:00
f79e578aaf
Remove pylint warning from sensors 2022-04-06 16:23:44 -06:00
46eb737dc8
Move SMART functions to their own file 2022-04-06 16:22:58 -06:00
99dd7661d4
Split hardware diagnostics into multiple files 2022-04-05 18:11:06 -06:00
fc2bb07d11
Track test groups as list instead of a dict
By only including selected tests we can skip checking for the
enabled/disabled status.  This will also simplify the process
of disabling future tests for a disk if a failure is detected.
2022-04-05 14:45:14 -06:00
5ffa6d8261
Replace references to details with attributes 2022-04-04 18:58:45 -06:00
4647efb971
Fix broken import 2022-04-04 18:33:03 -06:00
8582046948
Update HW diags and ddrescue to use new HW classes 2022-04-04 18:31:52 -06:00
56e145942a
Update generate_object_report() to handle slots 2022-04-04 18:31:15 -06:00
172cb398ba
Convert hardware objects to dataclasses 2022-04-04 18:30:21 -06:00
a3abf03a23
Merge branch 'new-ddrescue-arguments' into dev 2022-03-31 17:40:46 -06:00
8dd8701e8d
Split read phase into two parts
Addresses issue #184

The first read phase will skip a lot more to try to recover more data
from the whole source.  Then the second read phase will fill in like
the previous configuration.
2022-03-25 18:45:28 -06:00
4817fe6d1f
Use larger --skip-size by default 2022-03-25 16:53:29 -06:00
817cfc3de7
Skip --reopen-on-error by default for all presets 2022-03-25 15:48:00 -06:00
2a70997a6c
Use sessions in requests when downloading files 2022-03-10 15:36:58 -07:00
4e61025e99
Fix --sector-size argument 2022-03-08 13:02:33 -07:00
b66f25dfea
Only open ddrescueview if running with a DISPLAY 2022-03-08 12:36:49 -07:00
b82493b12b
Generate new map files when starting a recovery
This is done to define the domain size and let us use --complete-only.

This also enables us to open ddrescueview immediately since that tool
requires a valid map file from the start.  If you open an empty map
file ddrescueview doesn't auto-reload the file correctly.

Addresses #184
2022-03-08 11:55:23 -07:00
9d2eb8b175
Fix initial and max skip sizes
ddrescue's minimum is 64KiB so we should respect that.

Addresses #184
2022-03-08 11:53:56 -07:00
ea9e3b3696
Disable broken --sector-size argument
Addresses #184
2022-03-08 11:52:04 -07:00
c3ec690318
Add new ddrescue argument options
Addresses #184
2022-03-07 23:49:15 -07:00
b750432381
Update archiso profile with upstream changes 2022-02-24 17:03:10 -07:00
f58f6d9da1
Update source URLs 2022-02-23 12:47:22 -07:00
027052ee70
Replace hardinfo with hardinfo-gtk3 2022-02-22 13:21:18 -07:00
fe81ccbaff
Replace Alacritty with custom st build 2022-02-22 13:20:59 -07:00
4a0c0d35bc
Add support for locally tracked AUR packages 2022-02-22 13:18:39 -07:00
a35ffdda23
Open ddrescueview during recovery
Addresses issue #182
2022-02-20 18:10:13 -07:00
0ecb7e2933
Update README.md 2022-02-14 03:44:14 -07:00
82a2e7f85c
Add support for renaming macWK boot.efi files
This prevents those boot entries from appearing in the macOS boot menu
2021-12-14 21:04:44 -07:00
6b3524cde8
Update build_macos to support more CLI arguments
If STANDALONE is set then the boot files are left intact.
If STANDALONE is not set then the image is unblessed.

Addresses #178
2021-12-14 21:04:44 -07:00
ef5c61caa9
Add more README.md files
Addresses #177
2021-12-14 15:30:32 -07:00
32d7cd44ff
Save extra image list to UFD to support --update
Addresses #176
2021-12-14 15:08:01 -07:00
a19714d735
Skip CPU tests by default for TestStations
Addresses #179
2021-12-14 14:08:22 -07:00
8075dfe45c
Fix run_adwcleaner() 2021-12-13 22:07:05 -07:00
dc52eba172
Add missing mtools package 2021-12-13 21:16:53 -07:00
3f678e1920
Set correct permissions for authorized_keys 2021-12-13 21:13:50 -07:00
0fb62f4bcd
Add missing memtest86-efi package 2021-12-13 21:13:33 -07:00
125431a767
Update XMPlay skin 2021-12-13 19:29:19 -07:00
3ebfdbbedb
Update tool versions 2021-12-13 17:54:29 -07:00
a7d359e2b0
mprime requires boost to compile 2021-12-09 00:01:29 -07:00
c0e29e5a57
Switch to libldm from ldmtool (AUR) 2021-12-09 00:01:03 -07:00
0e56ccccfd
Remove extraneous registry hive names 2021-12-08 21:26:04 -07:00
93b2422044
Refactor Autologon sections
In some cases when Autologon was skipped initially it was still called in
end_session().  This caused old passwords to be reinstated in some cases.
2021-12-08 21:17:27 -07:00
8ecac36a64
Fix Secure Boot sections 2021-11-10 22:59:25 -07:00
7006a6453d
Add debug console launcher 2021-11-07 19:31:16 -07:00
5fb6dc4205
Fix volume free percentage calculation 2021-11-07 17:35:40 -07:00
6f0ae5a6ad
Set AdwCleaner settings before running 2021-10-28 23:15:28 -06:00
88373c5e10
Update rofi theme 2021-10-28 04:15:39 -06:00
7dac69de14
Fix LibreOffice XCU data 2021-10-27 20:39:45 -06:00
4c0afb498b
Set custom power plan description 2021-10-27 20:25:49 -06:00
545cc20e48
Add support for more encodings for profiles.ini 2021-10-27 20:01:05 -06:00
49e8d5c894
Remove FastCopy setup after extraction 2021-10-27 19:37:19 -06:00
627994973d
Fix bug in build_linux 2021-10-27 18:06:07 -06:00
9fb5a221fb
Remove unused borrowed script 2021-10-27 18:05:43 -06:00
a18a8f8156
Set custom power plan name and sleep timeouts 2021-10-27 18:03:52 -06:00
d3f5cccdb2
Update disable_chrome_notifications() 2021-10-20 23:08:48 -06:00
194f694309
Fix Windows Defender passive mode check 2021-10-20 22:40:41 -06:00
a5a96dd598
Drop 7za in favor of the full version 2021-10-20 21:59:49 -06:00
b331022520
Replace fgrep usage with grep -F 2021-10-20 21:02:11 -06:00
98f3ebb49e
Change how OS_VERSION is set
By only using the float type for 8.1 we can just print OS_VERSION to get
7, 8, 8.1, 10, and maybe 11?

To future me, sorry if you decide to add type hints to the project.
2021-10-20 20:51:04 -06:00
6a9299dea1
Add bad workaround for now 2021-10-15 02:30:03 -06:00
6d0d929c44
Hide HWiNFO sensor tooltips 2021-10-15 01:24:57 -06:00
7940e3a219
Avoid crash if profiles.ini is using UTF-16 LE BOM 2021-10-15 01:19:24 -06:00
fd27af040b
Accept the Autologon EULA automatically 2021-10-15 01:06:02 -06:00
2f655787e5
Avoid if quitting Auto Repairs without running it
i.e. Opened the script, get to the main menu, and then exit.
2021-10-15 01:04:36 -06:00
cc95bbe68b
Add embedded_python_env.py
Allows for faster debugging when using the embedded version of Python.
2021-10-14 23:59:26 -06:00
7388d94c50
Fix bugs 2021-10-14 23:58:46 -06:00
5d54b6de4b
Use correct bit-depth tools when building the kit
If you use the 32-bit version of ConEmu and/or? Python on a 64-bit OS
then psutil will throw access denied errors when trying to wait for
processes.
2021-10-14 23:55:12 -06:00
ca45fe800f
Remove unused build_additions 2021-10-14 23:24:04 -06:00
c66c39669c
Fix typo 2021-10-14 22:38:04 -06:00
22bde273f2
Add warning that WinPE is under development 2021-10-14 22:36:39 -06:00
2efd84b1df
Preserve ACL in FastCopy
Addresses issue #160
2021-10-14 20:32:51 -06:00
135e7e5d78
Add missing launchers 2021-10-14 20:19:16 -06:00
1ff17f4bb8
Support Prog32.exe stile naming in launchers 2021-10-14 20:12:34 -06:00
1f41a67350
Updated OpenShell sections
There's no point in downloading very X days if the URLs are version locked.
2021-10-14 17:55:15 -06:00
e9d2fb6f40
Add header to README 2021-10-14 17:42:12 -06:00
c5fca8f04f
Use specific versions to select UAC settings 2021-10-14 17:40:07 -06:00
d664100c50
Remove unused folder 2021-10-13 20:56:42 -06:00
a417cc0c64
Update README files 2021-10-13 20:52:35 -06:00
e750a9c66d
Update script descriptions for consistency 2021-10-13 20:50:40 -06:00
fa6183379e
Update macOS build script and move to setup dir 2021-10-13 20:48:41 -06:00
b5021674ee
Remove old code
Finally
2021-10-13 18:31:29 -06:00
ccd6933f51
Add Windows Kit build sections 2021-10-13 17:59:46 -06:00
b7d54e1469
Apply bugfixes 2021-10-13 17:57:19 -06:00
aa0e35cbaa
Add copy_file() function to wk.io 2021-10-13 17:56:47 -06:00
0725674a3b
Update Windows kit layout and update tool configs
Going forward cbin/.cbin will only be used if necessary and not by
default.  This removes a step for most tools when used and better
aligns with the new auto_repairs and auto_setup scripts.
2021-10-13 17:51:55 -06:00
d1b32a786c
Add arch-install-scripts to live image 2021-10-09 19:42:38 -06:00
d4392b7285
Cleanup imports 2021-10-09 17:16:46 -06:00
bc0a358ac0
Update source URLs 2021-10-08 20:53:21 -06:00
2b2f371482
Use run_tool to extract ERUNT 2021-10-08 20:36:46 -06:00
a7779a9c1f
Refactor Windows kit build process for new layout 2021-10-08 20:05:08 -06:00
24269f801c
Update RegDelNull section 2021-10-02 20:02:17 -06:00
e57b859bd3
Remove unused sources 2021-10-02 20:02:04 -06:00
7db0ece687
Move msword-search back to scripts/ 2021-10-02 19:32:24 -06:00
f7e6f88b9c
Merge duplicate efforts to restore UAC defaults 2021-10-02 19:30:59 -06:00
659d71c0eb
Move repair and setup settings to wk/cfg 2021-10-02 19:19:24 -06:00
ba4edcf6f3
Cleanup wk/setup/windows dir 2021-10-02 18:58:16 -06:00
e62a008800
Disable opening news and interests on hover over 2021-10-02 18:07:00 -06:00
6a0fd46523
Add "Custom" option to Auto Setup 2021-09-30 18:55:32 -06:00
4a21ade0b4
Ask selection questions during load_preset() 2021-09-30 18:50:49 -06:00
d214e3f363
Adjust whitelist usage 2021-09-30 17:43:09 -06:00
625539c786
Avoid crash when downloading files 2021-09-30 15:37:06 -06:00
7391c863f9
Old code cleanup 2021-09-30 04:20:39 -06:00
0fc5c4b146
Add initial questions to Auto Setup 2021-09-30 03:38:25 -06:00
02055c5b30
Add open programs sections to Auto Setup 2021-09-30 02:00:16 -06:00
bd0a03e283
Combine browser configuration menu options 2021-09-30 01:59:26 -06:00
eacab48c1e
Add 4K alignment checks to Auto Setup 2021-09-29 20:31:46 -06:00
f1645f80e6
Add AV check to Auto Setup 2021-09-29 20:27:35 -06:00
30e43b9814
Add storage status sections 2021-09-29 19:56:49 -06:00
526f6e26eb
Add installed RAM sections 2021-09-29 01:24:07 -06:00
337b6d95e1
Add activation and Secure Boot sections 2021-09-29 00:59:06 -06:00
423cd343fb
Add show_os_name() with support status checks 2021-09-28 23:23:05 -06:00
d725837f9b
Add AIDA64 sections
Replaced old report profiles with a new basic profile.
Several sections that just slow down the process have been removed.
2021-09-28 19:21:30 -06:00
f0451a9803
Adjust Windows-specific imports and STATIC VARS 2021-09-28 18:34:50 -06:00
90fb97ad91
Fix various pylint warnings 2021-09-27 21:48:11 -06:00
2e485505d4
Skip backup sections if backup previously run 2021-09-27 21:21:09 -06:00
8289df1d62
Don't prepend exception name for WK generic types 2021-09-27 20:49:39 -06:00
528602d98e
Check if activated before getting the BIOS key 2021-09-27 20:48:55 -06:00
bc320b4d87
Add remaining 'Configure System' sections 2021-09-27 20:48:19 -06:00
f9d4b1e3a3
Add UAC sections 2021-09-27 19:44:25 -06:00
7009a074c7
Add BSoD minidump sections 2021-09-27 19:30:12 -06:00
cb3ec42b92
Add functions to disable Chrome notifications 2021-09-27 18:41:34 -06:00
b61f243cc8
Disable display sleep only during auto-repairs 2021-09-27 16:51:01 -06:00
a03d772788
Add software bundle sections 2021-09-27 16:41:57 -06:00
49d7e6d78a
Misc updates 2021-09-25 20:39:08 -06:00
68d8e292cc
Restrict OpenShell installs to Windows 10 2021-09-25 20:37:39 -06:00
b05835d80f
Enable uBlock Origin in more browsers 2021-09-25 20:35:47 -06:00
14ff5a9437
Add Firefox and uBlock Origin sections 2021-09-25 18:11:05 -06:00
578925cb70
Add Open-Shell install sections 2021-09-15 18:02:36 -06:00
38fd38f1ec
Support suffixes other than exe for kit tools 2021-09-15 16:38:11 -06:00
90f2a37531
Rename wk/cfg/tools.py to wk/cfg/sources.py 2021-09-15 16:37:25 -06:00
bec4ed520c
Add LibreOffice install sections 2021-09-15 12:25:32 -06:00
3d984f5f29
Import standard repair functions instead of auto 2021-09-15 09:58:01 -06:00
673a92b323
Add install_vcredists() 2021-09-15 09:56:09 -06:00
e485cc9674
Add Auto Setup scripts 2021-09-15 09:18:02 -06:00
ae4a72036d
Extract ERUNT before running 2021-09-14 19:14:44 -06:00
e90b59853c
Update launch scripts to use new config location 2021-09-14 19:14:01 -06:00
56a8ffea03
Fix path to main.py config file 2021-09-13 20:45:16 -06:00
7dfd399e6e
Update __init__.py files 2021-09-13 18:42:36 -06:00
0e124dc1f2
Skip Autologon cleanup if it wasn't used
We found in a few cases systems starting requiring logon passwords after
Auto Repairs were run.  Autologon might be the cause so we should avoid
running it, and the cleanup, if settings are already present.

Addresses issue #175
2021-08-31 17:06:38 -06:00
e7f6dc6b86
Remove erroneous docstring 2021-08-25 16:05:38 -06:00
24b3c7a8a9
Fix MemTest86 boot entry in rEFInd 2021-08-25 15:55:51 -06:00
c2353ad859
Update archiso profile to match upstream changes 2021-08-25 15:38:38 -06:00
3189fc464a
Add macOS boot options 2021-08-25 12:32:55 -06:00
547038c560
Include our boot files in build_linux ISO files 2021-08-24 20:57:17 -06:00
8cdfb244e8
Enable teststation customization using local files
/run/archiso/bootmnt is only available if booted without using copytoram
2021-08-22 16:16:40 -06:00
7ce67c7844
Add pv package 2021-07-24 19:28:22 -06:00
5620ac882a
Apply more fixes for Alacritty 2021-07-24 19:27:53 -06:00
0a6f0f200b
Drop termite-terminfo package 2021-07-24 18:28:17 -06:00
f61f4397d2
Remove unused .Xresources file 2021-07-24 18:08:19 -06:00
6031b73fb5
Replace termite with alacritty
Termite was removed from the main Arch repos and the devs are
recommending this instead
2021-07-24 18:07:23 -06:00
628592f958
Fix Mac memtest tool sections 2021-07-24 02:40:45 -06:00
dd50852a68
Enable numlock in Linux 2021-07-23 22:58:28 -06:00
07bddaae54
Include memtest in macOS builds 2021-07-23 22:17:32 -06:00
bf6482a594
Fix possible crash in reset_windows_updates()
Auto Repairs could end up in an endless boot loop if
SoftwareDistribution.old exists before running
2021-07-23 21:58:47 -06:00
8a685d4e60
Add option to include extra images in build-ufd 2021-06-30 01:02:03 -06:00
f9f947fab6
Update wk.std.bytes_to_string() 2021-06-29 22:40:40 -06:00
9c5767f71f
Update CPU testing sections 2021-06-23 23:33:45 -06:00
e4fbc7fe69
Prevent 100% CPU usage in NonBlockingStreamReader 2021-06-23 23:30:19 -06:00
d76dca8fd7
Catch and log missing commands
It's better to be explicit in what's going wrong in the case of
a missing command or program.
2021-06-23 21:33:27 -06:00
3cf371177c
Move broken msword-search script to review folder 2021-06-22 20:16:46 -06:00
8e0fdf641b
Retest temps with sysbench if Prime95 runs too hot
If the CPU reaches the failing temps during Prime95 then sysbench will be
run to emulate a less artificial workload.  The both the overall and sysbench
max temps are recorded and shown in the results.

Added new option to track an alternate max temp value in wk.hw.sensors.
This was needed so show two different max temps recorded during CPU testing.

Sysbench was added to the Linux package list and is compiled for macOS.
Without manually compiling the package it brings in way too many dependencies
to support SQL DB testing (which we don't need).
2021-06-17 03:16:34 -06:00
bfea4b9910
Re-add missing ddrescue package to Linux image 2021-05-17 14:57:24 -06:00
93de0645cd
Use custom power plan during Auto Repairs 2021-05-14 15:38:54 -06:00
527a5b2e97
Avoid crash during HW Diagnostics 2021-05-13 21:32:46 -06:00
32b25f912d
Remove with_stem() usage to support Python 3.8 2021-05-13 21:30:52 -06:00
f3e3483b46
Support new Archiso layout in UFD sections 2021-05-13 21:30:32 -06:00
a5b0758d30
Adjust exception formatting in TryAndPrint() 2021-05-13 21:08:38 -06:00
e83bcb864c
Fix Autologon sections 2021-05-13 21:04:39 -06:00
6d3c74e71e
Update Linux package lists 2021-05-08 02:14:46 -06:00
de6ee523b0
Add support for running on Python 3.8 2021-05-07 23:51:48 -06:00
1f618a4152
Run AVRemover on first run of Auto Repairs 2021-05-07 23:50:34 -06:00
b7b8f20e24
Add timezone check to Auto Repairs 2021-05-07 18:18:38 -06:00
59fd85429c
Abort on KeyboardInterrupts 2021-05-07 02:38:55 -06:00
d2fb8250bc
Update backups and quarantine paths 2021-05-07 02:24:57 -06:00
bde9863b98
Add backup browsers sections 2021-05-07 00:31:26 -06:00
4928989913
Fix bug in download_tool()
Skip check to ensure the correct architecture path is returned.
2021-05-05 23:56:12 -06:00
6a00444bd4
Support multiple architectures in get_tool_path()
This change was necessary to avoid using the wrong paths for
tools with speparate executables for different architectures.
2021-05-05 23:29:29 -06:00
4872a18e91
Support tools with multiple architectures 2021-05-05 23:10:38 -06:00
acc3a4dccc
Add extract_tool() function 2021-05-02 02:16:34 -06:00
461bc8ac9c
Merge branch 'auto-repair' into dev 2021-05-02 01:10:45 -06:00
e9db4238ff
Run Autologon before any scans 2021-05-01 21:17:42 -06:00
b1acb6a076
Remove placeholder functions 2021-05-01 20:49:28 -06:00
2d4ae65188
Run KVRT in new pane under ConEmu 2021-05-01 20:41:24 -06:00
6b35d4165d
Add download_tool() function 2021-05-01 20:04:50 -06:00
9b6bfa2760
Make Sync Clock optional 2021-05-01 20:01:01 -06:00
ff43bc79b8
Add uninstaller sections 2021-05-01 20:00:46 -06:00
080e440d23
Add AdwCleaner sections 2021-05-01 19:28:07 -06:00
04b2c1c9d9
Add Microsoft Defender sections 2021-05-01 19:14:32 -06:00
03000662fe
Add KVRT sections 2021-05-01 17:12:11 -06:00
cf8b600dd5
Drop extraneous SYSTEMDRIVE lookups 2021-05-01 17:00:48 -06:00
f706a48f60
Add HMP sections 2021-04-30 03:26:45 -06:00
bdbed4622e
Add BleachBit sections 2021-04-30 02:59:19 -06:00
77920db5b5
Add missing default UAC setting 2021-04-30 02:58:02 -06:00
06b0ff81e1
Add Auto Repairs init functions 2021-04-30 02:09:43 -06:00
e488b2c89c
Avoid crash when downloading tools 2021-04-30 02:08:50 -06:00
447e93ca3a
Resume in ConEmu if started in ConEmu 2021-04-30 00:19:33 -06:00
7f40a52444
Add remaining Windows Repairs functions 2021-04-30 00:06:22 -06:00
e17c96d465
Add auto_chkdsk() 2021-04-29 21:14:12 -06:00
973dad3240
Add "auto_" windows updates functions 2021-04-29 20:17:24 -06:00
078859838a
Add 'Backup Settings' group functions 2021-04-24 20:24:39 -06:00
a7db972ba5
Get repair functions by name instead of full path 2021-04-24 20:23:08 -06:00
1dbad4bafe
Split result variables to result and message
result is for the return variable from TryAndPrint calls.
message is the text to display or save to the registry.
2021-04-24 20:18:45 -06:00
b2c94113d9
Remove date from DEFAULT_LOG_DIR 2021-04-24 19:03:41 -06:00
005d4d1ea6
Search all modules for a matching exception 2021-04-24 16:55:17 -06:00
9a77a5cb9b
Update Auto Repair sections
* Expanded saving/loading settings from registry
* Keep previous selections by default but allow changes
* Print previous session(s) to have the whole session info present
* Changed variable names for clarity (why am I so bad at this?)
2021-04-23 23:57:22 -06:00
10b443f0f5
Add framework for running auto repair groups 2021-04-23 03:20:32 -06:00
c2d3752bc5
Update TryAndPrint() 2021-04-21 23:57:19 -06:00
d200878e0d
Revert update() to private method and add wrapper 2021-04-21 22:27:49 -06:00
125907ed3a
Add Auto Repairs menus 2021-04-21 05:19:27 -06:00
3c748520e1
Don't suppress bells in ConEmu 2021-04-20 22:23:05 -06:00
ee3203c485
Show message when downloading tools 2021-04-20 22:06:03 -06:00
b44fda2ccd
Avoid clobbering files when downloading tools. 2021-04-20 21:14:31 -06:00
cb825e37ba
Add support to run tools from .cbin or online 2021-04-19 01:04:18 -06:00
b8335188ce
Add wk.kit.tools
For code related to downloading, finding, and running tools on the kit.
2021-04-17 17:49:04 -06:00
65cb8481bc
Add wk.repairs section 2021-04-17 14:10:30 -06:00
fd7a8c4066
Add Windows service functions 2021-04-17 12:13:24 -06:00
9351b597c2
Avoid potential crash in run_chkdsk_online() 2021-04-17 11:38:06 -06:00
d722e587b1
Expand warning notice for ddrescue-tui under macOS 2021-04-17 11:26:00 -06:00
7064472e0b
Fix SFC scan 2021-04-16 03:33:47 -06:00
ffa2df416b
Set source drive to sleep instead of detaching it 2021-04-16 01:07:56 -06:00
e088f705ba
Add run_dism() 2021-04-15 23:33:11 -06:00
47b49077da
Show CHKDSK progress in separate pane under ConEmu 2021-04-15 23:31:08 -06:00
943c1e11b9
Retry CHKDSK on failures
Fixes issue #159
2021-04-15 21:13:28 -06:00
ed6f188eb2
Avoid pylint errors under Linux/macOS 2021-04-15 20:04:33 -06:00
759cd12379
Reoder Windows functions 2021-04-15 19:48:36 -06:00
f1592b92a6
Reduce macOS image size
Having a DMG also allows us to use dmg2img to convert into a raw HFS+
image.  That image can be applied to a partition using dd under Linux.
2021-04-15 01:30:56 -06:00
20fe08dbb4
Get correct size for child dev under macOS 2021-04-14 02:16:58 -06:00
a4ee7b890c
Disable image mode in ddrescue-tui (for now) 2021-04-13 23:16:55 -06:00
d781038e88
Enable ddrescue-tui under macOS
Currently limited to only cloning whole disks, not select partitions.
We need to specify the --size due to a bug under macOS; it fails to
detect the size of the device/partition and reports 8192 PiB instead.
2021-04-13 02:18:17 -06:00
535455813c
Use the new command name for pipes.sh 2021-04-11 15:30:32 -06:00
b047b28f30
Fix typo 2021-04-11 15:27:51 -06:00
719e6c457d
Remove stale code 2021-04-10 17:37:46 -06:00
0ed814786a
Show help screens for hw-diags and ddrescue-tui 2021-04-09 18:51:32 -06:00
66bf189e55
Disable benchmark tests on surface scan failures 2021-04-09 03:02:28 -06:00
b3a667641d
Show failed attributes during surface scans 2021-04-09 02:29:06 -06:00
ce8dddd9b7
Include note if attributes fail mid-diagnostics 2021-04-09 02:27:11 -06:00
812fd15011
Add more pylint cleanup fixes 2021-04-09 00:15:59 -06:00
2761018a37
Ensure /media is created in build_linux
Without this udevil will fail until it's created.
2021-04-09 00:06:22 -06:00
9d3508909a
Add DRIVE_POWEROFF_TIMEOUT to wk.cfg.ddrescue
This replaces a magic number
2021-04-08 23:40:00 -06:00
830e088ccf
Report if the dest starts failing during recovery 2021-04-08 23:17:00 -06:00
5a2d35d3cc
Prevent recovering to wrong devices or paths
Before starting a recovery run verify the source and destination have
not changed.  This will prevent issues on some extreme edge cases but
the main goal is for disappearing source drives with heavy damage.

e.g. A very damaged source drive disappears mid-recovery, drops off and
before would need a restart, or unplug/replug, to continue.  Now we can
attempt to re-detect the drive and resume recovery without leaving the
script.  If for some reason the drive order were to change then we'll
avoid using the wrong source or destination device.
2021-04-08 23:09:00 -06:00
43fd30322e
Expand checks for missing source or destination
Addresses issue #155
2021-04-08 22:43:13 -06:00
18bc139d25
Add 'Detect drives' option to ddrescue-tui 2021-04-08 20:55:28 -06:00
c452256fe7
Fix pylint issues in wk/hw/ddrescue.py 2021-04-08 20:49:21 -06:00
1a3b57da66
Poweroff source drives after ddrescue errors
Addresses issue #165
2021-04-08 19:41:05 -06:00
9eb782e2b7
Remove macOS override to default log path
Isn't needed since we're setting $HOME and including a symlink.
i.e. /var/root/Logs --> /Volumes/RAM_Disk/Logs
2021-04-06 17:06:48 -06:00
9478000cdf
Add Clock Sync option to HW-Diags menu under macOS 2021-04-06 16:57:31 -06:00
61f2b00a2a
Export SMC data in HW Diagnostics
Addresses issue #154
2021-04-06 15:53:19 -06:00
8e5d350ac2
Update default log dir under macOS 2021-04-06 15:52:57 -06:00
cce8651e00
Update launch-in-tmux to avoid some error messages
If tmux wasn't already running it would output an error but still work.
The new approach will suppress that since we're not concerned if it's
already running or not, just whether the desired session is.

Modified the live macOS args to support connecting to the HW-Diags
session remotely (more easily at least).
2021-04-05 16:46:01 -06:00
50e4164bf8
Apply bugfixes for macOS sections 2021-04-05 16:44:45 -06:00
ecbbf5511c
Set macOS localtime using main.cfg
Not sure where the old reference to an "other" timezone came from.
Going to use the POSIX style esp. after finding the answer below.
Thankfully both options appear in macOS 10.11-10.15 in my testing.
https://stackoverflow.com/a/4309852
2021-04-04 03:24:56 -06:00
695bf03bcb
Add fixes for High Sierra 2021-04-04 03:18:59 -06:00
b3e7b55635
Add fixes for El Capitan 2021-04-04 03:14:59 -06:00
aa6f7088ab
Copy networksetup to live macOS 2021-04-02 19:30:05 -06:00
cd2b5b997f
Fix wallpaper path in macOS Terminal.app 2021-04-02 18:43:34 -06:00
c8d473ba7d
Drop unused iTerm2 preferences 2021-04-02 18:41:31 -06:00
76f74b770b
Update macOS setup files 2021-04-02 18:34:13 -06:00
d2f9e9fd2f
Add option to have separate macOS wallpapers 2021-04-02 02:08:22 -06:00
0ebfbb51b1
Add macOS wallpaper 2021-04-01 23:06:48 -06:00
cdbc300ea2
Add SSH server to live macOS builds 2021-04-01 22:59:31 -06:00
7215c3242b
Connect to WiFi before starting HW Diagnostics 2021-04-01 22:58:56 -06:00
0aefdf3f1a
Add support to build live macOS Catalina images
* Had to drop iTerm due to a library incompatibilty
2021-04-01 22:54:36 -06:00
a36dd24ae9
Add install-deps script for macOS 2021-04-01 22:17:45 -06:00
21627180c3
Update wk-power-command to support macOS 2021-04-01 22:07:47 -06:00
c49391d05a
Update clock under live macOS env 2021-03-26 03:04:21 -06:00
5b4139e3c8
Add missing live-macos branch
This was not being pushed from a testing MacBook so I'm adding it all
at once. This is unfinished, still needs scripts to prep the working
macOS env from which the live env is built.

El Capitan code is likely to be dropped completely. Installing or
compiling dependencies in brew is problematic at this point.
2021-03-26 01:18:08 -06:00
ae42634a8e
Add SMART override for some Samsung devices
* Addresses issue #163
2021-03-26 00:57:08 -06:00
1a38a6d6a3
Remove stale code 2021-03-25 23:43:10 -06:00
1a70ad0c63
Generate iwd network profiles
* Addresses issue #162
2021-03-25 23:39:48 -06:00
ba5efedb11
Remove pylint bad-whitepace references 2021-03-25 21:25:40 -06:00
9818d5196f
Export state objects as pickle files
This should better ensure debugging an issue will have all the relevant
info at the ready.
2021-03-25 21:15:56 -06:00
3f48b10942
Apply "temp" fix for macOS HW-Diags 2021-03-25 21:11:21 -06:00
7fdab1b1e6
Fix typo 2021-03-25 15:14:37 -06:00
1f4a3c6e55
Avoid crash when parsing special mountpoints 2021-03-25 14:37:02 -06:00
876ac668c1
Use new refind package 2021-03-25 00:08:49 -06:00
4892f4c419
Update Linux theme 2021-03-24 23:47:25 -06:00
6b9e5cad9f
Update year in LICENSE.txt 2021-03-24 21:46:04 -06:00
635b54ff07
Merge branch 'refactor-archiso' into dev 2021-03-24 21:44:39 -06:00
2e5621bf6e
Add new rofi theme 2021-03-24 21:37:40 -06:00
1353de44f7
Merge refactored code
NOTE: This was unintentionally squashed so some details were lost

* Include max CPU temp in Conky
* New tint2 theme
2021-01-10 19:55:19 -07:00
118012d7e2
Merge refactored code
NOTE: This was unintentionally squashed so some details were lost

* Major updates to build_linux to support the current archiso scripts
* Most customize_airootfs.sh code has been moved elsewhere
  * Using static files or links where possible
  * Generating other files as needed in build_linux
* Syslinux configuration has been simplified
* Dropped i3
* Dropped rxvt-unicode in favor of termite
  * Font rendering broke one too many times
* Dropped NetworkManager in favor of iwd/systemd-networkd
2021-01-10 19:28:51 -07:00
b081d79fab
Change file layout for new archiso usage 2021-01-10 19:09:10 -07:00
2497fec389
Merge branch 'project-overhaul' into dev 2021-01-10 17:24:54 -07:00
31cd8d1e56
Fix items_not_found logic 2021-01-10 17:19:27 -07:00
ce912e9525
Update windows_builds.py to include 20H2 2021-01-09 21:15:07 -07:00
7d77aa81b0 Update sensors.py to improve CPU data
Include AMD CCD sensors
Exclude current sensors
2021-01-09 21:08:53 -07:00
830395f672 Update windows_builds.py to include 20H1 2021-01-09 21:07:45 -07:00
9a53d4adad
Updated log handling to support Windows 2020-04-26 16:28:23 -06:00
6c775bbba7
Adjusted running as root checks
* Suppress pylint errors when checking uid/euid/gid
  * Helpful when checking under Windows
* Allow running wk.exe.stop_process() under Windows
2020-04-26 16:24:35 -06:00
d0d74b8763
Support creating emtpy keys in reg_write_settings() 2020-04-07 23:23:11 -06:00
8753344665
Added reg_write_settings()
* Replaces old write_registry_settings()
* Uses tuples to combine all parts of the values
  * e.g. ('SampleValue', 'SampleData', 'SZ', '32)
  * This will allow merging multiple setting groups together
  * Should be more readable than the old method
2020-04-07 23:05:40 -06:00
818e321682
Added alias for ip
* Use brief reporting with colors
2020-04-06 19:46:36 -06:00
24dbdf29fd
Added Windows Registry functions 2020-04-06 19:46:09 -06:00
a4df2f41d3
Added wk.exe.stop_process()
* Replaced wk.hw.ddrescue.stop_ddrescue()
2020-02-25 20:52:08 -07:00
45a6b31910
Added periodic destination health check
* Addresses issue #158
2020-02-25 20:45:59 -07:00
94a428f6da
Added check for missing source/destination
* Addresses issue #155
2020-02-25 20:15:13 -07:00
0a00e17536
Avoid another rare crash when saving average temps 2020-02-17 16:54:51 -07:00
1f1fdfc738
Avoid rare crash when saving average temps 2020-02-17 16:44:33 -07:00
a354e67642
Merge branch 'project-overhaul' into dev 2020-02-03 18:11:07 -07:00
3b640ac85b
Addressed issue #153 2020-02-03 18:09:46 -07:00
e773a05265
Bumped year in LICENSE.txt 2020-02-03 17:25:44 -07:00
5ca0127e46
Merge branch 'project-overhaul' into dev 2020-01-30 20:05:32 -07:00
e301617ca0
Revert "Adjusted menus under live macOS"
This reverts commit 4a3981e10c.
2020-01-30 20:05:15 -07:00
6cee9930c1
Merge branch 'project-overhaul' into dev 2020-01-30 14:03:11 -07:00
a66c27be84
Updated get_disk_details_macos() 2020-01-30 14:01:30 -07:00
ebbdedef6c
Added get_fstype_macos() 2020-01-30 13:59:12 -07:00
ad1adba837
Add APFS and HFS/HFS+ to RECOMMENDED_MAP_FSTYPES 2020-01-30 13:51:23 -07:00
6eb75c38a3
Report if item(s) are missing during build-ufd 2020-01-30 13:48:51 -07:00
64db679a4d
Allow setting verbose value for TryAndPrint obj
* Instead of strictly per-call
2020-01-30 13:47:59 -07:00
154acc5280
Run build-ufd as current user
* sudo is used for elevated commands instead
* Avoids splitting logs between root and current user
* Addresses issue #150
2020-01-30 13:36:43 -07:00
06d1f0551b
Dropped oblogout usage in opembox menu 2020-01-30 13:31:34 -07:00
da4b50afb4
Merge branch 'project-overhaul' into dev 2020-01-30 13:30:16 -07:00
385b2158fd
Improved method to avoid crash during self-tests 2020-01-30 13:28:52 -07:00
dc6dcfb845
Revert "Avoid crash during SMART self-test"
This reverts commit cc8c0992f6.
2020-01-30 13:25:46 -07:00
c8f95d866a
Typo fix 2020-01-30 13:24:49 -07:00
86f0f1e5fd
Avoid rare crash concerning disk attributes
* Crash would occur under these circumstances:
  * Disk Attributes test was not selected
  * One or more other disk tests were selected
  * A non-blocking attribute error was detected
2020-01-30 13:16:48 -07:00
417241acb5
Fixed clearing the screen under live macOS 2020-01-30 13:09:57 -07:00
4a3981e10c
Adjusted menus under live macOS 2020-01-30 13:08:13 -07:00
c7d57ff266
Fixed logging under live macOS 2020-01-30 13:07:04 -07:00
e1943b9fb4
Strip sudo use if running as root on Linux/macOS
* Allows running under live macOS
2020-01-30 13:03:21 -07:00
41130a38ed
Fix running tmux in live macOS env 2020-01-30 13:02:41 -07:00
98032a0fed
Removed stale TODO statements 2020-01-28 19:00:47 -07:00
1a26aead44
Network test working under macOS 2020-01-28 18:38:33 -07:00
2b5e2244c1
Merge branch 'project-overhaul' into dev 2020-01-28 18:21:59 -07:00
f14f5e0d72
Adjusted logging 2020-01-28 18:21:24 -07:00
5cc0456f40
Improve performance under macOS by using rdisks 2020-01-28 18:12:53 -07:00
0c8701e3e4
Support get_disks_macOS() on older macOS versions 2020-01-28 18:10:10 -07:00
cc8c0992f6
Avoid crash during SMART self-test 2020-01-28 18:09:33 -07:00
fe50ce8994
Use new Mac fan sections in HW Diags 2020-01-28 18:08:26 -07:00
7fd3e3bada
Added Mac fan control sections 2020-01-28 18:04:21 -07:00
25d9f3d20d
Updated Mac sensor names 2020-01-28 18:00:29 -07:00
cb531fa14a
Merge branch 'project-overhaul' into dev 2020-01-24 12:28:12 -07:00
568483d49c
Updated config to use hexidecimal for sfdisk 2020-01-24 12:27:13 -07:00
145b7b76f9
Merge branch 'project-overhaul' into dev 2020-01-23 18:57:14 -07:00
9c95dcbd5c
Fixed CoreStorage scanning
* Dropped use of mktemp since sudo was interferrring
* Fixed crash if timeout occurred
2020-01-23 18:56:27 -07:00
25c532881e
Allow custom temp file suffixes 2020-01-23 18:56:11 -07:00
dc97fb079d
Merge branch 'project-overhaul' into dev 2020-01-23 14:12:04 -07:00
1b643f3918
Updated wk.kit.ufd
* Don't continue if a step fails, instead re-raise the exception
* Made the private functions public
2020-01-23 14:09:13 -07:00
019cbb6c1a
Updated TryAndPrint
* catch_all can now be set for a TryAndPrint instance
  * As opposed to defining for every TryAndPrint.run() call
2020-01-23 14:06:52 -07:00
8bcf9b032e
Merge branch 'project-overhaul' into dev 2020-01-22 23:17:12 -07:00
ea3240772e
Create mount_point before mounting source 2020-01-22 23:15:12 -07:00
b71d3479be
Updated wk.kit.ufd
* Moved TryAndPrint run_program calls to private functions
  * Only need PASS/FAIL and to hide the cmd output
* Avoid crash when searching for boot config files
* Misc Bugfixes
2020-01-22 23:11:24 -07:00
78e28bb6d2
Log wk.exe.run_program result in debug mode 2020-01-22 23:07:03 -07:00
0219f886ce
Merge branch 'project-overhaul' into dev 2020-01-22 20:59:40 -07:00
458f637d2c
Bugfix: typo 2020-01-22 20:59:24 -07:00
631c5e907f
Merge branch 'project-overhaul' into dev 2020-01-22 20:53:57 -07:00
aa1338e1b5
Don't edit main.py in build_linux
* All config files should be edited externally before building
2020-01-22 20:52:38 -07:00
e4cf588891
Fixed build_additions.txt usage 2020-01-22 20:45:40 -07:00
989ed25cf8
Merge branch 'project-overhaul' into dev 2020-01-22 15:37:59 -07:00
5cbb86abd8
Clear screen before starting diags 2020-01-22 15:37:26 -07:00
d3adc08c15
Merge branch 'project-overhaul' into dev 2020-01-22 11:26:26 -07:00
bfc17942cd
Added header to SMART self-test output
* Matches badblocks header
* Also added Initializing message
2020-01-22 11:22:47 -07:00
e92ceb070c
Adjusted I/O Benchmark screen layout 2020-01-22 11:21:49 -07:00
79abbcfaf8
Avoid crash when getting NVMe attributes 2020-01-22 11:20:39 -07:00
710fcc29dc
Catch non-blocking SMART errors between tests
* This doesn't block further tests, just ensures Disk Attributes fails
2020-01-20 18:31:29 -07:00
e59073cf20
Merge branch 'project-overhaul' into dev 2020-01-19 15:58:26 -07:00
661681b806
Fix permission issues when running GSMARTControl 2020-01-19 15:49:16 -07:00
3f9ebedfb3
Fixed Conky update script 2020-01-19 15:14:30 -07:00
1b473b1ab0
Fix pipes when run from hw-diags 2020-01-19 15:14:03 -07:00
202022c5a0
Added perl-rename to build dependencies 2020-01-19 14:28:03 -07:00
6373996c68
Merge branch 'project-overhaul' into dev 2020-01-19 14:14:01 -07:00
5e2361ba94
Reworked building Full and Minimal Linux versions
* Use a common build function and pass version to build
* Doesn't replace existing custom repo (if present)
* Addresses issue #149
2020-01-19 14:10:35 -07:00
4dce02308b
Forgot to remove statements 2020-01-17 15:31:20 -07:00
af80f53666
Merge branch 'project-overhaul' into dev 2020-01-16 20:33:21 -07:00
a01f3d04b6
Updated mount-all-volumes
* Added gui argument to open Thunar after mounting
2020-01-16 19:18:12 -07:00
45608e8346
Fixed shortcuts for hw-sensors 2020-01-16 19:00:56 -07:00
7f9cb9917d
Replaced oblogout with new wk-exit script
* Dropped oblogout due to Python2 dependencies
2020-01-16 18:57:27 -07:00
92cfe54f98
Added desktop shortcuts from dev branch 2020-01-16 18:54:19 -07:00
f16a01c6fb
Adjusted startup configuration
* picom replaced compton
* Fix conky config for i3 use in .update_x
* Improved detection of current WM in .start_desktop_apps and .update_conky
2020-01-16 17:56:49 -07:00
ac134b0a3f
Updated Conky configs
* Converted config to new Lua format
* Moved config to ~/.config/conky/
* .update_conky updated to work with above changes
* Dropped Disk and Network I/O sections
2020-01-16 17:18:16 -07:00
627c86ce7f
Removed unused .conky_start script 2020-01-16 15:16:15 -07:00
1451035560
Don't update conkyrc directly
* By using a temp file and comparing we can avoid excessive reloading of conky
2020-01-16 15:12:43 -07:00
6686a4d495
Set wallpaper in .update_x not .start_desktop_apps
* Setting a wallpaper isn't really starting a desktop app anyway
2020-01-16 14:57:31 -07:00
d0e69683b5
Changed Linux build path 2020-01-16 14:56:48 -07:00
d873013968
Explicitly request Python 3 2020-01-13 23:19:18 -07:00
23fb36cd8a
Added upload-logs script 2020-01-13 23:18:37 -07:00
c161ebac2a
Save ddrescue results to log at exit
* Instead of printing them since it should be run in tmux
  * And as such the results would be obscured from the user anyway
2020-01-13 22:11:07 -07:00
e9b1fe7819
Adjusted clone settings filename
* Use source path if the model wasn't detected
  * Avoids names like "Clone_.json"
2020-01-13 21:59:40 -07:00
f91df9f4e7
Fixed hw-diags and ddrescue-tui launchers (again) 2020-01-13 21:59:11 -07:00
bff3bbdc86
Added cdtmp alias 2020-01-13 21:58:49 -07:00
df2e4927d2
Made add-known-networks executable 2020-01-13 21:20:17 -07:00
0e602bb504
Replaced 'which' with 'command -v'
* Allows use under new Arch base package
2020-01-13 20:11:25 -07:00
6408b1abff
Fixed ROOT_DIR under new organization 2020-01-13 20:11:06 -07:00
cb0d411605
Merge branch 'project-overhaul' into dev 2020-01-13 18:24:32 -07:00
0a7fedd9c5
Fixed hw-diags and ddrescue-tui launchers 2020-01-13 18:23:17 -07:00
7b77946afe
Merge branch 'project-overhaul' into dev 2020-01-13 17:49:00 -07:00
28d9085231
Fixed getting filesystem UUID 2020-01-13 17:48:22 -07:00
6c374e9ae4
Merge branch 'project-overhaul' into dev 2020-01-13 17:25:03 -07:00
16dbffd91c
Enable SAT usage for USBs to expand SMART support
* Only enabled for USB devices
* Only enabled if attributes weren't found using --device=auto
* Addresses issue #109
2020-01-13 17:12:58 -07:00
e355fb1316
Use UUIDs instead of labels in build-ufd
* Addresses issue #138
2020-01-13 16:48:00 -07:00
24a2e60f02
Use two-space indentation everywhere 2020-01-13 16:24:56 -07:00
6c66473209
Added downstream updates to build_linux 2020-01-13 16:08:10 -07:00
d8617df871
Adjusted self-test results formatting 2020-01-13 15:45:07 -07:00
ea9a9f9a46
Pass Disk Attribute test for devices lacking SMART
* Since these can't fail I think passing them makes sense
2020-01-11 19:51:57 -07:00
c3da2557a6
Merge branch 'project-overhaul' into dev 2020-01-08 20:45:18 -07:00
ab2e9862e2
Remove Event Logs step from AIDA64 full report 2020-01-08 20:41:38 -07:00
ec3bbb83e9
Update for the new Archlinux base package 2020-01-08 20:40:34 -07:00
76a9d90ecb
Adjusted ddrescue TUI results report 2020-01-08 20:35:32 -07:00
6e3f02961c
Made load_settings() and save_settings() private
* Clears a pylint issue and makes sense to me
2020-01-08 19:50:04 -07:00
43cf4e2727
Added generate_report() to wk.hw.ddrescue.State() 2020-01-08 19:46:40 -07:00
9171ed6685
Revert SMART config used for testing 2020-01-08 19:09:55 -07:00
0a2976d9ce
Set pass/fail attributes in disk_attribute_check() 2020-01-08 19:02:09 -07:00
51224a6929
Added note to remove relative paths after testing 2020-01-08 17:02:57 -07:00
b101809e42
Merge branch 'project-overhaul' into dev
* Linux side is done
2020-01-08 15:47:07 -07:00
a7bb7e1e23
Updated .gitignore 2020-01-08 15:04:40 -07:00
da6f818d90
Updated build_linux for use under new organization 2020-01-08 14:59:54 -07:00
7702cdcf0a
Finished converting UFD sections, testing next 2020-01-07 23:53:55 -07:00
8b9672313a
Added ufd settings 2020-01-07 23:21:18 -07:00
142ad75744
Added remaining UFD functions 2020-01-07 21:58:04 -07:00
b0b0b612a1
Added Linux mount and unmount functions
* If not running with root priviledges then udevil is used.
2020-01-06 20:58:46 -07:00
c135d686df
Added Linux functions for building UFDs 2020-01-06 20:27:59 -07:00
8f31e5bd67
Added I/O functions for building UFDs 2020-01-06 20:26:57 -07:00
703783406a
Removed old mount-all-volumes script 2020-01-04 21:36:44 -07:00
7bf03749ec
Added CoreStorage scanning logic
* Still needs tested
2020-01-04 21:35:42 -07:00
b75326aeee
Added indent option to wk.std.print_report() 2020-01-04 21:04:24 -07:00
945ae941fa
Added mount-all-volumes sections
* Still need to add the CoreStorage logic
2020-01-04 21:01:41 -07:00
fdad48f613
Fixed wk.std.color_string() 2020-01-04 21:00:36 -07:00
72787d5c24
Fix destination checks when imaging 2020-01-04 18:42:55 -07:00
b79deefdd6
Fix map name when using loopback devices 2020-01-04 18:28:43 -07:00
168c0a50df
Removed old ddrescue-tui launcher 2020-01-04 18:18:39 -07:00
383b7c331a
Safety wheels are off 2020-01-04 18:07:28 -07:00
64645cdf1f
Expanded logging (slightly) 2020-01-04 18:06:57 -07:00
5926c3170d
Reworked retry sections
* Edit the map file directly instead of using --retrim and --try-again
  * Allows for more accurate pass status reporting
  * Allows for simpler pass break/continue logic
* Create the map file before running ddrescue
  * Allows file to be edited by the current user instead of just root/ddrescue
* Added check for empty map files
  * Avoids incorrectly marking a pass as complete
2020-01-04 18:01:39 -07:00
470524dfff
Added pause after "No actions performed" message 2020-01-04 16:54:28 -07:00
4acdab8c0f
Mark passes Skipped as appropriate 2020-01-04 16:53:56 -07:00
c71e30e4fb
Adjusted debug reports 2020-01-04 15:58:43 -07:00
a68e52322c
Fixed aborting when multiple parts selected 2020-01-04 15:41:15 -07:00
e6e51498dd
Clear ddrescue pane every minute 2020-01-03 18:36:53 -07:00
30a5df8a00
Fix timezone in SMART pane 2020-01-03 18:36:40 -07:00
4a2b18e4f7
Added confirmation to Quit if recovery < 100% 2020-01-03 17:55:23 -07:00
848ccc3ef1
Made several State() functions "private" 2020-01-03 17:54:55 -07:00
097360ca0a
Always ask GPT/MBR/Source when formatting a disk
* This fixes cloning partitions when not creating a boot partiton
2020-01-03 17:32:51 -07:00
6eaf5c2bc2
Get accurate size from ddrescuelog
* Reported size is off by one sector in some cases
2020-01-03 17:25:12 -07:00
eb702577ae
Mark clones as started to allow resuming 2020-01-03 16:45:47 -07:00
276e2e0dda
Made mode a State() variable 2020-01-03 16:38:48 -07:00
a4b5e81ef1
Made working_dir a State() variable 2020-01-03 16:08:38 -07:00
4f2b31c705
Avoid crash while stopping ddrescue
* Killall is needed because of sudo
2020-01-03 01:14:06 -07:00
2b18da7244
Added real ddrescue command logic
* Still needs testing!!
* Set all dry_run keywords to default to True
2020-01-03 00:47:33 -07:00
c22c3da493
Expanded safety checks
* Added destination NVMe/SMART checks
2020-01-02 23:33:21 -07:00
2983eb9bd3
Updated run_ddrescue()
* Added SMART pane logic
2020-01-02 23:24:23 -07:00
299b075eef
Fixed BlockPair().safety_check() 2020-01-02 22:32:18 -07:00
48eb4c13d7
Better handle non-iterables in color_string() 2020-01-02 21:57:40 -07:00
9ae8810282
Added real disk format section
* --dry-run=True safety wheels still engaged
2020-01-02 21:22:47 -07:00
ac04a3ddc5
Added another safety check for block pairs
* Needed one more check since clone pairs were assumed to be okay
2020-01-02 21:14:25 -07:00
5d0ed475a6
Added option to match source partition table type 2020-01-02 20:07:46 -07:00
9702d7665f
Added limited support for converting MBR/GPT types 2020-01-02 19:54:18 -07:00
6dc887b04e
Added initial disk formatting sections 2020-01-02 15:50:26 -07:00
764d35836b
Force running all passes if retry selected 2020-01-01 15:06:16 -07:00
1dacdd4637
Abort if an invalid image destination selected 2020-01-01 15:02:23 -07:00
f45a10395f
Added --force-local-map option 2020-01-01 15:02:11 -07:00
df6f3ba8e1
Added initial ddrescue pass logic 2019-12-30 20:21:37 -07:00
e88e4ab3eb
Added ddrescue settings sections 2019-12-30 19:29:32 -07:00
bcd46d4017
Added SMART/Journal panes 2019-12-30 19:25:46 -07:00
d9561a0159
pylint cleanup 2019-12-30 18:47:35 -07:00
e7fbc21721
Added EToC logic 2019-12-30 17:43:15 -07:00
0ddafe8a42
Updated side pane sections 2019-12-30 16:40:28 -07:00
631449e40a
Added format_status_string() 2019-12-30 16:40:03 -07:00
89de1d52bb
Updated BlockPair __init__() and pass_complete() 2019-12-30 16:37:49 -07:00
6ad68c37d4
Added update_progress_pane()
* Still a WIP
2019-12-29 19:29:09 -07:00
fa39801523
Adjusted block pair report 2019-12-26 20:18:17 -07:00
7d7dc70630
Added map data loading sections 2019-12-26 20:16:35 -07:00
fc0a37999b
Added size safety check to ddrescue TUI 2019-12-26 19:27:08 -07:00
bd3601e0c8
Ask for ticket ID and use in working_dir 2019-12-26 17:35:58 -07:00
20787da275
Optionally disallow empty responses to input_text 2019-12-26 17:19:26 -07:00
c083a124ad
Adjusted wk.std.input_text() again
* Dropped tcflush usage for simplicity
* Readded the prompt usage from 564745f03b
2019-12-26 17:00:41 -07:00
20ffa0c6db
Added --start-fresh argument 2019-12-24 18:01:04 -07:00
ef6abce6ab
Skip source partition selection if using JSON data 2019-12-24 17:35:38 -07:00
f542b62f3c
Use source model name in clone settings save file 2019-12-24 16:44:26 -07:00
4c50a1fb8a
Added first run flag to clone settings
* If the loaded settings are for a non-attempted recovery discard settings
2019-12-24 16:43:07 -07:00
67bb9223aa
Moved block pair report to new function 2019-12-24 16:42:18 -07:00
e7e3261b0a
Fixed partition separators 2019-12-24 16:38:42 -07:00
44b6c4eedb
Disable network servers by default 2019-12-22 21:24:55 -07:00
f71cc8ad68
Expanded block pair sections and confirmations 2019-12-22 21:24:02 -07:00
1ed6309971
Include selected source parts in 1st confirmation 2019-12-22 19:05:32 -07:00
6d6380dc6a
Added clone load/save and add block pair sections 2019-12-22 18:49:07 -07:00
0f2007f5dc
Set working directory for ddrescue TUI
* If cloning use backup server share
* If imaging use destination directory
* If a preferred directory and fstype can't be used then warn the user
2019-12-22 16:14:03 -07:00
428d255538
Added selection confirmation sections 2019-12-21 16:53:55 -07:00
0f0c47bbe4
Force selecting at least one partition/device 2019-12-20 12:54:42 -07:00
59ef06f402
Added select_path() 2019-12-19 11:59:34 -07:00
2fb2c3fa6e
Adjusted loopback device descriptions 2019-12-19 11:31:32 -07:00
b20e6cc4ad
Mount passed filepath as raw image
* Also unmount atexit
2019-12-18 20:47:06 -07:00
c3245c92da
Handle passing dir/file paths to ddrescue-tui 2019-12-18 19:28:52 -07:00
3fc9a843fc
Added select_disk_parts()
* Differentiate between all parts selected and whole disk selected
2019-12-13 20:04:15 -07:00
c72372d55c
Replaced platform.system() with PLATFORM var
* Better?
2019-12-13 19:01:26 -07:00
bc2c3a2c80
Expanded source/dest disk selection sections 2019-12-13 18:37:36 -07:00
cb7d0da816
Drop pause in launch-in-tmux 2019-12-13 18:36:56 -07:00
6bfee95043
Support coloring pathlib.Path objects 2019-12-13 16:38:24 -07:00
da5f521f92
Added wk.hw.ddrescue.select_disk() 2019-12-12 19:29:32 -07:00
b746cda6e7
Bugfix 2019-12-12 18:46:44 -07:00
3733da17fc
Moved get_disks() from wk/hw/diags to wk/hw/obj 2019-12-12 18:36:57 -07:00
48a6b3200b
Added init_recovery()
* Set mode
* Select/verify source/dest
2019-12-12 17:22:02 -07:00
3a8c052d5a
Updated ddrescue menu sections
* Support loading presets
2019-12-12 16:43:23 -07:00
045d2b2571
Updates ddrescue-tui tmux sections 2019-12-12 16:39:42 -07:00
5445df8e62
Added settings_select() to Menu()
* Supports ddrescue-tui style toggle/change usage
2019-12-12 15:52:09 -07:00
7a880e2ee7
Added initial ddrescue sections
* Very early outline, very broken still
2019-12-10 15:56:12 -07:00
15f1a5bada
Removed old mount-backup-shares wrapper 2019-12-09 20:56:17 -07:00
d0eee81129
Added unmount-backup-shares wrapper 2019-12-09 20:54:53 -07:00
07cb287eb0
Updated wk.net.connected_to_private_network()
* Can either return True/False or return None/raise Exception
* Added network check to mount_backup_shares()
2019-12-09 20:53:42 -07:00
3262888024
Added unmount network share sections 2019-12-09 20:50:17 -07:00
77190137f6
Added mount-backup-shares wrapper 2019-12-09 20:10:57 -07:00
82827b7a0d
Avoid crash under macOS 2019-12-09 19:57:47 -07:00
0472166c09
Added share mount check logic 2019-12-09 19:42:02 -07:00
9c7914fc3d
Added mount_backup_shares & mount_network_share 2019-12-09 19:23:44 -07:00
2770f85e01
Moved server definitions to wk/cfg/net.py 2019-12-09 17:50:36 -07:00
b25b15f195
Set PYTHONPATH 2019-12-09 17:32:40 -07:00
442ed991bb
Remove shebang and exec mod from hw-diags.py 2019-12-09 17:12:42 -07:00
ca001ed831
Restrict hw-drive-info and hw-info to Linux 2019-12-09 17:11:54 -07:00
e623185d96
Removed old HW script wrappers 2019-12-09 17:09:56 -07:00
8e5bfa12f4
Added NVMe SMART status checks
* Addresses issue #130
2019-12-09 16:48:35 -07:00
23c99084b5
Drop SIGWINCH sections 2019-12-09 16:48:15 -07:00
cc85e3e8ed
Improve abort handling 2019-12-09 16:32:35 -07:00
081658550b
Added debug report sections
* HW-Diags debug reports are saved after showing results or atexit
2019-12-09 15:55:30 -07:00
6bc4ce3c0b
Add Maximum value for power on hours 2019-12-09 14:29:28 -07:00
82341dbbb3
Moved disk safety checks to after the test
* This way failures during the last test should be caught
2019-12-08 17:02:10 -07:00
6071470b6a
Add note to disk report for critical HW error(s) 2019-12-08 16:52:20 -07:00
376a9e92ba
Supress a couple pylint warnings 2019-12-08 16:42:34 -07:00
9dc8329dec
Updated self-test sections
* Improved abort handling
* Always include report if state.tests['Disk Self-Test'] is enabled
* Send abort command via smartctl if aborting self-test(s)
2019-12-08 16:37:37 -07:00
c09cd0c9c2
Added disk safety check before each test
* Includes possible workaround for SMART self-test TimedOut errors
2019-12-08 15:29:18 -07:00
7d66b723ca
Update test report on ERROR 2019-12-06 19:34:53 -07:00
126aaae8ba
Fix IO_RATE_REGEX under macOS 2019-12-06 19:31:32 -07:00
8f909182d3
Bugfix: typo and batch catch 2019-12-06 19:21:24 -07:00
1f74b0b989
Use "RAW" disks under macOS 2019-12-06 19:18:40 -07:00
a0b07cbfde
Added I/O Benchmark sections 2019-12-06 19:10:36 -07:00
c7585d17f0
Added graph functions 2019-12-06 15:02:06 -07:00
2c732885c6
Revert "Adjusted wk.std.input_text()"
This reverts commit 564745f03b.
2019-12-06 13:21:36 -07:00
2a4b68c222
Fixed tail usage under macOS 2019-12-06 13:19:47 -07:00
a76d7775fd
Updated badblocks sections
* Increaded pane height to 5
* Updated pass/fail/unknown logic
* Reduced lines included in reports
2019-12-06 13:02:57 -07:00
b45dc74e5a
Start logging after updating log path 2019-12-06 13:01:31 -07:00
564745f03b
Adjusted wk.std.input_text()
* Should hopefully reduce the duplicate prompts
2019-12-06 13:00:34 -07:00
56a99a8a4e
Avoid crash if tmux pane closes while getting size 2019-12-06 12:25:48 -07:00
e1ef9db6b6
Color disk labels in badblocks panes 2019-12-05 23:02:08 -07:00
d173d317e3
Updated badblocks section
* Start tests in reverse order (so they appear in order on screen)
* Fixed report parsing
2019-12-05 22:57:13 -07:00
76772be422
Added badblocks sections
* Supports running in parallel
* Dropped NonBlockingStreamReader usage
2019-12-05 22:20:26 -07:00
6167d0d78d
Get disk serial numbers under macOS 2019-12-05 14:24:57 -07:00
da7c12bb61
Don't use dummy test objects when no disks avail 2019-12-05 14:20:17 -07:00
fb4b44fefb
Fixed temps pane under macOS 2019-12-03 18:16:33 -07:00
65c08ad972
Updated disk_self_test()
* Parallel self-tests!
2019-12-03 17:36:52 -07:00
b71bca4577
Updated disk_attribute_check() 2019-12-03 16:31:26 -07:00
445523e5f1
Fix aborting Prime95 test 2019-12-03 15:18:10 -07:00
6da34c1f2b
Only register tmux atexit when running HW Diags
* Prevents unintended killing of tmux panes when importing wk or wk.hw
2019-12-03 15:03:02 -07:00
c0b6606758
Stop Prime95 with INT signal instead of TERM 2019-12-03 14:47:57 -07:00
d1005ad0a9
Updated sensor name formatting 2019-12-02 22:47:09 -07:00
e041125c20
Added hw-sensors 2019-12-02 21:02:12 -07:00
4dc41aec27
Bugfix: mprime typos 2019-12-02 20:31:33 -07:00
4990537082
Handle critical temps correctly in mprime sections
* Moved ThermalLimitReachedError catches to wk.hw.sensors
  * Before they would never be caught and would never stop the script
* Added cpu_reached_critical_temp() to wk.hw.sensors
  * This allows us to check if it happened without exceptions
* Added thermal_action to wk.hw.sensors
  * This is run when ThermalLimitReachedError(s) are caught
* Stop print_countdown if mprime is terminated
  * This is required since it may be killed in the background
2019-12-02 20:11:02 -07:00
c520b5a865
Update for Python 3.8 pylint alerts 2019-12-02 17:55:05 -07:00
7796189d14
Clear screen before all diag functions 2019-12-02 17:54:48 -07:00
aa3b69f6fa
Added progress pane logic 2019-11-30 22:43:10 -07:00
4cadb913e8
Dropped bufsize=1 due to Python 3.8 warning 2019-11-30 21:29:24 -07:00
79371a3fa5
Added results screen to hw-diags 2019-11-14 20:43:44 -07:00
402c4359a1
Split Prime95 and cooling Test() objects 2019-11-14 20:16:15 -07:00
fec2473b93
Fixed Prime95 test length 2019-11-14 19:16:10 -07:00
45086c90bb
Prime95 test fully functional 2019-11-14 19:13:21 -07:00
1a91f72d8c
Running and stopping Prime95 working 2019-11-13 19:45:53 -07:00
46a6dda0ff
Prime95 workflow mostly done 2019-11-13 17:47:52 -07:00
0eadb784bb
Updated get_ram_list_linux() 2019-11-13 11:14:55 -07:00
e18b625281
Updated ClassicStartSkin source URL 2019-11-13 11:08:30 -07:00
aa5b5cd9b7
Selecting and running (dummy) tests now working 2019-11-12 21:10:11 -07:00
d4ca575426
Fix get_disks_macos() 2019-11-12 20:06:18 -07:00
1054794af3
Added get_disks()
* This calls either get_disks_linux() or get_disks_macos()
2019-11-12 19:56:39 -07:00
4e6b2cd4da
Started work on per-pass log handling in hw-diags 2019-11-12 17:32:55 -07:00
9b5d9e1186
Added watch-mac and reverted previous commit
* This allows the degree symbol to be displayed correctly
  * (At least in iTerm2)
2019-11-12 10:36:34 -07:00
4bd4536cfd
Avoid using the unicode degree symbol under macOS
* The (home)brew watch command butchers the unicode?
2019-11-11 23:57:48 -07:00
e3d0902c45
Updated wk.hw.sensors
* Added monitor_to_file()
* Added save_average_temps()
2019-11-11 23:22:47 -07:00
4ecdc80e4c
Added sensor update sections 2019-11-11 22:18:09 -07:00
b15c01ac37
Fixed sensor sections under macOS 2019-11-11 21:47:55 -07:00
dc030ab076
Added initial version of wk.hw.sensors
* Supports Linux and macOS
  * Only initial temp, no updates yet
2019-11-11 21:29:21 -07:00
49c0ce9a62
Support layouts with multiple panes of same type 2019-11-11 17:29:58 -07:00
72905f9ccc
Added CLI options to hw-diags 2019-11-10 21:05:41 -07:00
ee7d656f2a
Delete log atexit if empty 2019-11-10 20:47:59 -07:00
21dfeac20b
Expanded logging in wk.hw.diags 2019-11-10 20:22:48 -07:00
906826d752
Updated TryAndPrint()
* Don't log function name unless in debug mode
* Log msg_good instead of UNKNOWN for non-failed functions with no output
* Avoid issue if function returns int
2019-11-10 20:21:15 -07:00
196e2adc82
Added tmux layout maintenance sections
* Support both threading and signal based calls
  * Should provide a smoother UIX under Linux & macOS
2019-11-10 19:10:35 -07:00
0cbc858cf4
Intentionally crash if not running inside tmux 2019-11-10 18:05:06 -07:00
6963d2ae71
Fix echo usage under macOS 2019-11-10 18:01:07 -07:00
0b6cd1cb6c
Added secret menu options in hw-diags 2019-11-10 17:42:04 -07:00
964885d63c
Ensure tmux panes are closed atexit for hw-diags 2019-11-10 17:38:03 -07:00
76a501af85
Added State() and tmux sections to wk/hw/diags 2019-11-10 17:04:45 -07:00
2520126905
Use broader imports for wk/hw/diags.py 2019-11-10 16:22:04 -07:00
fe228a5edc
Added keyboard_test() 2019-11-10 15:17:00 -07:00
100757ba69
Added network_test() 2019-11-10 14:47:56 -07:00
ce3a98028a
Fixed wk.std.show_data() alignment 2019-11-10 14:29:55 -07:00
2b06375f71
Removed unused hw-diags and hw-diags-audio scripts 2019-11-09 19:35:23 -07:00
8f663072f6
Added HW-Diags audio test, menu, and launcher 2019-11-09 19:25:30 -07:00
05d6fb762c
Added wk/tmux.py 2019-11-09 17:29:31 -07:00
177401ecc8
Small formatting adjustment 2019-11-09 17:28:43 -07:00
920f481049
Adjusted DEBUG log date format 2019-11-09 14:25:22 -07:00
27b75ab8e9
Added README.md with pylint config info 2019-11-08 16:01:58 -07:00
205c5ed0fc
Support model-specifc attribute thresholds
* Addresses issue #142
2019-11-08 16:00:27 -07:00
3a2924bd51
Added print_report() 2019-11-08 14:08:16 -07:00
b7c790438a
Updated launch-in-tmux
* Don't exit shells, just the function
* Don't leave dangling tmux sessions if possible
* Restore original session/window name if using an active tmux session
2019-11-08 13:50:26 -07:00
a053931c17
Added Test() object 2019-11-07 20:46:21 -07:00
b162c99d6e
Added BaseObj() class 2019-11-07 20:40:50 -07:00
12de0e5b84
Inlcude RAM vendor ID for unknown IDs 2019-11-07 18:58:20 -07:00
0e9b1af56b
Added safety check to Disk().get_details() 2019-11-07 18:57:31 -07:00
d933ff9742
Reordered functions 2019-11-01 18:52:26 -06:00
e634d1691f
Added SMART self-test sections 2019-11-01 18:51:02 -06:00
93102b5144
Reworked checking Disk() attributes
* Added separate Disk().check_attributes() function
  * Can be used to check all KNOWN_ATTRIBUTES or just blocking ones
* Renamed ATTRIBUTES to KNOWN_ATTRIBUTES for clarity
  * Renamed 'Critical' column to 'Blocking'
* Added '(Failed)' note to attribute report
  * Addresses issue #131
2019-10-31 19:19:52 -06:00
07fdbcdd7c
Added Disk().safety_checks()
* Raises an exception for blocking events
* Removed "Ignore" column from ATTRIBUTES
  * Listed attributes should either be warnings or errors
  * Only 'Critical' attributes should block futher tests
2019-10-31 18:28:34 -06:00
d25b341eb3
Added is_4k_aligned_macos() 2019-10-31 16:48:30 -06:00
5d6b7578d3
Fixed 4K alignment check under Linux 2019-10-31 16:34:54 -06:00
2a019d09a0
Updated Disk notes sections 2019-10-31 16:33:35 -06:00
117df6158a
Fix attribute value colors 2019-10-28 20:57:34 -06:00
ae5e9b8f34
Added 4K alignment check 2019-10-28 20:45:30 -06:00
c7090e77c2
Added Disk().generate_report()
* Uses new merged ATTRIBUTES config
2019-10-28 20:15:58 -06:00
fbb480dae6
Adjusted drive details
* Use 'bus' instead of 'proto(col)' or 'tran'
  * I think it's a better description
* Reordered details alphanumerically
* Removed 'log-sec' from required details
  * Only concerned with the phy-sec
2019-10-28 17:55:37 -06:00
6a1be5cf06
Moved wk.obj to wk.hw.obj
* Done because the main classes are CpuRam() and Disk()
  * The rest are there for uniformity while working with HW objects
2019-10-28 17:46:17 -06:00
c0242ad55c
Added macOS support for disk details and SMART 2019-10-25 19:13:04 -06:00
70248ef0b5
Added macOS support for CpuRam() object. 2019-10-23 20:33:41 -07:00
07120b7dc4
Fixed Disk() description and SMART data 2019-10-23 16:28:55 -07:00
52d61226a0
Added Disk() obj 2019-10-23 15:23:50 -07:00
6e557da370
Added CpuRAM() object. 2019-10-22 18:49:44 -07:00
c9b3794f0e
Renamed some vars for consistency 2019-10-22 18:43:04 -07:00
2b5254dd0c
Bugfix check_disk.py
* Now passes pylint
2019-10-21 18:57:53 -07:00
3ecf107c39
Adjusted print_colored() kwargs 2019-10-21 18:57:31 -07:00
193511d83b
Added color_string(), blink "colors", and more
* The list of strings are now joined using ' ' by default
  * Instead of ''
* Added YELLOW_BLINK and RED_BLINK escape codes
* print_colored() now optionally logs the msg
2019-10-21 18:51:32 -07:00
89f62562f0
Removed reference sections from wk.prev 2019-10-02 22:58:24 -07:00
187a29ff6f
Bugfix speedtest() 2019-10-02 22:44:36 -07:00
cc483abd29
Added ping()
Added ping()
Added ping()
Added ping()
Added ping()
Added ping()
Added ping()
Added ping()
Added ping()
2019-10-02 22:31:54 -07:00
386299ce57
Added network functions 2019-10-02 22:26:10 -07:00
e80a63ee51
Added show_data() 2019-10-02 22:25:54 -07:00
a2017fa415
Added check_disk.py 2019-10-02 21:40:56 -07:00
ad06fab8a2
Updated log path options
* Adjusted default log path
* Support Windows Kit/Tool/General log paths
2019-10-02 21:34:07 -07:00
1ffabd8642
Updated wk.os.win 2019-09-23 00:01:54 -07:00
4c35d7cb4e
Added CHKDSK functions 2019-09-22 23:34:02 -07:00
ff1044a401
Fixed logic error in non_clobber_path()
* Before the '_1000' path would be returned incorrectly
  * If a non-existant path wasn't found that is
2019-09-22 23:31:15 -07:00
60969f26eb
Reworked setting log paths
* Added DEFAULT_LOG_DIR and DEFAULT_LOG_NAME vars
  * Allows easier reuse of default values
* Added format_log_path()
  * Uses default path/name unless dir/name specified
* Added get_root_logger_path()
  * Returns the first fileHandler path found (if any)
* update_log_path() now supports multiple handler scenarios
2019-09-22 23:27:41 -07:00
2ea0b4818a
Updated run_sfc_scan()
* Output is UTF-16, decode it as such
  * Simplifies section
* Reworked checking the result
  * Use separate exceptions for corruption and general errors
2019-09-22 21:50:08 -07:00
972cb6fb66
Breaking updates to TryAndPrint()
* Removed print_return argument
  * Instead if the function returns data assume it should be printed
* Added ability to override msg_good for a single run() call
2019-09-22 21:27:28 -07:00
9ee664bc2b
Dropping CBS fix sections 2019-09-22 21:26:48 -07:00
1cfd8fb7b4
Added outer activation script 2019-09-22 20:06:40 -07:00
f27f3024e8
Added get_json_from_command() 2019-09-18 22:37:18 -07:00
115a462f6e
Added Windows activation functions 2019-09-18 22:27:38 -07:00
0636a032be
Added threading functions 2019-09-18 21:51:39 -07:00
27d348bf9c
Expanded debug log 2019-09-18 21:36:39 -07:00
f1775766e7
Updated wk.log.update_log_path()
* The log file is now moved instead of copied
* The new path can now be based on a new dir, name, or both
2019-09-18 20:58:06 -07:00
318f59c473
Added logging to print functions 2019-09-18 20:23:13 -07:00
5925aca3c2
Allow strings to be passed to print_colored() 2019-09-18 20:02:39 -07:00
f55f0ba016
Adjusted logging in TryAndPrint() 2019-09-18 20:02:13 -07:00
304d811698
Moved exe functions to a separate file 2019-09-18 18:49:56 -07:00
2678ce77da
Added SFC scan 2019-09-15 19:34:06 -07:00
b41027562a
Added SafeMode enter/exit sections 2019-09-15 18:47:52 -07:00
78e3765730
Added delete_item() 2019-09-15 17:29:10 -07:00
010ac87de6
Added delete_empty_folders() and delete_folder() 2019-09-15 16:50:06 -07:00
7a99713043
Added non_clobbering_path() 2019-09-15 16:28:47 -07:00
6af5f78fbb
Dropping wk/exe.py
* All intended functionality now in std.py
2019-09-15 15:34:27 -07:00
8ca59a029a
Added popen_program() 2019-09-15 15:32:34 -07:00
40413151c8
Added run_program() 2019-09-15 15:10:13 -07:00
6f60006c9a
Added get, kill, and wait process functions 2019-09-15 14:35:32 -07:00
b71f1d8d80
Reordered functions 2019-09-15 13:33:59 -07:00
8c8eea0f9a
Adjusted pylint settings 2019-09-13 22:48:33 -07:00
7cb5ecd09f
Added TryAndPrint() class
* Replaces try_and_print() function
* Moved several functions to TryAndPrint() class
  * _format_exception_message()
  * _format_function_output()
  * _get_exception()
* Separates the formatting settings and the function paramters
2019-09-13 22:35:39 -07:00
8d9e264efc
Fix menu checkmark under macOS 2019-09-13 21:02:56 -07:00
3d95d9c1a1
Fixed clear_screen() under Windows 2019-09-13 20:47:27 -07:00
4d6fad82db
Adjusted menu index formatting
* Right-align numbered and action text
2019-09-13 20:29:18 -07:00
94dac676fe
Updated formatting 2019-09-13 20:29:05 -07:00
a59f20ac8b
Support optional extra separators in Menu() 2019-09-13 19:44:56 -07:00
428bb5a05c
Updated advanced_select() 2019-09-13 18:45:07 -07:00
21b44d01ff
Added avanced_select() to Menu()
* Renamed 'Enabled' to 'Selected' for clarity
2019-09-13 18:41:47 -07:00
9da19f3702
Added support for hidden menu entries 2019-09-13 17:49:44 -07:00
f1a1a158ba
Added simple_select() to wk.std.Menu()
* Allows user to select one entry from available entries
2019-09-13 16:16:33 -07:00
68000272ea
Improved clear_screen()
* Now uses subprocess.run() instead of os.system()
* Avoids weird clear -> print issues
  * i.e. Missing newlines, etc
2019-09-13 16:14:36 -07:00
e52e90454d
Fix seperator length 2019-09-07 15:44:38 -06:00
d7fc209e53
Added some doctests 2019-09-07 15:17:54 -06:00
849c53a62d
Include try_and_print result in log 2019-08-22 17:29:50 -06:00
2b08654d7c
Fixed _get_separator_length()
* Use title line(s) and 'Display Name' instead of name
  * Menu()._update() is required to be run previously
2019-08-20 22:34:38 -06:00
1542ba39cd
Fixed _get_valid_answers()
* Correctly omits disabled items
2019-08-20 22:12:09 -06:00
34d5106804
Added _get_valid_answers() to Menu() 2019-08-20 22:05:20 -06:00
1f96ae5c53
Renamed _show() to _generate_menu_text()
* It returns a string instead of printing the text
2019-08-20 22:04:42 -06:00
bd3440daa9
Updated Menu()
* Added logic for disabled items
* Use 'Display Name' in _show()
2019-08-20 21:49:42 -06:00
8cedac738e
Added _get_display_name() and _update() to Menu()
* _update()
  * Calls _get_display_name()
  * Used to update the state of the menu
  * Will add set logic to this method later
2019-08-20 21:18:47 -06:00
7a9c569251
Separating public and private methods 2019-08-20 21:15:59 -06:00
0707d650f6
Started work on the new Menu() object
* This will replace the old menu_select() function
* This will contain all toggle/set/selection logic
  * Which would allow for simpler usage in other sections/scripts/etc
2019-08-20 20:32:37 -06:00
516dc88d44
Removed improper NotImplementedError usage 2019-08-20 19:21:44 -06:00
c43539a92d
Switching to f-strings where appropriate 2019-08-20 16:00:08 -06:00
b314a9f1e2
Bugfix updates for try_and_print() 2019-08-09 21:57:41 -06:00
4100c38280
Added generic exception classes 2019-08-09 20:34:05 -06:00
d722754f12
Replaced UserWarnings with proper exceptions 2019-08-09 20:10:13 -06:00
147b9d2035
Added format_exception_message() 2019-08-09 19:50:45 -06:00
4e5bef23da
Added format_function_output() 2019-08-09 19:06:06 -06:00
ff4e371b32
Added get_exception() and try_and_print()
* try_and_print needs the format_..() functions finished before it can be used
* Raised minimum Python version to 3.7
  * Probably could go with 3.6 but meh
2019-08-09 19:00:01 -06:00
36e2ad8522
Updated cfg/main
* Added INDENT and WIDTH
2019-08-09 17:17:46 -06:00
11d9a5203e
Adjusted docstrings 2019-08-09 16:42:00 -06:00
cf5b546183
Compress report before uploading
* It's the new default but it can be disabled
2019-08-07 19:27:49 -06:00
2270236e42
major_exception() working 2019-08-07 19:25:02 -06:00
f75feca345
get_log_filepath() is working under all platforms 2019-08-06 21:52:11 -06:00
bde8d33f20
Include logging data in debug report if available 2019-08-06 21:51:43 -06:00
5d40d74c46
Include sys.argv in debug report 2019-08-06 21:10:13 -06:00
2f720210e9
Added generate_debug_report() 2019-08-06 20:56:03 -06:00
a0027122c9
Added set_title()
* Only Windows is supported ATM
2019-08-06 19:49:30 -06:00
a60e298f02
Updated bytes_to_string() 2019-08-06 19:29:40 -06:00
d9a1cb755b
Forgot the i3 exit shortcut 2019-08-03 19:11:22 -06:00
a7dac6072c
Added alt shortcuts for those listed in conky
* These use CTRL+ALT instead of SUPER
  * This allows for easier usage over VNC
2019-08-03 18:58:51 -06:00
0757b9fe55
Added get_log_filepath()
* Much safer method than what was in upload_debug_report()
2019-07-25 22:03:15 -06:00
f1d53e698b
Added major_exception() 2019-07-25 21:34:22 -06:00
1829c3b2f3
Moved CRASH_SERVER to wk.cfg.main 2019-07-25 21:33:19 -06:00
1997cdcefd
Reordered log.py functions 2019-07-17 21:37:03 -06:00
4cb52a28a6
Removing useless print_standard()
* No longer needed with the separation of printing and logging
2019-07-17 21:35:27 -06:00
5c817717e7
Added upload_debug_report()
* Partial replacement for major_exception()
  * Splitting that function into smaller parts
2019-07-17 21:34:14 -06:00
77238ad41a
Catch log.start() UserWarning
* May revert this down the road
2019-07-17 21:32:02 -06:00
c9d35a0e2f
Adjusted update_log_path()
* Should result in more uniform log names
2019-07-17 21:31:25 -06:00
6e963fe5da
Added wk/cfg/net.py 2019-07-17 21:30:20 -06:00
04ca9b9fff
Added bytes_to_string()
* Renamed from human_readable_size() for clarity
* Now supports KB vs KiB
* Now supports negative values
* Removed width logic as that should be handled elsewhere
* Removed auto conversion to bytes if passed a string
* An exception will now be raised if an invalid size is given
2019-07-17 19:22:02 -06:00
2cbe99952f
Updated string_to_binary()
* Raise an exception if the string can't be parsed as a valid size
* Handle strings without spaces (e.g. '1.44mb')
* Handle negative values
2019-07-17 18:38:56 -06:00
f985c03490
Added string_to_bytes()
* Renamed from convert_to_bytes() for clarity
* Now supports KB vs KiB
2019-07-17 18:28:05 -06:00
7a0a618b3f
Reordered functions in wk.std 2019-07-17 18:02:42 -06:00
1ffbd29ed5
Added choice() 2019-07-17 17:56:23 -06:00
b60f357527
Added abort() 2019-07-17 17:55:38 -06:00
6e43340acb
Adjusted debug logging 2019-07-17 17:55:20 -06:00
b0aa7b0218
Added beep() 2019-07-16 17:53:20 -06:00
86d9979a7f
Added sleep() 2019-07-16 17:53:14 -06:00
ac7fcb2e0b
Added clear_screen() 2019-07-16 17:52:21 -06:00
9da283f7fc
Adjusted print functions
* Logging is now always done at the DEBUG level
2019-07-16 16:42:28 -06:00
6928485965
Added print functions
* Uses new method for printing in color (no global var usage)
2019-07-13 19:01:57 -06:00
bdf53b435a
Added placeholder files for submodules 2019-07-13 17:45:39 -06:00
36e70c48ba
Adjuested log_path under Windows 2019-07-13 17:42:44 -06:00
f30a6dd3db
Typo fix 2019-07-13 17:29:30 -06:00
8b4daa507b
Use different default log_path under Windows 2019-07-13 17:23:35 -06:00
b98397d491
Include seconds in default log name 2019-07-08 17:32:17 -06:00
ca67ed392f
Avoid clobbering existing files 2019-07-08 16:56:03 -06:00
23eda17bd3
Ensure logging is shutdown when exiting 2019-07-08 16:55:39 -06:00
acd92b3e50
Added logging functions
* Logging is always initialized if importing the whole package
* Support switching to DEBUG mode
* Support changing the log dir (and optionally log name)
2019-07-07 22:09:22 -06:00
4cc54011b7
Added version check 2019-07-07 22:02:48 -06:00
beabbd9c7b
Bugfix 2019-07-02 20:52:28 -06:00
dfde06a2fd
Updated __init__ files 2019-06-29 21:33:47 -06:00
f7a114ee44
Added cfg/logging.py and cfg/main.py 2019-06-29 21:23:37 -06:00
0427d2586f
Added ask and pause functions 2019-06-29 20:52:38 -06:00
96837ff774
Going to use the logging module for logging 2019-06-29 19:58:44 -06:00
bca9c19053
New safer text input function
* Avoids EOFError exceptions and just repeats the prompt
2019-06-29 19:54:02 -06:00
b368b27faa
New project organization
* Script work is brought into better focus
* New layout will be used to better package the python scripts
* No hidden folders (they will be hidden at build time)
* All building should be done under setup/
  * Avoids ambiguous .bin/.cbin folders at root of project
2019-06-28 18:06:43 -06:00
91d8185ede
Updated startup scripts
* Moved starting apps from .update_x into .start_desktop_apps
  * This allowed .update_x to be shown on screen during startup
* Included "<Action>... Done" messages for clarity
* Removed x_ok logic (didn't really work)
  * Replaced with a generic message that _should_ be left on screen if X fails
2019-06-27 20:14:14 -06:00
18daa41e2a
Trimmed down motd 2019-06-27 20:13:09 -06:00
747277b121
Adjusted Super+t keyboard shortcut
* Now it opens to a standard urxvt window (no tmux attaching)
2019-06-27 20:11:02 -06:00
b8e09e83ce
Fixed issue #124 2019-06-27 18:57:45 -06:00
e798503f6f
Save RAM details to CpuObj 2019-06-12 16:37:04 -06:00
5b5c99e6f8
Don't kill current tmux session from ddrescue-tui
* Just kill the panes and let launch-in-tmux handle the session
2019-06-12 15:48:11 -06:00
c50627867e
Switch to prev tmux from hw-diags & ddrescue-tui
* Only during normal exits, not done for aborts/crashes
2019-06-12 15:37:19 -06:00
e30e52e880
New launch-in-tmux script
* Generic run cmd in tmux wrapper
* ddrescue-tui and hw-diags source this script to run their respective menus
  * Reduces duplicate code
2019-06-12 15:31:30 -06:00
90f5285067
Updated tmux menu launchers
* Use current TMUX session if present
* Can switch TMUX session without nesting
* Fixes issue #114
2019-06-12 14:58:27 -06:00
441a6ad66f
Prevent ddrescue-tui crash when LogDir is missing
* Fixes issue #115
2019-06-12 14:05:45 -06:00
87668c6ad0
Avoid rare crash when uploading results for review
* Fixes issue #117
2019-06-11 20:52:45 -06:00
d1af82e114
Restore default UAC in System Setup
* Fixed mode names
* Fixes issue #119
2019-06-11 20:42:33 -06:00
dba39dd9c4
Don't use MS formats in LibreOffice by default 2019-06-11 20:32:30 -06:00
eb3624e9ad
Integrated downstream updates
* Fixes issue #113
2019-06-11 18:55:23 -06:00
b95586a590
Moved to a unified system setup script
* Replaces:
  * Install SW Bundle
  * New System Setup
  * User Checklist
  * System Checklist
2019-06-11 18:42:31 -06:00
3007c22c41
Added Windows Update sections 2019-06-11 18:40:25 -06:00
f30d195cc4
Updated Explorer registry entries 2019-06-11 18:08:50 -06:00
c537a01fbf
Updated info.py 2019-06-11 17:55:50 -06:00
86f17757db
Updated cleanup sections 2019-06-11 17:49:10 -06:00
70823d2cd8
Updated HW-Diags and sensor sections 2019-06-04 20:53:34 -06:00
ec5591453e
Updated data.py 2019-06-04 20:16:09 -06:00
606efac3fe
Updated mounting sections 2019-06-04 20:09:56 -06:00
28bedc0873
Run ddrescue-tui as current user 2019-06-04 20:01:26 -06:00
52e4415b43
Updated ddrescue sections 2019-06-04 20:00:11 -06:00
248e321438
Updated windows_builds 2019-06-04 19:16:25 -06:00
c4ad9055d4
Launch Explorer windows in separate process 2019-06-04 19:14:36 -06:00
7a67e68308
Updated install_sw_bundle 2019-06-04 19:07:37 -06:00
434bb97765
Updated sw_diags.py 2019-06-04 19:01:21 -06:00
6a821de0b5
Added LibreOffice settings 2019-06-04 18:58:24 -06:00
576cb29281
Updated settings.setup.py 2019-06-04 18:57:07 -06:00
b83f2b0c5f
Updated pause() 2019-06-04 18:48:03 -06:00
2d3ccac369
Updated convert_to_bytes and human_readable_size 2019-06-04 18:46:35 -06:00
7816602685
4K Alignment checks 2019-06-04 18:40:42 -06:00
214df52723
Expanded SW bundle sections 2019-06-04 18:33:57 -06:00
35890d6bb3
Fixed setting timezone in Windows 2019-06-04 18:29:32 -06:00
7ccd4c6055
BITWISE operators =/= LOGICAL operators 2019-06-04 18:24:01 -06:00
5ccd628259
Updated check_disk.py 2019-06-04 17:10:38 -06:00
b9276aa0d7
Updated build-ufd 2019-06-04 17:09:59 -06:00
798876eb10
Updated UFD sections 2019-06-04 17:06:11 -06:00
617bb1484a
Name connections by SSID 2019-06-04 16:54:40 -06:00
d51538aac3
Fixed handling of known_networks 2019-06-04 16:52:17 -06:00
b554cfebe0
Update tmux config to work with v2.9 2019-05-08 19:38:48 -06:00
f8773e1736
Add known networks when building the Linux ISO
* Instead of at login
2019-05-05 12:53:07 -06:00
d8024be2c3
Add option to upload hw-diag results for review 2019-04-25 20:55:14 -07:00
dac20b12f1
Hide .bin and .cbin in build-ufd
* Fixes issue #107
2019-04-25 19:09:27 -07:00
5ae8ea3be1
Show more details for loopback devices
* Fixes issue #106
2019-04-25 19:05:44 -07:00
1d2d79eceb
Updated Rofi config
* Set font to Noto Sans
* Added HiDPI support
  * Fixes issue #105
2019-04-25 18:50:07 -07:00
896f9e4a05
Explicitly define smartctl tolerance levels
* Fixes issue #104
2019-04-25 18:37:17 -07:00
b737696f7f
Show more accurate data in mount-all-volumes()
* Fixes issue #108
2019-04-25 18:13:53 -07:00
2fb9b36959
Minor formatting change 2019-04-21 21:41:02 -07:00
5756d14292
Fix issue #102 2019-04-19 19:16:25 -07:00
2ce8c66fc8
Merge branch 'new-ufd-script' into dev 2019-04-19 19:03:29 -07:00
9502ea0bbc
Deleted old build-ufd (BASH) 2019-04-19 19:02:38 -07:00
8b4b0c40ce
Merge branch 'new-ufd-script' into dev 2019-04-19 19:01:56 -07:00
a83dcdd06a
Handle non-ISO source items 2019-04-19 18:14:10 -07:00
731a281805
More bugfixes 2019-04-19 16:33:12 -07:00
e2d788e265
Fixed upate_boot_entries() 2019-04-19 15:23:21 -07:00
0080539575
Copy the known_networks file to /root/ 2019-04-19 14:36:09 -07:00
19799bb1f4
Adjusting formatting 2019-04-18 20:52:47 -07:00
72c0e75156
Fix mounting UFD 2019-04-18 20:52:11 -07:00
27eb7975ef
Fixed SYSLINUX installation 2019-04-18 20:51:14 -07:00
b05057d743
Ignore errors when uncommenting boot entries
* Allows using older ISOs which lack newer boot entries
  * Not a great idea, but it won't crash
2019-04-18 20:00:37 -07:00
8edf164522
Avoid crash present in archiso v40-1
* Fix is present in upstream archiso-git
* iwd would be installed as a dependency for NetworkManager anyway
2019-04-18 19:29:40 -07:00
f062f3ce71
Fixed source ITEMS 2019-04-18 19:28:15 -07:00
153cda7cf8
Fixed update_boot_entries() 2019-04-18 19:27:41 -07:00
050bef7f85
Skip FileNotFoundError in copy_source()
* Avoids crash when copying some WinPE ISOs
2019-04-18 19:26:28 -07:00
e07c019fb2
Bugfix: Call unmount() not mount() 2019-04-18 19:25:13 -07:00
21a587ee0f
Bugfix sleep() 2019-04-18 19:24:39 -07:00
427243c933
Reordered functions 2019-04-16 00:33:47 -07:00
cd4ea75862
Remove the arch dir when updating the UFD 2019-04-16 00:23:58 -07:00
949efa4de6
Added hide items sections 2019-04-16 00:16:05 -07:00
a9461311bc
Unmount UFD before installing Syslinux 2019-04-16 00:15:33 -07:00
4215a2fd78
Added find_first_partition() 2019-04-16 00:14:46 -07:00
9652aa4623
Added install Syslinux section 2019-04-15 23:57:46 -07:00
091c31d33a
Bugfix 2019-04-15 23:52:06 -07:00
89ac824d82
Expanded boot entries sections
* Update Arch labels from ISO_LABEL to UFD_LABEL
* Added Linux (Minimal) to syslinux
* Added Linux (Minimal) and Linux (dGPU) entries to rEFInd
* Removed Linux (i3) entries
  * I guess this is a hidden feature now...
2019-04-15 23:44:42 -07:00
4115f3cfe1
Removed unused args 2019-04-15 23:16:57 -07:00
c66b2facbf
Skip confirm_selections if --force is used 2019-04-15 23:12:27 -07:00
c16e97e49a
Added boot entry sections 2019-04-15 23:07:33 -07:00
95f4877862
Reordered functions 2019-04-15 23:04:37 -07:00
fc9de61269
Added copy_source() 2019-04-15 22:40:20 -07:00
26aca0df9f
Added mount and unmount sections 2019-04-15 22:38:54 -07:00
7ee04060d8
Added dGPU to BOOT_ENTRIES 2019-04-15 22:37:58 -07:00
d769b1ad4e
Set overwrite=False by default 2019-04-15 22:05:48 -07:00
996b01bb34
Add Linux dGPU items 2019-04-15 21:30:44 -07:00
807c94e2ce
Add argument for Linux (dGPU) 2019-04-15 21:29:10 -07:00
af757c5582
Show full device paths 2019-04-15 21:28:53 -07:00
c8944e5a14
Fixed prep_device() 2019-04-15 21:27:27 -07:00
2230ea1eea
Added prep_device()
* Skipped if --update is used
2019-04-15 20:30:39 -07:00
e098d40c2f
Added pylint exceptions 2019-04-14 18:49:32 -07:00
72cc33cb7e
Only show destination device, not all devices 2019-04-14 18:48:54 -07:00
3310e3d253
Moved most logic to functions.ufd 2019-04-14 18:43:08 -07:00
164fd4c646
Fixed SystemExit calls from docopt 2019-04-14 18:09:36 -07:00
0e6be3ad08
Better SystemExit handling 2019-04-14 17:57:46 -07:00
1b312658e9
Fixed return code handling 2019-04-14 17:17:11 -07:00
cf1d11eb78
Always show header 2019-04-14 17:16:13 -07:00
cc1a318e3d
Abort if not running as root 2019-04-14 17:03:04 -07:00
6734460d42
Added option to skip pause in abort()
* Also use exit_script(1)
2019-04-14 17:01:53 -07:00
fde9be6b3f
Updated get_user_name() 2019-04-14 16:48:34 -07:00
d62a647fa9
Avoid setting LogDir to /root/Logs under su/sudo 2019-04-14 16:46:50 -07:00
5a1f7b1829
Silence build-ufd init 2019-04-14 15:58:09 -07:00
b2528b90f8
Fix docopt handling
* Show usage if invalid arguments are used
2019-04-11 22:25:13 -07:00
0883b099fd
Skip safety check if upgrading 2019-04-11 22:24:25 -07:00
23add7e276
Preserve DPI settings when updating conky 2019-04-11 21:40:51 -07:00
56ca605257
Regularly update conky config
* This should allow USB adapters to be shown if connected after login
2019-04-11 21:30:53 -07:00
c3ebdee5d0
Only update hostname when necessary
* If $IP was empty then HOSTNAME would remain set to the current HOSTNAME
  * This allowed the redundant set-hostname call
2019-04-11 21:14:32 -07:00
d113d710a7
Avoid dig errors if not connected to a network 2019-04-11 21:00:32 -07:00
c4755124a0
Remove more connect-to-network sections 2019-04-11 20:59:42 -07:00
ceb6a9e294
Use setup-wifi instead of connect-to-network 2019-04-11 20:57:30 -07:00
a8afd793e0
Added setup-wifi script
* This will replace the connect_to_network() function
2019-04-11 20:55:40 -07:00
d33f78960d
Reduced imports 2019-04-11 20:50:21 -07:00
1a8b6705e0
Show selections before starting work 2019-04-08 20:57:35 -07:00
415f56863d
Finished recursive_copy() 2019-04-08 20:26:41 -07:00
4d9ab2215b
Ensure SMART values are shown for some disks
* smartctl can return non-zero if there are errors in the SMART logs
2019-04-08 18:57:38 -07:00
14ebc23b81
Fix issue #101 2019-04-08 17:39:43 -07:00
b43309be75
Avoid rare crash when scanning CoreStorage volumes 2019-04-08 15:55:52 -07:00
8cdb834499
Initial, incomplete version of recursive_copy() 2019-04-08 02:59:03 -07:00
5fe37b62b2
Adjusted source/dest items 2019-04-08 02:58:07 -07:00
4c33c110b7
Fixed source validation 2019-04-08 00:35:53 -07:00
b166172d10
Only perform case-insensitive search if needed 2019-04-07 23:45:08 -07:00
e420074c83
Use correct errors in find_path()
* FileNotFoundError is accurate since we're just looking for a path
2019-04-07 23:35:00 -07:00
50cb765108
Merged find_source_item() and get_full_path()
* Also fixed regex match (it wasn't matching the whole string)
2019-04-07 23:26:22 -07:00
b6c6fc9aa9
Find paths case-insensitively 2019-04-07 22:44:15 -07:00
cd0a9456cb
Use pathlib.Path to resolve paths
* is_block_device() is no longer needed
  * (pathlib.Path provides that functionality)
2019-04-07 22:41:41 -07:00
c4d00a2073
Fix typos 2019-04-07 22:35:09 -07:00
575126eaa2
Split build-ufd file to match other scripts 2019-04-07 20:51:54 -07:00
3ff0bcd3c9
Updated new_system_setup.py to match other scripts
* i.e. don't change dir when setting sys.path
2019-04-07 19:07:31 -07:00
639a338cca
Initial Python layout
* Going to use docopt for argument handling
* Script will be run as user using sudo where needed
* Tentatively dropping tmux usage
2019-04-07 19:03:56 -07:00
a22e6f552f
Start build-ufd rewrite in python 2019-04-07 19:01:03 -07:00
e089dd99a3
Avoid crash when no disks are connected
* It was attempting to recheck the NVMe/SMART data for the fake N/A lines
2019-04-02 16:29:09 -07:00
52e3e24a3a
Updated build-ufd 2019-03-30 09:48:48 -07:00
c5364a65a2
Avoid copying the wrong files from WinPE
* if w_en_us was empty it would copy the contents from $(pwd)
2019-03-30 09:45:36 -07:00
0b31fa271d
Expand build-ufd log 2019-03-30 09:38:13 -07:00
c022d3f9c6
Set ddrescue-tui EToC refresh rate in settings 2019-03-20 15:48:01 -06:00
28cea9697e
Moved ddrescue-tui EToC code to its own function
* Limited refresh rate to every 5 seconds
2019-03-20 15:45:27 -06:00
fa05c93bf8
Added EToC line to ddrescue-tui side-pane
* Is not shown in main menu
2019-03-20 15:21:19 -06:00
c96ffc5f59
Added overall status line to ddrescue-tui 2019-03-20 13:16:09 -06:00
95338f1df7
Add encoding to run_program and popen_program 2019-03-20 12:57:56 -06:00
877db91cb6
Extended Windows build list 2019-03-19 20:45:37 -06:00
723f1ad4ad
Fixed WizTree extraction 2019-03-19 14:16:39 -06:00
089cdba4f9
Updated sources 2019-03-19 14:16:16 -06:00
f98c106080
Bugfix: Extremely minor formatting issue 2019-03-17 21:30:25 -06:00
48c0cf0b1b
Adjusted Explorer settings 2019-03-17 20:43:19 -06:00
4cb14c6429
Restart Explorer after configuring
* Allows changes to be seen without restarting manually
2019-03-17 20:23:25 -06:00
b84d4eb6b8
Bugfix: typo 2019-03-17 20:22:50 -06:00
1235269da0
Bugfix 2019-03-17 20:17:00 -06:00
2e679dbf5e
Download stand alone Windows update installers
* Fixes issue #91 (again)
2019-03-17 18:11:36 -06:00
84deb49beb
Explicitly set colors to properly reset errorlevel 2019-03-16 23:03:13 -06:00
ec74b06282
Verify Python can be run before launching script
* Fixes issue #91
2019-03-16 23:02:44 -06:00
f9b35b9a3d
Fixed dict collision
* Fixes issue #97
2019-03-16 18:14:31 -06:00
c5b4446133
Configure Windows Updates during checklist/setup
* Sets readiness branch to non-targeted semi-annual
* Defers feature upgrades for 60 days
* Fixes issue #93
2019-03-16 18:11:19 -06:00
86f81f2720
Prevent updating OVERRIDE to CS 2019-03-16 15:11:42 -06:00
70b8d2536a
Missed a functions/json.py import 2019-03-13 20:39:47 -06:00
34ef0bfae6
Fail test on SMART self-test timeout 2019-03-13 20:22:28 -06:00
648787913e
Fixed issues importing settings files 2019-03-13 19:02:35 -06:00
75df9777b3
Removed extraneous whitespace 2019-03-12 22:49:25 -06:00
122bbfb157
Added debug mode for HW Diagnostics
* Uses alternative major exception
  * Saves State, CpuObj, and DiskObj data after traceback
  * Uploads the whole LogDir folder (compressed) instead of just the main log
2019-03-12 21:24:06 -06:00
7381547b27
Added functions.json
* Uses safer method to get JSON data from a command
* Replaced nearly all uses of json.loads with new get_json_from_command()
* Fixes issue #100
2019-03-12 16:08:21 -06:00
480222c1f2
Adjusted variable name usage for consistency 2019-03-12 15:13:16 -06:00
3fa6521c51
Only enable WinPE boot entries if necessary
* Addresses issue #94
2019-03-11 22:31:56 -06:00
459f95394a
Allow building UFD with only the Linux ISO
* Addresses issue #94
2019-03-11 22:27:07 -06:00
22b1452168
Find WinPE sources case-insensitively
* Allows non-WK WinPE builds to be used
* Addresses issue #94
2019-03-11 22:24:11 -06:00
1d10503b91
Support disks over 4TB in badblocks test
* Set read block size to 4KB if disk is 4Kn or 3TB+
* Fixes issue #99
2019-03-11 21:00:26 -06:00
e7d31c21c3
Get disk size in bytes during object creation
* Also moved dd calc section into docstring
2019-03-11 20:55:24 -06:00
7f6509d235
Return to HW-Diags menu from safety_check() 2019-03-11 13:26:11 -06:00
7701418e55
Recheck disk attributes after all tests
* Should catch errors exposed by badblocks
* Addresses issue #96
2019-03-11 13:25:12 -06:00
7078efe9e7
Adjusted SMART self-test running message 2019-03-11 13:23:56 -06:00
a3d2de92bc
Show CS/NS in quick mode if self-test is running
* It still shows the slightly ambiguous message "all tests disabled"
* Addresses issue #96
2019-03-11 12:37:01 -06:00
607d4b1e57
Skip SMART self-test in quick mode
* Addresses issue #96
2019-03-11 12:36:33 -06:00
6edfcc9766
Moved SMART self-test code to its own function
* Allows for a simpler run_nvme_smart_tests()
* Self-test is now done before the attribute check
* Addresses issue #96
2019-03-11 11:57:29 -06:00
40f269aabd
More cleanup for generate_attribute_report() 2019-03-11 10:52:11 -06:00
a5852d1caa
Major overhaul of NVMe/SMART reporting/testing
* Moved all errors/warnings to new nvme_smart_notes var
  * Allows the notes to be appended to the attribute report much easier
  * Allows the attribute report to be updated without losing notes
* NVMe/SMART should only contains the SMART short self-test results
  * If available and requested
* Updated safety_check to fix erroneous requests
  * Disable tests logic reworked
* Updated generate_disk_report() to include notes
* Addresses issue #96
2019-03-09 21:42:28 -07:00
95aa063a69
Adjusted disk safety checks
* check_attributes() is now always silent
  * Returns a PASS/FAIL bool
  * override_disabled is now at the Disk() scope
* Moved self-test checks to check_smart_self_test()
  * Returns a PASS/FAIL bool
* Addressed issue #96
2019-03-09 18:07:04 -07:00
e60bfaca48
Show better errors while building Linux
* Addresses issue #58
2019-03-09 14:27:23 -07:00
858c2e1bd5
Avoid crash on some Macs
* Partially addresses issue #88
  * HW damage should be avoided by using the THERMAL_LIMIT setting
2019-03-09 14:15:42 -07:00
b0e2b01e00
Added beep function
* Fixes issue #89
2019-03-09 14:11:53 -07:00
d5dc453ffa
Added maximum threshold for NVMe/SMART attributes
* Fixes issue #95
2019-03-05 19:36:43 -07:00
68a3b6d0c7
Fixed REGEX sections in settings files 2019-03-05 19:36:42 -07:00
197a5a9160
Misc cleanup 2019-03-05 19:36:42 -07:00
62f2ec8a4d
Moved SW-Diags settings to separate file 2019-03-05 19:36:42 -07:00
4197fc9e0b
Moved WinPE settings to separate file 2019-03-05 19:36:42 -07:00
8d8399c9aa
Moved windows setup settings to separate file 2019-03-05 19:36:42 -07:00
af5281626b
Moved setup settings to separate file 2019-03-05 19:36:42 -07:00
8add6f634c
Moved sensor settings to separate file 2019-03-05 19:36:41 -07:00
058a52961d
Moved info settings to separate file 2019-03-05 19:36:41 -07:00
d03772666d
Moved ddrescue-tui settings to separate file 2019-03-05 19:36:41 -07:00
974e20df05
Moved data settings to separate file 2019-03-05 19:36:41 -07:00
34f4bca97d
Moved browser settings to separate file 2019-03-05 19:36:41 -07:00
e2c83aad6e
Moves HW-Diags settings to separate file 2019-03-05 19:36:41 -07:00
cd4bb7c867
Create launcher for new_system_setup.py 2019-03-05 16:34:13 -07:00
0398ea7e51
Disable Tips & Tricks (more) 2019-02-27 23:57:13 -07:00
fa2aa04b53
Forgot dependencies for ldmtool 2019-02-05 23:02:23 -07:00
27eb984e73
Add ldmtool to read MS dynamic volumes
Fixes issue #92
2019-02-05 22:24:48 -07:00
017c0e3385
Avoid marking aborted badblocks test as failed 2019-02-05 21:49:00 -07:00
82377bc1ab
Stop Prime95 if CoreTemps hit 95*C
Fixes issue #90
2019-02-05 21:34:47 -07:00
7132d971f6
Add temp limit to report 2019-02-05 21:26:27 -07:00
dc6de9cab0
Use consistent labels 2019-02-05 21:25:28 -07:00
a28a754be1
Added thermal limit logic to Prime95 test 2019-02-05 21:08:06 -07:00
3c35a75c92
Raise exception when temps >= limit 2019-02-05 21:06:40 -07:00
f8404f3c16
Raise exception if temps above given threshold 2019-02-05 20:31:16 -07:00
5efdf05274
Adjusted VIM settings 2019-01-15 19:06:56 -07:00
7c7d8e41e2
Prevent crash when testing some NVMe disks 2019-01-15 18:56:29 -07:00
814ada0ac0
Updated HWiNFO url 2019-01-13 17:59:06 -07:00
fcd8d67f51
Bumped year in LICENSE.txt 2019-01-13 14:52:31 -07:00
5b9e91f8af
Updated Killer Network drivers source 2019-01-13 14:51:53 -07:00
bece9837b2
Moved Office 2019 installers to their own folder 2019-01-11 14:42:18 -07:00
6c47650c2d
Updated IOBit Uninstaller 2019-01-11 14:18:01 -07:00
fd8358a899
Fix ODT path 2019-01-11 14:17:41 -07:00
cb072366e0
Bugfix Office sections
* Addresses issue #86
2019-01-11 13:25:33 -07:00
4a96736592
Removed network installers 2019-01-11 13:17:25 -07:00
ad1d7d71f2
Fixed ODT sections
* Fixes issue #86
2019-01-11 12:59:12 -07:00
6246393894
Fixed update_fastcopy() 2019-01-11 12:31:08 -07:00
c1324548ce
Track ninite processes directly 2019-01-09 20:59:21 -07:00
969011f3f5
Added new_system_setup() 2019-01-09 20:55:48 -07:00
6488101cdc
Dumb workaround for Dell sensors 2019-01-09 16:29:18 -07:00
e088ba134e
Tool version bumps 2019-01-08 23:48:50 -07:00
f2bd2a6e75
Adjusted global_vars report 2019-01-08 20:33:23 -07:00
6ea4791dc9
Added generate_global_vars_report()
* Makes crash reports more readable
2019-01-08 20:24:43 -07:00
63f9c1c193
Fixed set_log_file() under Linux 2019-01-08 20:24:14 -07:00
ed70d1ab18
Simplified tmux repair thread handling
* Just start once and let run until script is exited
* Pretty sure this fixed the 100%+ CPU usage after returning to the menu
2019-01-08 19:18:00 -07:00
f8adbe074d
Added Linux headers for macbook12-spi-driver-dkms
* Addresses issue #67
2019-01-07 16:17:37 -07:00
4bd0cd1598
Avoid crash when no sensor data available
* This was broken when fixing issue #85
2019-01-07 15:29:33 -07:00
beb36dfc97
Adjusted window name 2019-01-07 12:54:28 -07:00
ebcd38ef50
Don't change directory during initialization
* Fixes issue with ddrescue-tui
2019-01-07 12:53:23 -07:00
ae92eea76e
Added macbook12-spi-driver-dkms to Minimal build 2019-01-06 22:43:33 -07:00
50da682d76
Fix issue #85 2019-01-06 22:12:01 -07:00
7a9474a6a8
Try enabling SMART before checking attributes
* Fixes issue #84
2019-01-06 21:51:45 -07:00
68bbee66d5
Replaced hw-diags-badblocks with threaded section
* Should fix issue #83
2019-01-06 21:45:01 -07:00
e40b0b98e4
Moved fix_tmux_panes() into a background thread 2019-01-06 20:57:06 -07:00
4a04e92caf
Added threading.py
* Will be used by hw_diags.py and ddrescue.py for
  * Better control over badblocks
  * Background the tmux pane fixes
2019-01-05 15:54:05 -07:00
aa4c6a1434
Fix issue #82 2019-01-02 18:04:32 -07:00
3d69fe773d
Removed sensors section from hw-info
* Fixes issue #81
2019-01-02 18:02:24 -07:00
141fe422db
Fix NVMe attribute handling
* Addresses issue #78
2019-01-02 17:55:56 -07:00
3122a75f64
Skip fan RPMs
* Avoids reporting fan RPMs as 6000+ *C
2019-01-02 17:31:19 -07:00
6340bceb11
Added warning if no disks detected. 2019-01-02 17:05:08 -07:00
a9c5c1c274
Fixed issue #80 2018-12-28 17:46:02 -07:00
8f9bae9a6f
Added option to build Linux with minimal packages
* All non-minimal packages/configs have been separated from the base setup
* `"Build Linux" -b` will only build the full version
2018-12-28 16:51:15 -07:00
575fa17425
Only use Unicode checkmark if in X 2018-12-28 15:44:14 -07:00
91649f5ee7
Removed args from run_program
* It's been deprecated for ages
* Fixes issue #79
2018-12-27 23:43:35 -07:00
1095e15643
More PEP8 updates 2018-12-27 22:52:50 -07:00
453ce9cf44
More fixes for main.py 2018-12-27 22:48:20 -07:00
b6e9e447c5
Fixed main.py 2018-12-27 22:45:49 -07:00
6df88ec021
Updated settings files 2018-12-27 22:42:42 -07:00
f321dee54f
Switched indents to 2 spaces 2018-12-27 22:28:17 -07:00
3e733e65e9
Updated network.py 2018-12-27 22:17:23 -07:00
7b8b1ab111
Updated files to meet PEP8 guidelines
* Fixes issue #42
  * More work is likely needed
2018-12-27 21:46:04 -07:00
922d632afb
Removed trailing whitespace 2018-12-27 21:44:46 -07:00
5af0996259
Removed whitespace on empty lines 2018-12-27 21:42:00 -07:00
c96e2f252c
Cleaned up imports 2018-12-27 21:38:25 -07:00
d0c49240d8
Added extra line break after classes/functions/etc
* Also reordered some class/regex/static sections
2018-12-27 21:33:37 -07:00
3b4668e61b
Adjusted init section 2018-12-27 21:02:04 -07:00
c7706a115f
Updated hw-diags-network 2018-12-27 20:58:37 -07:00
b1786e088c
Updated hw-diags-audio 2018-12-27 20:58:26 -07:00
c501c8b23f
Updated docstrings longer than 72 characters 2018-12-27 20:51:56 -07:00
387062074a
Updated msword-search 2018-12-27 20:30:40 -07:00
4ddce7cfbe
Updated mount-backup-shares 2018-12-27 20:28:26 -07:00
a9ebeee748
Updated mount-all-volumes 2018-12-27 20:28:14 -07:00
25bacb9892
Updated ddrescue-tui-menu 2018-12-27 20:27:55 -07:00
5664765f6e
Updated connect-to-network 2018-12-27 20:27:44 -07:00
c3ca58879c
Updated winpe_menus.py 2018-12-27 20:15:02 -07:00
ec0341027e
Updated windows_setup.py 2018-12-27 20:14:29 -07:00
fa424a4576
Updated update.py 2018-12-27 20:13:32 -07:00
a47707447c
Updated setup.py 2018-12-27 20:10:49 -07:00
cfd4eebcd4
Updated safemode.py 2018-12-27 20:09:26 -07:00
deb9d9add1
Updated repairs.py 2018-12-27 20:08:56 -07:00
82a2d6b74d
Updated product_keys.py 2018-12-27 20:07:18 -07:00
72eac47524
Updated disk.py 2018-12-27 20:05:53 -07:00
07e43307c5
Moved partiton_uids.py to settings 2018-12-27 20:04:29 -07:00
018aba2fe6
Updated network.py 2018-12-27 19:58:06 -07:00
097fae866a
Updated info.py 2018-12-27 19:57:39 -07:00
166a293864
Updated hw_diags.py 2018-12-27 19:55:41 -07:00
ffd07e07fd
Renamed diags.py to sw_diags.py
* Avoid confusion with hw_diags.py
2018-12-27 19:53:58 -07:00
0a899539c9
Updated diags.py 2018-12-27 19:52:18 -07:00
10e978d4c5
Updated ddrescue.py 2018-12-27 19:50:51 -07:00
4049272cbb
Updated data.py 2018-12-27 19:48:32 -07:00
c74e2c7667
Updated common.py 2018-12-27 19:43:37 -07:00
327c5b8a33
Updated cleanup.py 2018-12-27 19:43:25 -07:00
6a3e225192
Updated browsers.py 2018-12-27 19:43:12 -07:00
a269859b17
Updated backup.py 2018-12-27 19:42:58 -07:00
36e419bca0
Updated activation.py 2018-12-27 19:42:28 -07:00
765673db66
Updated windows_builds.py 2018-12-27 18:06:59 -07:00
28e2ce90df
Removed nvme-cli in favor of smartctl 2018-12-27 18:03:16 -07:00
a124236def
Removed unused pydf config 2018-12-27 18:01:42 -07:00
4b956d5eea
Fix MemTest86 extraction 2018-12-27 17:51:51 -07:00
a39c62eabc
Fix crash if no sensors available 2018-12-27 17:47:01 -07:00
dcc2e5cd6a
Adjusted top pane text 2018-12-26 21:00:29 -07:00
98c0c34bf8
Removed unused vertical_graph data 2018-12-26 17:11:37 -07:00
96d34ceb50
Fix SMART short-test results section
* OVERRIDE status reduced to yellow/warning
  * Allows it to be elevated to NS or TimedOut
* Only disable other disk tests on test.failed
  * OVERRIDE doesn't work if based on test.passed for this test
2018-12-23 17:33:16 -07:00
6e37736146
Only save attributes to log during show_results() 2018-12-23 17:15:50 -07:00
c15eb85a5e
Removed unused get_status_color and Skipped status 2018-12-22 18:07:06 -07:00
6d9f50629c
Reworked status/color sections 2018-12-22 17:55:49 -07:00
d37923a31c
Bugfix: typo 2018-12-20 17:26:27 -07:00
d930bdddbd
Zero beginning of UFD before formatting
* Fixes issue #68
2018-12-20 16:10:08 -07:00
d60aab9584
Updated MemTest86 to 8.0
* Passmark is no longer providing ISOs so the UFD image is used instead
* This is an alternative solution to issue #71
2018-12-20 16:03:54 -07:00
eed8a1e40c
Fix poweroff/reboot calls 2018-12-20 15:25:39 -07:00
c6eb7cdfd6
Use new arguments when calling hw-diags 2018-12-19 18:53:13 -07:00
f022d0ca76
Fallback to HW-Diags CLI if X fails to start
* Fixes issue #74
2018-12-19 18:45:58 -07:00
42407f0eca
Adjusted ddrescue exit handling
* Wait for ddrescue_proc after KeyboardInterrupt
  * ddrescue prints extra info to the screen after a CTRL+c
* Explicitly mark KeyboardInterrupt events as an abort
* Add 'DDRESCUE PROCESS HALTED' message in red if exiting non-zero
  * More clearly indicates that user interaction is required
  * Fixes issue #72
2018-12-18 20:35:21 -07:00
44fe888230
Replaced ddrescue-tui-smart-display
* Output data to file and have tmux pane watching said file
* This method handles resizing much better
2018-12-18 20:15:35 -07:00
62b8e51705
Updated ddrescue-tui tmux pane size handling 2018-12-18 19:45:02 -07:00
ad15cdad56
Added warning if not saving map to a preferred FS
* Fixes #76
2018-12-18 17:28:06 -07:00
04cfdff2bf
Don't show init, just disk details 2018-12-18 17:27:15 -07:00
e1834d5179
Added silent mode to init_global_vars() 2018-12-18 17:26:20 -07:00
ad9662c120
Updated to use new hw_diags.py 2018-12-18 16:38:40 -07:00
fad65b8df6
Merge branch 'hw-diags-rewrite' into dev 2018-12-18 16:10:34 -07:00
e5f0ccb5d5
Formatting cleanup 2018-12-18 15:57:48 -07:00
91a77bb14e
Ensure SMART timeout message is in the report 2018-12-18 15:47:03 -07:00
7ac035c578
Safety wheels off 2018-12-18 15:21:05 -07:00
932669844b
Fixed tmux pane size handling 2018-12-18 15:13:33 -07:00
10ae59be19
Update tmux layout periodically 2018-12-18 00:55:57 -07:00
0c0f8e8950
Added disable_test() to Disk class 2018-12-17 20:51:02 -07:00
41c9a4d23f
Fixed only showing non-empty graph lines 2018-12-17 20:29:09 -07:00
8c5820d5aa
Fix horizontal graph
* generate_horizontal_graph() now returns a list instead of a str
2018-12-17 20:16:35 -07:00
ec8c78197b
I/O Benchmark test is working 2018-12-17 20:15:40 -07:00
385bdd7dbf
Allow resizing current pane 2018-12-17 20:10:58 -07:00
a25a10e616
More abort logic updates 2018-12-17 14:07:19 -07:00
c820d2ac6d
Fixed Prime95 abort handling 2018-12-17 13:20:39 -07:00
baaf1994e3
Catch keyboard interrupt and gracefully abort 2018-12-16 22:44:46 -07:00
e0a2993c36
Skip disk safety checks if only testing the CPU 2018-12-16 22:18:34 -07:00
d8123a71ec
Renamed generate_report to generate_sensor_report 2018-12-16 22:07:34 -07:00
4c0bb1c9b7
Group results by device instead of test 2018-12-16 22:06:03 -07:00
503e6f2b42
Fix SMART short-test timeout detection 2018-12-16 19:45:25 -07:00
a4896a55f6
Adjust log names 2018-12-16 19:31:34 -07:00
8993b483a6
Fix bad cable note 2018-12-16 19:30:46 -07:00
ef42b596d9
Catch CTRL+c aborts and show results 2018-12-15 18:56:41 -07:00
8b936f5413
badblocks section working 2018-12-15 18:45:43 -07:00
e96ac5c156
Added watch option to use tail instead of cat
* tail -f acurately prints backspace (^H) characters
  * badblocks output uses them and wouldn't work with watch/cat
2018-12-15 18:09:54 -07:00
dc8416b5f7
Adjusted formatting 2018-12-15 16:55:32 -07:00
a5d92537f5
Removed unused function 2018-12-15 16:54:48 -07:00
f2a519b7ec
Adjusted log and results screen 2018-12-14 18:58:32 -07:00
37b8676b9c
Fixed quick check 2018-12-14 18:57:30 -07:00
99984603ed
NVMe/SMART sections working
* Added timout status for clarity
* Added short-test result to report
2018-12-14 18:32:17 -07:00
cee8252455
Added CYAN to COLORS 2018-12-14 18:03:00 -07:00
81f05fa79f
Replaced show_attributes() with generate_report()
* Returns list of colored strings
* Optionally includes short-test results
* Optionally excludes disk info
2018-12-14 16:37:14 -07:00
5b74879805
Fixed OVERRIDE and N/A NVMe/SMART status handling 2018-12-13 19:02:28 -07:00
b5c93317dc
Override sections working 2018-12-11 23:54:02 -07:00
47084efe17
Combined nvme_check() and smart_check() 2018-12-11 23:18:51 -07:00
62a60ff3fd
Reworked disk safety checks
* Moved several functions into DiskObj
* Added HW_OVERRIDES_FORCED and HW_OVERRIDES_LIMITED to main.py
  * These adjust when overrides are requested
* Disable badblocks and/or io_benchmark if disk fails safety check
2018-12-11 22:56:09 -07:00
a967a5c425
Switched back to int keys for SMART attributes
* Allows for easier sorting
2018-12-11 20:40:57 -07:00
a3f7e5ad89
Disk quick check almost done 2018-12-11 00:54:16 -07:00
6c06a67fdf
Prime95 section complete 2018-12-10 22:54:56 -07:00
d9554314d5
Updated run_program() and popen_program()
* Use dicts for clarity
* Support cwd flag
2018-12-10 19:42:10 -07:00
a2ef06e6db
Added strip_colors() function 2018-12-10 19:19:35 -07:00
2b43cdf9e2
Create watch file if it doesn't exist yet 2018-12-10 19:19:11 -07:00
30d4acd986
Added watch mode to respawn-pane 2018-12-10 19:18:16 -07:00
8a8a63eb66
Build Prime95 report 2018-12-10 19:16:43 -07:00
a00105f718
Fixed status updates 2018-12-10 16:57:43 -07:00
bb93386fa0
Updated Prime95 checks 2018-12-10 16:32:00 -07:00
465a3b42fb
Kill all tmux panes before exiting 2018-12-08 18:36:50 -07:00
d88a9f39f2
Added tmux_kill_all_panes() 2018-12-08 18:36:24 -07:00
668c7c4c6a
Updated run_mprime_test to use test_obj 2018-12-08 18:32:03 -07:00
941a553766
Renamed "Prime95 & Temps" to "Prime95" for brevity 2018-12-08 18:16:31 -07:00
49471663f5
Use OrderedDicts to avoid lambda sorting 2018-12-08 17:50:11 -07:00
0390290f10
Added TestObj()
* This object will track test specific vars and results
  * Moved status code into TestObj
  * Test calls will now be: run_test(state, dev, test_obj)
* NOTE: Code is not done and is quite broken
2018-12-08 17:46:17 -07:00
6a3ef60881
Added CpuObj and renamed dev names to disk
* This should make the code more clear
* The CpuObj is similar to DiskObj to abstract the device/tests calls
  * New calls will be like: run_test(state, dev)
2018-12-08 17:41:29 -07:00
12ff99eb32
Set LogDir for non-quick tests 2018-12-06 18:27:43 -07:00
a910f2cb03
Adjusted Prime95 countdown 2018-12-06 18:27:19 -07:00
ca4234b1c3
Added working_dir arg for tmux command sections 2018-12-06 15:29:06 -07:00
dc606a8780
Main Prime95 sections working
* Still need check results and update progress sections
2018-12-06 01:06:21 -07:00
30ba651674
Removing report wrapping section
* Doesn't work properly with background processes
2018-12-06 00:10:51 -07:00
74bb31e795
Open temps monitor during run_mprime 2018-12-05 23:57:38 -07:00
5550cce8db
Add background mode for monitoring sensors
* This will be called by hw_diags.py to update a file in the background
* NOTE: This uses a naive check before attempting to write data
2018-12-05 23:55:15 -07:00
c777d49091
Added tmux_resize_pane() 2018-12-05 23:54:37 -07:00
5405b97eb1
Standalone sensor monitor working again 2018-12-05 23:09:42 -07:00
46080b4363
Moved tmux sections to separate file 2018-12-05 22:25:44 -07:00
0e5fab0104
Handle missing labels in generate_report() 2018-12-05 21:57:55 -07:00
95b0d1e3f4
Wrap reports if necessary 2018-12-05 21:54:41 -07:00
328d6eb294
Modify sensor_data in place 2018-12-05 20:47:40 -07:00
2eccc236a9
Added generate_report()
* Also merged save_max_temp() with update_sensor_data()
  * Max doesn't need resetting so just calc max everytime
2018-12-05 20:40:25 -07:00
7140f38ba4
Added average, clear, and max temps sections 2018-12-05 20:11:10 -07:00
cb67f7e3c3
Added new sensors.py and dropped borrowed sensors 2018-12-05 19:59:41 -07:00
5dd8fa8416
Get CPU details from lscpu 2018-12-05 17:48:30 -07:00
163f64dda7
Reduced timeout for major exceptions 2018-12-05 04:10:20 -07:00
372f80bf38
Skip optical drives 2018-12-05 04:08:59 -07:00
7c163a8110
Added update progress sections 2018-12-05 03:52:24 -07:00
d025b8dc9e
Adjusted how devices are added to the state obj
* The change allows for devices to be (dis)connected while the script is running
  * Devices are scanned and added during run_hw_diags()
* Fixes bug that prevented any devices from being added as well
2018-12-05 03:49:25 -07:00
2d69d93154
Added watch option for tmux_split_window() 2018-12-05 03:41:27 -07:00
43b9645c69
Update tmux panes via respawn-pane
Instead of send-keys
* Avoids flooding zsh history
* Less flickering
2018-12-04 23:39:15 -07:00
4bb1402ac5
Added tmux functions
* Going to try and replace the send-keys sections next
2018-12-04 20:50:47 -07:00
8fb1620c94
Added placeholder functions for HW tests 2018-12-04 19:23:35 -07:00
597a236089
Don't clear screen twice at startup
* Combined init_global_vars and add_devs output
2018-12-04 18:44:52 -07:00
1489ad4237
Added safety check for devices 2018-12-04 18:43:50 -07:00
62c9d82fd2
Adjusted placeholders 2018-12-04 17:05:53 -07:00
5701b53026
Added --quick argument to skip menu 2018-12-04 16:55:17 -07:00
6014a8fb70
Don't add WK or loopback devices 2018-12-04 16:18:45 -07:00
70a742e69c
Add device details from lsblk
* Also ensure sane types for some attributes
2018-12-04 16:10:58 -07:00
2df4d48bb3
Show selected tests on run 2018-12-03 20:15:56 -07:00
560929e2fa
Removed extra line break in menu_select 2018-12-03 19:54:06 -07:00
18fc97293e
Renamed Drive to Disk to align options in menu 2018-12-03 19:50:55 -07:00
3fdd8c629c
Rewrote main menu
* First options are presets followed by individual tests
* Selecting presets will toggle the selections
* Screensavers are hidden but still present
2018-12-03 19:47:44 -07:00
10f2fca2bf
Added classes DevObj and State 2018-12-03 17:52:07 -07:00
83dda97ff6
Bugfix: launchers.py 2018-11-26 19:13:00 -07:00
c42c764789
Updated hw_diags.py 2018-11-26 18:35:33 -07:00
f802ea860d
Updated ddrescue.py 2018-11-26 18:15:41 -07:00
bb23d49833
Adjusted mounting shares/volumes 2018-11-26 18:14:06 -07:00
b3b821a868
Allow mounting all volumes per device 2018-11-26 18:12:24 -07:00
8a86edb5bb
Updated windows_builds.py 2018-11-23 18:33:18 -07:00
972d91a4b8
Updated sources.py 2018-11-23 18:32:52 -07:00
e3076152ba
Updated main.py 2018-11-23 18:31:36 -07:00
566e1474a5
Updated launchers.py 2018-11-23 18:24:05 -07:00
2d9de7b69e
Updated system diags/checklist and user checklist 2018-11-23 18:22:56 -07:00
5da9d4e36b
Updated update.py and update_kit.py 2018-11-23 18:21:33 -07:00
7e960df2d6
Updated setup.py 2018-11-23 18:18:00 -07:00
832ef993e6
Updated repairs.py 2018-11-23 18:13:11 -07:00
1cac083916
Updated info.py 2018-11-23 18:12:36 -07:00
7f37bc8802
Updated diags.py 2018-11-23 18:10:50 -07:00
1839edf84d
Updated cleanup.py 2018-11-23 18:09:31 -07:00
7f7c220073
Updated browsers.py 2018-11-23 18:08:41 -07:00
18b13cf506
Updated common.py 2018-11-23 18:06:57 -07:00
923ddd7cd3
Removed whitespace from more empty lines 2018-11-23 18:04:12 -07:00
8064fc4a17
Removed whitespace from empty lines 2018-11-23 18:01:03 -07:00
63fcaed8cd
Updated Launchers 2018-11-23 17:54:46 -07:00
5e1daf36df
Updated Notepad++ config 2018-11-23 17:08:32 -07:00
5380d133e4
Adjusted Linux boot options 2018-11-23 17:07:13 -07:00
509620707c
Partially reverting commit d31991a6 2018-10-10 16:54:12 -06:00
bf354edeae
Fix hw-sensor bug caused by upstream code 2018-10-10 15:48:18 -06:00
1cb7de08f3
Add small delay to network startup
* Will hopefully allow test-stations to update the hostname more reliably
2018-10-10 15:47:48 -06:00
95c8de0a21
Merge branch 'dev' of github.com:2Shirt/WizardKit into dev 2018-10-08 15:48:45 -06:00
6a67052d83
Show SMART for parent dev if child dev selected 2018-10-08 15:47:40 -06:00
2Shirt
087500c9b7 Fixed inconsistent indent length 2018-10-02 23:09:20 -06:00
2Shirt
85e7813539 Check Secure Boot status during system checklist
* Fixes issue #60
2018-10-02 22:11:18 -06:00
2Shirt
7e17a93d42 Unmute audio before opening XMPlay with NirCmd
* Fixes issue #56
2018-10-02 15:59:21 -06:00
6f5a25d65d
Load AMD microcode when booting Linux in rEFInd 2018-09-29 15:26:28 -06:00
ecb9364bd2
Updated Syslinux menus
* Added AMD microcode (fixes issue #61)
* Disabled copytoram when booting from an ISO/DVD
* Removed Extras menu and instead list all options from the start
2018-09-29 15:22:01 -06:00
c7da54d86a
Disable blank warning 2018-09-28 14:37:23 -06:00
e6d7d8699a
Restored missing photorec-sort script 2018-09-28 12:50:09 -06:00
10f1982c23
Removed unused startup scripts 2018-09-28 11:43:02 -06:00
1e6f486865
Adjusted X startup sequence
* Moved most X startup logic to ~/.update_x
  * This is called by both i3 and openbox
* Network logic moved to .zlogin
  * This avoids a bug where apps can no longer connect to the $DISPLAY
2018-09-27 23:10:30 -06:00
79b64e4f23
(re)disable root logins (again) 2018-09-27 23:00:17 -06:00
c43ba34cbf
Differentiate between not-run and unknown results 2018-09-27 21:00:00 -06:00
26eadebf21
ddrescue-tui: Support devices with '/' in the name 2018-09-27 13:13:42 -06:00
7da01be7ab
Removed inxi 2018-09-26 16:16:58 -06:00
3b27d05fd6
Disabled HDT menu entry
* See issue #57
2018-09-25 20:51:40 -06:00
a3c82023e8
Removed unused file 2018-09-25 15:17:44 -06:00
5e73583e00
Mark declined overrides as "Skipped"
* NS should be reserved for known failures not unknown/questionable states
2018-09-25 12:33:11 -06:00
4b16ec6095
Adjusted Prime95 countdown 2018-09-25 12:24:47 -06:00
d4f24eafb6
Fix issue #55 2018-09-25 12:17:38 -06:00
6c4381c3a5
Include percent with rates in "raw" I/O log 2018-09-25 12:15:28 -06:00
4979fbe927
Taller I/O horizontal graph
* Inceases fidelity to 32 steps
2018-09-25 11:52:24 -06:00
9689f5aa15
Adjusted I/O chunk size and graph scale 2018-09-25 11:51:22 -06:00
a4d559f406
Removed more VCR 2008 references 2018-09-25 11:46:15 -06:00
883305ca6b
Replaced pacinit alias with full script 2018-09-18 13:42:51 -06:00
48f789c5b4
(re)Disable root SSH logins 2018-09-18 13:12:17 -06:00
b34187b86a
Use new Firefox 62 method to install uBlock Origin 2018-09-17 20:04:47 -06:00
79fc40e57a
Fixed Python 3.7 dependencies
* This re-upgrades Python to 3.7 in WinPE
2018-09-17 18:50:55 -06:00
e3aaa887c5
Countdown the minutes remaining during Prime95
* Fixes issue #54
2018-09-17 14:15:19 -06:00
50a503240d
Downgrading Python to 3.6 in WinPE
* Python wouldn't load
2018-09-16 23:08:11 -06:00
ae8993821f
Missed a VCR 2008 section 2018-09-16 21:05:09 -06:00
9c02626937
Updated update_adwcleaner() 2018-09-16 21:03:49 -06:00
902a6398ca
Bugfix update_samsung_magician() 2018-09-16 20:58:25 -06:00
1e6eb26c77
Removed Office 2013 sections 2018-09-16 20:02:15 -06:00
d502f769ea
Updated update_samsung_magician() 2018-09-16 19:58:36 -06:00
bc57230418
Replaced TreeSizeFree with WizTree 2018-09-16 19:44:41 -06:00
f3885f25d6
Update FastCopy using new installer 2018-09-16 19:39:05 -06:00
e4bcf88fe5
Update Intel RST (Current Release) 2018-09-16 19:23:36 -06:00
4e9cd1f114
Update FastCopy using new installer 2018-09-16 19:21:36 -06:00
b79cd5d65a
Updated tool versions
* Adjusted bundles
* Dropped Office 2013
* Moved to Python 3.7
* Replaced TreeSizeFree with WizTree
2018-09-16 18:46:02 -06:00
a71f7648c2
Bugfixes for Build Linux script 2018-09-16 18:45:10 -06:00
7cc31e892b
Merge branch 'dev' of github.com:2Shirt/WizardKit into dev 2018-09-16 15:42:07 -06:00
6cdf2a4211
Added authorized_keys file for SSH connections 2018-09-16 15:41:14 -06:00
a213ba5d32
Bugfix for mount-all-volumes 2018-09-15 21:20:52 -06:00
91f7628081
Updated sources
* Dropping 2008
2018-09-15 18:17:58 -06:00
35fd50771c
Update hw_diags.py systemctl command syntax
* Now it matches the wk-power-command style
2018-09-15 17:50:54 -06:00
1e21c04a3e
Address shutdown slowdowns
* Unmount filesystem(s) and flush write cache before poweroff/reboot
* Also adjusted timouts to maybe fix issue #52
2018-09-15 17:46:05 -06:00
da92cee338
Fix issue #51
* The curly braces were being interpreted incorrectly by print_standard()
2018-09-15 16:00:24 -06:00
9a093ace9c
Moved 'Scanning disks...' message in hw_diags.py
* (Re)fixes issue #46
2018-09-15 15:47:47 -06:00
1ee4a611b9
Hide UFD-only boot options from Linux ISOs
* Fixes issue #41
2018-09-15 15:42:40 -06:00
d31991a67f
Always load broadcom before tg3
* Hopefully won't cause any problems.
2018-09-15 15:24:59 -06:00
3a801ba72d
Updated startup settings
* Added support for HiDPI devices
  * Only affects devices with a DPI >= 192
  * Most screen objects are doubled in size
* Updated .conkyrc
  * Vertical offset now set to 24 or 48 (to match URxvt)
  * Removed extra line after network adapters
* Updated .xinitrc
  * Removed dunst logic since `cbatticon` no longer sends notifications
  * Update .Xresources for all programs before `xrdb -merge`
  * Update hostname after `connect-to-network`
* URxvt windows are now based on a 16:9 ratio (instead of 4:3)
* Removed
  * .update_wallpaper (integrated with .xinitrc)
  * .urxvt_default_res (integrated with .update_dpi_settings)
* Fixes issue #45
2018-09-15 15:08:47 -06:00
cdef33d774
cbatticon removed from i3, notifications disabled 2018-09-15 12:38:27 -06:00
879927c37c
Add CoreStorage support to mount-all-volumes
* Checks for any CoreStorage partitions
* If found scans partition with testdisk to find inner volume(s)
* If found mapper devices are added with dmsetup
* Then the device list is built in mount_volumes()
2018-09-14 17:53:35 -06:00
821cb5cd46
Super+t URxvt windows auto-connect to tmux session 2018-09-12 21:02:24 -06:00
cb5ff20378
Start a VNC server during startup 2018-09-12 20:54:49 -06:00
d9a9ce0a86
Allow hw-diags to reattach to the tmux session
* The option to kill the current session and start a new was left in place
2018-09-12 18:56:39 -06:00
deec1746e4
Removed pydf to fix issue #44 2018-09-12 18:20:16 -06:00
34925a72c0
Update hostname via reverse DNS lookup
Should help differentiate systems
2018-09-12 17:44:23 -06:00
56e354f124
Avoid crash described in issue #39 2018-09-12 16:15:15 -06:00
83064d7c90
Fix issue #46 2018-09-12 15:54:36 -06:00
9f12f2c856
Added SMART 199/C7 warning/override to HW-Diags 2018-09-12 15:39:28 -06:00
8fec6fc5b9
Save raw I/O read rates in log 2018-09-12 14:46:04 -06:00
793581ac22
Rewrote I/O benchmark sections
* Displays graph during test and in summary
* Reduce test area to speedup the benchmark
* Addresses issues #48 & #49
2018-09-09 19:41:46 -06:00
5ef7c9b16e
Updated functions/network.py 2018-09-04 22:35:39 -06:00
a35be68780
Add net devices to Conky before starting 2018-09-04 22:22:21 -06:00
0d0defb8de
Merge branch 'datarec' into dev 2018-09-03 23:13:47 -06:00
240c55f407
Remove more whitespace from image/map names 2018-09-03 23:13:17 -06:00
78c6024b95
Merge datarec updates 2018-09-03 23:00:13 -06:00
d35dba7539
Prevent crash when retrying recovery
* IMO ddrescue was exiting too quickly to load the map data so I'll assume 0b
2018-09-03 22:58:20 -06:00
bd47f08996
Removed (Whole) label when imaging
* If only one partition was selected it would be incorrectly labeled "Whole"
  * Easier to remove the label than rework the data structures
2018-09-03 21:45:46 -06:00
9dbfce94d4
Fix auto continue logic 2018-09-03 21:44:28 -06:00
86fc23aed8
Fix pass number in status pane
* It was using the internal 0-2 instead of the display 1-3
2018-09-03 21:42:37 -06:00
dbf4559e14
Adjusted image/map filenames
* Partition filenames should include '_pX_' instead of just '_X_'
* Trailing whitespace should be removed
2018-09-03 21:39:32 -06:00
7cfdddcfbd
Fix using image file for clone source 2018-09-03 21:34:14 -06:00
b2e287520c
Fix help flags 2018-09-03 21:32:31 -06:00
84d7207d90
(Re)Add SMART values 196 and 199
* Value is only displayed, no additional aborts
2018-08-31 15:32:01 -06:00
bb631b39e9
Merge branch 'datarec' into dev 2018-08-19 19:28:03 -07:00
1d0378dd7b
Training wheels off 2018-08-19 19:23:24 -07:00
ee4cea3b01
Added systemd journal pane 2018-08-16 01:58:22 -07:00
0c8de47893
Reworked auto mode and pass status sections 2018-08-16 01:49:06 -07:00
2272d133f9
Fixed update_progress & update_sidepane 2018-08-16 01:18:06 -07:00
afaee53077
Fixed current_pass updates/progression 2018-08-16 00:43:09 -07:00
7d30a735fc
Fix retry option and settings sections 2018-08-16 00:18:25 -07:00
8461e581ea
Updated menu_settings() to use RecoveryState 2018-08-15 23:24:01 -07:00
5948d1a62f
Fixed menu_main() arguments 2018-08-15 22:50:47 -07:00
5ac05c943e
Removed unused function show_device_details() 2018-08-15 22:50:05 -07:00
ca78da4dd4
Updated show_selection_details() 2018-08-15 22:49:43 -07:00
bb270715c1
Updated run_ddrescue() to use new objects 2018-08-15 22:38:54 -07:00
53a899f967
Updated menu_main() to use RecoveryState obj
* Also fixed rescued size calculations (again)
2018-08-15 21:53:22 -07:00
e0a695a673
Enable help flags for aliases 2018-08-15 20:35:09 -07:00
1a983344c2
Updated update_progress() 2018-08-02 00:42:14 -07:00
d474c8b5d4
Updated build_outer_panes() *BROKEN*
* Script broken until update_progress() is fixed
2018-08-01 23:56:25 -07:00
c568668fd0
Re-added 'Create ticket folder?' section
* Only asked if imaging and mounting a local device for the destination.
2018-08-01 23:39:19 -07:00
177bf10e2d
Added select_parts() function
* This replaced menu_select_children()
* Removed menu_select_children()
2018-08-01 23:32:39 -07:00
459b78dcc3
Updated select_dest_path(), now select_path()
* Moved menu_select_path() code into select_path()
* Removed menu_select_path()
* Fixed formatting in get_dir_report()
2018-08-01 23:04:44 -07:00
ccf7f0686e
Updated select_device() to use DevObj()
* Also fixed child/parent check(s)
* Removed menu_select_device() since code was moved into select_device()
2018-08-01 22:25:01 -07:00
03bdb4b4b7
Reordered classes and removed old menu functions 2018-08-01 21:12:05 -07:00
7ac91fd312
Adjust pass 1 threshold 2018-08-01 20:33:35 -07:00
1e195f70fc
Fixed names and started updating build_outer_panes 2018-07-26 20:49:27 -06:00
53f0b93a5f
Misc bugfixes 2018-07-26 20:24:34 -06:00
30b703e025
Updated get_formatted_status() 2018-07-26 20:09:48 -06:00
6cdc4015e7
Updated menu_ddrescue() and related sections
* RecoveryState is updated before confirmation(s)
* New confirmation prompt that supports both cloning and imaging modes
* Refactored show_selection_details() to use new objects
  * Allows resumed state to be detected and prompt switched to "Resume?"
* Renamed function show_safety_check() to double_confirm_clone() for clarity
2018-07-26 19:34:51 -06:00
4047b956f5
Even better exception handling 2018-07-26 18:54:31 -06:00
a19ac4772b
Better exception handling 2018-07-26 18:29:14 -06:00
127c3b810d
Fixed image prefixes and removed unsused functions 2018-07-26 18:07:12 -06:00
d1eefd05ab
Major update to refactor for object-centricity
* Dest/map paths are now set in two steps:
  * The filename prefix is set when creating the DevObj()
  * The full paths are set when creating the BlockPair()
* Merged dest safety checks into RecoveryState.add_block_pair()
  * Mostly check_dest_paths() and dest_safety_check()
* Moved dir RWX checks to is_writable_dir()
* Moved mount RW check to is_writable_filesystem()
* Started merging menu_clone() and menu_image() into menu_ddrescue()
2018-07-26 17:31:39 -06:00
6aeba34bdb
Include path in dir report 2018-07-25 23:57:50 -06:00
66c7563335
Set details for Dev/Dir/Image objects
* Colored report data is generated during obj instantiation
  * Code has been moved into its own function
  * Entire colored string is now stored for each Obj
  * (Should make show_selection, etc more mode/Obj agnostic)
* loopback_dev vs image_path is now better separated
  * losetup is called in ImageObj.set_details()
  * loopback -D is still called during program cleanup/wrapup
* get_device_size_in_bytes() has been renamed get_size_in_bytes()
2018-07-25 23:31:04 -06:00
180eb0f9ef
Added base, dev, dir, and image objects 2018-07-25 21:44:40 -06:00
98b05c93bf
Moved menu_ddrescue() to ddrescue-tui-menu file
* Let's parse the sys.argv earlier in the process
2018-07-24 00:54:58 -06:00
fa3b3b11b0
Added methods: load_map and self_check(s)
* load_map() is called on BlockPair() instantiation
  * This partially replaces resume_from_map()
* Also fixed improper method declarations lacking the self argument
2018-07-24 00:39:22 -06:00
f5ff65bfe0
Started rewriting ddrescue.py
Added two classes:
* BlockPair()
  * Track source/dest pair specific data
  * update_progress() method for its own data
* RecoveryState()
  * Track BlockPair objects and overall state
  * update_progress() method for overall data

Reasons:
* Code readability
* Better status updates, code currently split between:
  * get_recovery_scope_size()
  * resume_from_map()
  * update_progress()
* Functions that should probably be merged into other functions:
  * get_recovery_scope_size()
  * set_dest_image_paths()
  * check_dest_paths()
* Logic that needs to be cleaned up:
  * Calculating overall recovery size
  * Pass "Done"ness and status strings need separated
  * Pass "Done"ness at the device and overall levels
  * Updating output for side pane status display
2018-07-23 23:25:12 -06:00
2430ba5e00
Resume session via map file(s)
* Read map file(s) and set progress, status, and current pass
2018-07-23 00:43:22 -06:00
f5994d851b
Allow more characters in get_simple_string() 2018-07-22 21:56:52 -06:00
cd955fe1fc
Add overall recovery status to side-pane
* --test-mode disabled by default
* Fixed bug that prevented escaping auto_run via Ctrl-c
* Fixed no-trim / no-scrape flag handling
* Only proceed device(s) have been selected in menu_select_children
2018-07-22 21:56:39 -06:00
1f63f91144
PEP8 Cleanup 2018-07-22 16:27:34 -06:00
9e48c1d1a6
Read data from MAP files (Big update)
* Added read_map_file() which uses ddrescuelog to create dict of current state
* Added --test-mode= option to expert menu
* Add size (in bytes) to all devs
  * Allows to calculate real total percent recovered
* Detect 100% completion via ddrescuelog -D
* Moved mark_complete / mark_incomplete code to update_progress()
* Update progress every 30s during ddrescue passes
* Fixed auto_run logic
2018-07-22 02:03:04 -06:00
6b28444c36
Fix function order 2018-07-21 20:31:39 -06:00
d7dfb34b02
Resume function working for imaging cases 2018-07-20 18:06:59 -06:00
37734e65bf
Bugfix: Paths are now relative to the current dir
* They were relative to the script's dir before
2018-07-20 17:53:09 -06:00
281607f3e4
Adjusted confirm/show details order 2018-07-20 13:57:55 -06:00
93c9b206d9
Added ddrescue-tui aliases wkclone and wkimage 2018-07-20 13:56:49 -06:00
6582293370
Initial resume code -- Needs testing 2018-07-19 01:34:14 -06:00
5f4598814a
Clear screen before printing abort warning
* Otherwise the "Abort" string is in the middle of the ddrescue output
* Also added secondary return code to be treated as a user abort
2018-07-19 00:45:04 -06:00
016f87b76c
Don't hide source dev when selecting dest dev
* Disable the entry instead
* It's more clear what's being done
2018-07-19 00:43:41 -06:00
7597394d61
Build real ddrescue cmd for Cloning or Imaging
* --force is only used for cloning
2018-07-18 23:53:05 -06:00
d09664bb7d
Misc cleanup 2018-07-18 23:37:02 -06:00
f84413f1a9
Fix SMART not available warning 2018-07-18 23:36:15 -06:00
e640caee74
Add dest image/map path sections 2018-07-18 23:19:42 -06:00
646e1a3764
Show list of authorized fstypes with error 2018-07-18 22:17:32 -06:00
19dcc87950
Pause when showing usage 2018-07-18 22:09:47 -06:00
e5ce254e8b
Verify destination FS is mounted read-write 2018-07-18 22:02:17 -06:00
f2c557f77c
Added safety checks for the destination
* Dev size / avail space checks
* Permission checks
  * No mount option checks (yet?)
2018-07-18 20:54:51 -06:00
88c28a3f25
Added auto-continue code
* Enabled by default
* Based on static thresholds per pass.
  * Pass 1: 85%
  * Pass 2: 98%
* If using child devices, all must be above the threshold to continue
2018-07-18 18:26:03 -06:00
9d91a28d7a
Add children pass, status, and update sections
* Updating device / child device status/progress done in mark_*() functions
* Add current pass description to main menu
* Current pass (overall) only updated if all children have passed
* Fix Pass 4 crash
2018-07-17 23:22:08 -06:00
c705ba6afc
Add pass completion detection sections
* Retry option now sets recovery back to pass 1
2018-07-17 22:10:37 -06:00
a12a591279
Moved SMART sections to a separate script
* Refresh rate is now handled by 'watch --interval'
* Allows for much simpler ddrescue execution / tracking
* Removed all 'SMART Report' sections from functions/ddrescue.py
* functions/hw_diags.py has been further extended
  * Supports full device paths (only for displaying attributes ATM)
  * Adds a timestamp when only displaying attributes
2018-07-17 21:05:37 -06:00
358191539c
Added run_ddrescue() and update_smart_report()
* Working "wait" loop while ddrescue is running.
2018-07-17 19:19:38 -06:00
d1d3e1592e
Added get_process() 2018-07-17 18:11:23 -06:00
7d851d2222
Add settings menu 2018-07-17 16:59:45 -06:00
310a2eb63a
Initial Main Menu code
* Required refactoring pass status code
* Need to add settings menu next
2018-07-17 16:01:29 -06:00
fd8ac7cf1a
Add child device selection menu for Image mode
* Can select either whole device or child dev(s), not both
2018-07-17 14:16:38 -06:00
de8f3bbd2b
Use image file instead of loopback device
* Still setup loopback for image details but use image directly in ddrescue
* Adjusted outer/side panes to use image path instead of loopback dev
2018-07-17 13:21:12 -06:00
29266f1611
Added initial Imaging source child dev support 2018-07-17 01:11:43 -06:00
1e4a3b6c0e
Fix provided_path for Imaging and adjust top panes
* Moved select_path menu sections to menu_select_path()
2018-07-17 00:49:41 -06:00
007d2ef692
Added select_path() for Image mode
* Can select the current path, a local device's volume, or enter manually
* Optionally add a ticket folder to path before imaging
2018-07-17 00:15:28 -06:00
c37dab58af
Updated mount_all_volumes(), now mount_volumes()
* Now allows mounting R/W
* Can restrict to a specific device's volume(s)
* Added more data to the returned report
2018-07-17 00:06:43 -06:00
6eb486c770
Extend get_simple_string() to support underscores 2018-07-17 00:05:47 -06:00
ae7ba9cba4
Fixed typo in mount-raw-image 2018-07-16 22:25:13 -06:00
9a27afebf7
Moved selection details into its own function
* Will allow for better duplication in Image mode
2018-07-16 22:19:39 -06:00
6643cf5d25
Moved outer pane section to its own function
* Will allow better duplication with Image mode
2018-07-16 22:08:00 -06:00
552868c26e
Moved safety check into its own function
* Will allow better duplication with Image mode
2018-07-16 22:04:09 -06:00
69909fa34c
Added safety check 2018-07-16 21:02:53 -06:00
855884ec93
Added initial update_progress() sections
* TODO: expand to support Image mode
2018-07-16 21:01:10 -06:00
ae4f2ac680
Added outer panes 2018-07-16 19:40:29 -06:00
adc1283330
Add pydf and alias df to pydf
* Fixes issue #40
2018-07-16 18:17:38 -06:00
b1541c0faf
Added alias for hexedit 2018-07-16 18:10:30 -06:00
b5d8a55031
Reordered functions 2018-07-16 18:07:12 -06:00
e56296d8b0
Consolidated device selection code
* Common code moved to select_device()
* Existing select_device() renamed menu_select_device()
* Fixed skip_device code
* Refactored source/dest vars into dicts
* Added confirmation after source/dest are selected
2018-07-16 18:01:06 -06:00
b2fc7ea860
Renamed script ddrescue-tui, added launcher script
Launcher script runs the python script in tmux (same as hw-diags)
2018-07-16 17:58:29 -06:00
0c3b90eb63
Add clone destination sections
* Hide source device in dest selection menu
2018-07-15 00:04:24 -06:00
cfbd0ec8f2
Add device selection menu 2018-07-14 23:45:08 -06:00
667223b3c2
Check passed source
* If it's an image, setup loopback dev
* If it's a child block dev, prompt with option to use parent block
* Show selected source details
2018-07-14 22:52:18 -06:00
8b1e19fa4b
Initial wk-ddrescue menu 2018-07-14 21:19:08 -06:00
d57b08ec6f
Update hw_diags so it can be used by wk-ddrescue 2018-07-14 21:17:32 -06:00
afef5e9052
Add safe alias for ddrescue 2018-07-14 19:41:52 -06:00
2Shirt
bbfcc2e3fe Hotfix: Handle size=None in human_readable_size() 2018-05-30 17:26:49 -06:00
2Shirt
38934027a4 v1.5.0 - Early Summer Update
Main Kit
* `mount-all-volumes` will now recognize LVM and RAID volumes
* Local sources supported by "User Data Transfer.cmd"
* Ticket numbers are now optional _(enabled/disabled via main.py)_
  * If disabled some sections will ask for a "search" prefix instead
  * If disabled some sections will use date/time instead
* AV check added to System Checklist and Diagnostics
* Adjusted the summary order in System Checklist and Diagnostics
* Reworked OS detection
  * Insider Previews are now properly detected
  * Windows 10 1803/April Update is now recognized
  * CurrentBuild number is displayed for unrecognized builds
  * Codenames are displayed for all recognized builds
* Bumped tool versions
  * Current Intel RST is now 16.0
* Moved SafeMode scripts to the Misc folder
* General bugfixes, including:
  * "Copy WizardKit.cmd"
  * "Build Kit.cmd"
  * "Enter SafeMode.cmd"
  * "Exit SafeMode.cmd"
  * Several scripts will now show a file/program missing error instead of crashing

Linux
* Deprecated `inxi` and will be removed in a future build.
* Added new `hw-drive-info` script to replace `inxi` command
* Added new `hw-info` script to replace `inxi` command
* Added several graphical viewers for file browsing (archives, images, PDfs, etc)
* Trimmed image size by removing unnecessary packages _(mostly dialup/networking packages)_
* `build-ufd` logs are now saved in the current user's $HOME/Logs folder
* `build-ufd` names UFDs as "${KIT_NAME_SHORT}_UFD" _(e.g. WK_UFD)_
* General bugfixes

WinPE
* Added VirtIO drivers
* Local sources are working again for Windows installs
* WinPE.log is now copied to new Windows installations
* General bugfixes, including:
  * "Build PE.cmd"
2018-05-25 14:28:48 -06:00
2Shirt
7559a673ef Added VirtIO drivers 2018-05-23 19:20:57 -06:00
2Shirt
9ed4c6209b papirus-icon-theme has moved to the community repo 2018-05-22 21:22:00 -06:00
2Shirt
2dabfd4020 Hide more root items 2018-05-22 20:55:11 -06:00
2Shirt
341f424eae Use a different label for combined kits
* WK_LINUX doesn't reflect what the UFDs actually contain
2018-05-22 20:47:18 -06:00
2Shirt
69cbbbc203 Suppress SDIO warning
If there's hidden folders at the root of the device it's running from
then it shows a red banner with a "you may have a virus!" warning..
This check has been disabled
2018-05-22 20:09:43 -06:00
2Shirt
c7ae1b1dc7 Moved SafeMode scripts into the Misc folder 2018-05-22 20:05:49 -06:00
2Shirt
da61ea3856 Updated SW diag/checklist summaries to match
* Also added AV check to SW diag
2018-05-22 19:33:21 -06:00
2Shirt
0b1d7bb4f3 Adjusted system_diagnostics.py messages 2018-05-22 12:49:00 -06:00
2Shirt
5b0e7b9dfe cbin copied correctly again in Copy WizardKit.cmd 2018-05-22 12:26:43 -06:00
2Shirt
0063de6846 Bump TeamViewer version 2018-05-22 12:24:33 -06:00
2Shirt
629d29ec99 Allow LVM devices in udevil
* Part of the #38 fix
2018-05-21 20:38:05 -06:00
2Shirt
24df753a40 Add support for LVM and RAID to mount-all-volumes
* Renamed get_mounted_data to get_mounted_volumes
* Report data is now a dict for better clarity
* Widened report hoping that LVM names will fit (they probably wont)
* This fixes #38
2018-05-21 20:25:12 -06:00
2Shirt
e6b7cc602b Report missing hw-info data
* Show UNKNOWN for missing DMI variables
* Suppress errors for systems w/out sound cards
* Suppress errors for glxinfo
* Keep revision numbers for network devices
2018-05-21 20:18:13 -06:00
2Shirt
25d34e5ace Copy WinPE.log to new Windows installations 2018-05-21 15:57:24 -06:00
2Shirt
70e4797b7a Refactored windows_image code
* Better names (e.g. 'Letter' instead of 'Source')
* Added 'Local' bool to simplify network-vs-local installs
* Only reassign the source letter if necessary
* Bugfix: Update 'Path' when reassigning a volume letter
* Fixes #33 (again)
2018-05-21 15:43:05 -06:00
2Shirt
3285a640c7 Merge branch 'dev' of github.com:2Shirt/WizardKit into dev 2018-05-18 21:04:49 -06:00
2Shirt
fb16b0e748 Deprecated inxi
* Displays too much info
* Fixes issue #37
2018-05-18 21:03:36 -06:00
2Shirt
352bf042b0 Fixed typo 2018-05-17 21:47:56 -06:00
2Shirt
7e8f9df877 Set Intel RST 16.0 as current release 2018-05-17 21:40:44 -06:00
2Shirt
1d3be750b4 Bump tool versions 2018-05-17 21:39:33 -06:00
2Shirt
0a8db0a3d9 Merge branch 'optional-tickets' into dev
* Fixes #36
2018-05-17 21:02:17 -06:00
2Shirt
50a200535e Fix log dir permissions 2018-05-17 20:59:57 -06:00
2Shirt
e305b3e60f Add warning for missing archive in extract_item() 2018-05-17 20:56:55 -06:00
2Shirt
27953bde5a Update backup/restore code
* Added support for local backups
* Added volume label detection for local backups
* Replace spaces in backup_prefix with underscores
2018-05-17 20:54:45 -06:00
2Shirt
b997a52385 Updated hw-diags section
* Use date_time instead of ticket_number if disabled
2018-05-17 18:17:36 -06:00
2Shirt
5902a51f9e Save build-ufd logs in ${SUDO_USER}'s $HOME/Logs 2018-05-17 18:15:39 -06:00
2Shirt
02054a8047 Updated system checklist and diagnostic scripts 2018-05-17 18:07:18 -06:00
2Shirt
db09236b26 Updated user_data_transfer sections 2018-05-17 18:06:26 -06:00
2Shirt
bec947262b Updated WinPE sections 2018-05-17 18:03:53 -06:00
2Shirt
3114b72178 Add ticket toggle var and get_simple_string func
* get_simple_string() will be used for backup prefixes
2018-05-17 17:57:45 -06:00
2Shirt
5ea499d6ff Assign volume letters before finding source image
* Fixes issue #33
2018-05-17 17:09:22 -06:00
2Shirt
223155b842 Abort on failed download(s)
* Fixes #29
2018-05-17 16:26:07 -06:00
2Shirt
598dea32c7 Save logs to tech's $HOME instead of root's 2018-05-17 15:32:38 -06:00
2Shirt
1c3520806c Avoid nohup.out creation 2018-05-17 15:17:14 -06:00
2Shirt
f1700e5ba9 Adjusted app associations in Thunar 2018-05-17 15:13:26 -06:00
2Shirt
f7d55306be Adjusted packages
* Added ARandR
* Added GPicView
* Added XArchiver
* Switched to Evince over MuPDF
2018-05-17 15:11:36 -06:00
2Shirt
96e008bec7 Switch back to broadcom-wl
* Forgot that DKMS requires the Linux headers and that would bloat the image
2018-05-16 16:04:50 -06:00
2Shirt
2305c047de Adjusted live Linux packages
* Switched to broadcom-wl-dkms
  * Hopefully it doesn't break everything...
* Removed several unwanted packages (for example: modem/dialup packages)
  * Fixes issue #30
* Packages to be added are now tracked in .linux_items/packages/live_add
* Packages to be removed are now tracked in .linux_items/packages/live_remove
2018-05-16 15:11:42 -06:00
2Shirt
0902a7997f Moved SafeMode sections into functions/safemode.py
* Allows for better descriptions of the actions being taken
* Allowd for better error handling
* Fixes issue #34
2018-05-14 12:58:06 -06:00
2Shirt
6868988cec Added antivirus check to the system_checklist
* Fixes issue #31
2018-05-14 12:11:38 -06:00
2Shirt
8ea17268c7 Fixed local sources for user_data_transfer
* Added support for local images and root folders
2018-05-14 09:42:30 -06:00
2Shirt
e751696307 Avoid crash if VCR+ installers are missing 2018-05-14 08:01:09 -06:00
2Shirt
ebffd2a2dd Added more missing file warnings
* Part of the fix for #27
2018-05-14 07:54:33 -06:00
2Shirt
17dc572c4a Added warnings for missing tools 2018-05-13 18:57:27 -06:00
2Shirt
79d2af6e0a Fix issue #27
Several popen_program() calls were not inside try blocks causing full crashes
2018-05-13 18:20:42 -06:00
2Shirt
18c535dcfd Bugfix for OS detection
* Avoids CurrentBuild collision between Win8 and Win8.1
* Fix DisplayName formatting
2018-05-13 16:09:07 -06:00
2Shirt
ee2bcd5aea Refactored OS build detection
* Known build data moved to settings/windows_builds.py
* OS version statically set in windows_builds.py
* Added Insider Previews to recognized builds
  * Shown in red due to their very short support windows
* Windows 8 and Windows 8.1 are now separate versions
* Added codenames to Vista and 7 (for fun!)
* Unrecognized builds have the CurrentBuild number in the DisplayName
2018-05-12 20:13:54 -06:00
2Shirt
97fa91725e Better font support for compton and urxvt 2018-05-12 17:04:47 -06:00
2Shirt
8f0393d173 v1.4.2 - Goodbye Snow
Main Kit
* Fixed issues #21 & #22
* Open speedtest during User Checklist (fixes #24)
* Tool version updates
* Various Bugfixes

WinPE
* Various Bugfixes

Linux
* `build-ufd` now uses a GPT layout with a protective MBR by default
  * Can still build MBR (Legacy) with the `--use-mbr` flag
  * (Hopefully) fixes #20
* `hw-diags`
  * Re-added keyboard test (fixes #25)
  * Add drive I/O benchmark test (fixes #23)
    * All results are in MB/s
* Various Bugfixes
2018-04-26 14:37:03 -06:00
2Shirt
f6d3938ecb Prevent crashes when KIT_NAME_FULL contains spaces 2018-04-20 10:43:13 -06:00
2Shirt
f0bbb1c57e Merge branch 'dev' of github.com:2Shirt/WizardKit into dev 2018-04-16 14:25:42 -06:00
2Shirt
94f74fa1a0 Merge branch 'dev' of https://github.com/2Shirt/WizardKit into dev 2018-04-16 14:21:06 -06:00
2Shirt
04f7ae2f21 Better unit handling during I/O Benchmarks
* All results are in MB/s
2018-04-16 14:17:28 -06:00
2Shirt
b5202d3646 Extend I/O Benchmark to test whole dev 2018-04-16 13:26:35 -06:00
2Shirt
945c771b6e hw-diags-iobenchmark set as executable 2018-04-16 13:01:21 -06:00
2Shirt
501191b388 Include hidden items in EXTRA_DIR/ 2018-04-16 11:37:09 -06:00
2Shirt
c7eb3921fd Fix Linux graphics issue
* Using safer backend for compton
* Removed xf86-video-intel
  * See https://wiki.archlinux.org/index.php/Intel_graphics#Installation
2018-04-16 10:47:57 -06:00
2Shirt
d1f4944a09 Changed linux std user name to tech
* Prevent build failure when ${KIT_NAME_SHORT} starts with a digit
2018-04-16 10:07:51 -06:00
2Shirt
c18d86d8c5 Q-Dir filename changed 2018-04-16 10:07:15 -06:00
2Shirt
9ddfaab8bc inxi moved to AUR 2018-04-16 09:48:05 -06:00
2Shirt
ae18668a72 Type in AIDA64 URL 2018-04-16 09:42:37 -06:00
2Shirt
d893a80f03 PyPI moved 2018-04-16 09:42:03 -06:00
2Shirt
d7111b0e41 Readding noto-fonts 2018-04-16 08:50:59 -06:00
2Shirt
71885212e8 Tool version bumps 2018-04-16 08:47:34 -06:00
2Shirt
e55dbeeb23 Add dd drive I/O Benchmark test
* All tests: runs if SMART=CS/OVERRIDE & BADBLOCKS=CS
* All drive tests: runs if SMART=CS/OVERRIDE & BADBLOCKS=CS
* I/O tests are readonly, blocksize=4M, and limited to 16 Gb
* Fix issue #23
2018-04-16 02:58:34 -06:00
2Shirt
a7079d4eae Added GPT/PMBR support to build-ufd
* Defaults to GPT/PMBR
  * (Hopefully) fixes #20
* Can still build MBR (Legacy) with the --use-mbr flag
2018-04-15 21:00:45 -06:00
2Shirt
c7c23bc7a1 Open speedtest at the end of the User Checklist
* Fix issue #24
2018-04-15 19:19:03 -06:00
2Shirt
4b0dde6efe Re-add keyboard test to HW diag menu
* Fix issue #25
2018-04-15 10:25:49 -06:00
2Shirt
8e22aa22b0 Fix issue #22 2018-03-15 15:28:54 -06:00
2Shirt
b080200118 Fix issue #21 2018-03-15 14:30:46 -06:00
2Shirt
77f3458d71
Expanded openbox-patched dependencies 2018-03-09 14:30:22 -07:00
2Shirt
acd33243eb v1.4.1 - Spring Cleaning
* Bumped version for several tools
* Fixed issues #11, #12, & #19
* Fixed issue causing crashes in `User Data Transfer.cmd`
* Fixed issue causing crashes in `Install SW Bundle.cmd`
* Various bugfixes

* Bumped version for several tools
* Various bugfixes

* Improved `Build Linux` script
  * Better handling of AUR package dependencies
  * Added workaround for `sudo` timeouts
* Improved `build-ufd` script
* Added `mount-raw-image` script
  * Mount dd images (multiple partitions supported)
* Fixed issues #15 & #17
* Various bugfixes
2018-03-09 13:07:22 -07:00
2Shirt
ac1ee5f695 More HWiNFO updates 2018-03-08 19:09:22 -07:00
2Shirt
f37b1cdf44 Updated Build Kit.cmd 2018-03-08 18:37:47 -07:00
2Shirt
6d503fb6c7 Enable TLS 1.2 for PowerShell scripts 2018-03-08 17:33:48 -07:00
2Shirt
2899e34f5e
Update sources.py
Version bumps
2018-03-08 17:02:34 -07:00
2Shirt
5c035cf3b8
Update build_pe.ps1
Version bumps
2018-03-08 16:54:06 -07:00
2Shirt
aadba319b1
Update build_kit.ps1
Version bumps
2018-03-08 16:44:49 -07:00
2Shirt
6f80f0e708 Updated Build Linux --build-iso / main.py sections
* --build-iso loads main.py from $LIVE_DIR instead of $BUILD_DIR
  * Ensures that the settings in $LIVE_DIR and the final ISO match
* --build-iso loads main.py silently
  * Avoids editing the file twice under --build-all
* The ownership of the $OUT_DIR and ISO are set to $REAL_USER instead of root
2018-03-06 04:47:09 -07:00
2Shirt
d9155b9b7e Removed volume icon from i3status bar
* Avoid differing level readouts in i3
  * The volume level is calculated differently for volumeicon and i3status
2018-03-06 04:08:35 -07:00
2Shirt
e4edb809f5 Adjusted AUR package build process
* Don't install runtime dependencies while building packages
* Fix issue #17 (again)
2018-03-06 02:49:21 -07:00
2Shirt
06a72e29fb Add (optional) build-time dependency for TestDisk 2018-03-06 02:26:56 -07:00
2Shirt
1cd52813b1 Add (undocumented) dependency for openbox-patched 2018-03-06 02:13:41 -07:00
2Shirt
f86f2b9ad4 Add (undocumented) build dependency for hfsprogs 2018-03-06 02:03:01 -07:00
2Shirt
4dbb7ae7f1 Using arc-gtk-theme instead of gtk-theme-arc-git
* Avoids (undocumented) gtk3 build-time dependency
* The community package is based on the new soft-fork of the main repo
  * Link for details: https://github.com/horst3180/arc-theme/issues/840
2018-03-06 01:53:00 -07:00
2Shirt
da1d958c11 Removed PulseAudio
* Audio is rarely used so ALSA is fine
* Should help with issue #17
2018-03-06 01:19:56 -07:00
2Shirt
51f9f91195 Wait for user input if run_elevated fails
* This is a workaround for su/sudo timeouts
* Should help with issue #17
2018-02-28 13:32:45 -07:00
2Shirt
d82ad55113 Fix issue #19 2018-02-28 13:15:00 -07:00
2Shirt
49c7880e6a Added mount-raw-image script
* Allows for easier mounting of dd images and the partitions within
* Fixes issue #18
2018-02-28 12:39:27 -07:00
2Shirt
1d2940b92e Updated tool versions in the PowerShell scripts 2018-02-21 18:11:01 -07:00
2Shirt
a5630c2837 Updated HWiNFO download sections 2018-02-21 18:08:47 -07:00
2Shirt
6d5abd3b92
Update launchers.py
Bump current IRST version
2018-02-21 14:02:53 -07:00
2Shirt
64f22fbe30
Updated update.py
Support new HWiNFO archives
2018-02-21 14:02:11 -07:00
2Shirt
751f9422d3
Updated sources.py
Broken sections:
* HWiNFO merged their downloads into a single zip
* There's a new IRST version
2018-02-21 13:59:27 -07:00
2Shirt
1851e05598 Updated README to reflect the new build-ufd script 2018-02-21 13:07:13 -07:00
2Shirt
57cae8c813 Merge branch 'safer-build-ufd' into dev
Build tests passed
Fixes issue #15
2018-02-21 12:53:05 -07:00
2Shirt
f950d6d91b Bugfix: Only copy EXTRA_DIR if ${EXTRA_DIR} is set
It was running 'rsync [OPTIONS] /* /mnt/Dest/' because ${EXTRA_DIR} was empty
2018-02-21 12:47:56 -07:00
2Shirt
b17a8de350 Made umount code more explicit
Avoids some unnecessary warnings
2018-02-21 12:46:57 -07:00
2Shirt
483344af70 Updated build-bfd 2018-02-21 10:35:47 -07:00
2Shirt
0d3f1e87cf Started rewrite of build-ufd
* Using the BASH3 Boilerplate as a base for the new script
* The new version requires explicitly setting all sources
  * Will avoid ambiguous matches / collision issues seen in issue #15
  * Better ensures that the intended sources are used
  * Still verify that '.bin' exists to ensure a valid "Main Kit" source
2018-02-21 00:34:53 -07:00
2Shirt
2fbd401416 Updated year in license 2018-02-20 14:49:54 -07:00
2Shirt
e5ac9e0d1c A typo a day keeps the sanity away 2018-02-20 14:06:42 -07:00
2Shirt
bb6ea3694b Added missing dependencies to fix issue #17 2018-02-20 13:39:37 -07:00
2Shirt
a0c6569eaf
Fix issue #12
The download no longer gets wrapped in a gzip archive.
2018-02-09 11:50:51 -07:00
2Shirt
7d1826f094
FastCopy version bump 2018-02-08 13:40:14 -07:00
2Shirt
e958eedfb6 Fix handing of path separators to prevent crashes 2018-02-07 20:15:31 -07:00
2Shirt
f844977d62 v1.4.0 - Wizard's New Year
* Added ability to upload crash log to a webdav share
  * Verified functionailty with Nextcloud 12
* Added missing CBS fix launcher
* Rewrote user_data_transfer sections
  * Added ability to answer "All" to extract items
  * Fixed issue that caused an infinite recursion involving Windows.old items
  * Unified code for both image and folder sources by using SourceItem objects
* Various bugfixes

* Various bugfixes

* Improved safety checks for the "Build Linux" script
* Updated hw-sensors script to skip all non-temperature sensors
* New build-ufd script to combine the three parts of the kit together
  * See README.md for details
* Various bugfixes
2018-02-02 18:25:24 -07:00
2Shirt
15be408a20
Update README.md 2018-02-02 18:13:23 -07:00
2Shirt
987ea3ab84 Merge branch 'dev' of github.com:2Shirt/WizardKit into dev 2018-02-02 16:41:05 -07:00
2Shirt
bd8151a8cb Improved safety checks for build-ufd 2018-02-02 16:37:13 -07:00
2Shirt
9feff50913 Added syslinux dependency 2018-02-02 16:34:22 -07:00
2Shirt
44acb9b755
Update windows_setup.py 2018-01-30 17:28:34 -07:00
2Shirt
7bebe745a1
Update build_pe.ps1 2018-01-30 17:10:54 -07:00
2Shirt
96c6997a44 Update function docstrings 2018-01-30 16:50:28 -07:00
2Shirt
89c343943f Replaced remaining show_info calls with show_data 2018-01-30 16:00:59 -07:00
2Shirt
e0db7560e6 Better server share mounting
* Added ability to mount read-only or read-write
  * Allows the same main.py file to be used for all build scripts.
2018-01-30 15:23:46 -07:00
2Shirt
fbf956c651 Finished build-ufd script 2018-01-30 13:33:42 -07:00
2Shirt
16ea653ca4 Removed unused main.py settings 2018-01-28 18:23:59 -07:00
2Shirt
314bc24d09 Removed PuTTY-PSTFP from tools list
* Only used for uploading client info (which was removed)
2018-01-28 18:22:52 -07:00
2Shirt
3ac2d8d1d4 Bugfix: Setting Windows time should work again
* Was using the wrong variable name
2018-01-28 18:19:57 -07:00
2Shirt
012da00821 Removed ClientInfo upload code 2018-01-28 17:55:40 -07:00
2Shirt
c24554720f Add option to upload crash details
* Disabled by default, enabled via main.py ENABLE_UPLOAD_DATA
* Upload destination set via main.py CRASH_SERVER variable
2018-01-28 17:48:42 -07:00
2Shirt
8e05cb0e40 Remove stale AUR packages from cache during build 2018-01-27 15:52:49 -07:00
2Shirt
1cd3571253 Using safer bash config for Build Linux script 2018-01-27 15:19:04 -07:00
2Shirt
3d8af3cb0a Switching to mprime over mprime-bin
* Source url has been broken for a while now
* mprime doesn't take too long to compile
2018-01-27 12:48:11 -07:00
2Shirt
d96256fd87 Add reboot/shutdown entries when not in X 2018-01-27 12:45:37 -07:00
2Shirt
30dcd8758e Added a "Yes to all" option to User Data Transfer 2018-01-26 18:35:05 -07:00
2Shirt
a7451f86ba Added choice() function
* Provides a simlilar interface to the Windows choice command.
2018-01-26 18:32:33 -07:00
2Shirt
f0ae207890 Improved source scanning for user data transfers
* Fixes recursion bug when Windows.old folders are present
* Combined logic for file/folder sources and WIM sources
* Code uses proper folder separators for the running OS
  * (e.g. '\' for Windows and '/' for the rest)
2018-01-26 17:52:43 -07:00
2Shirt
f7f3f0d53c
Updated info.py
Should fix #10
2018-01-17 17:22:45 -07:00
2Shirt
8f4ec41359 Merge branch 'dev' of https://github.com/2Shirt/WizardKit into dev 2018-01-15 19:09:30 -07:00
2Shirt
fbd7f47749 Added build-ufd script
* Includes safety checks to avoid unintentional data loss
2018-01-15 17:30:47 -07:00
2Shirt
5a1f9f0961 Added Cleanup CBS launcher 2018-01-15 14:28:31 -07:00
2Shirt
3bc45e9832 Fix issue #7 by switching to Font Awesome v4 2018-01-15 14:16:59 -07:00
2Shirt
480ac48aae Removed '+' from positive temps in hw-sensors 2018-01-15 14:13:35 -07:00
2Shirt
0e87bf55a0 Enable HW-Diags for more devices
* Skip all removable WizardKit devices
* Fixes issue #8
2018-01-15 13:45:58 -07:00
2Shirt
10cf7a1575 Updated hw-sensors
* Filter out non-temp sensors
* Adjusted formatting
* Partially addresses issue #9
2018-01-15 12:57:27 -07:00
2Shirt
5c21f8569c wimlib was added to the community repo 2018-01-12 16:13:02 -07:00
2Shirt
f3d8daf8e2 Use HTTPS for git clones during build 2018-01-12 16:12:29 -07:00
2Shirt
07f6179dab i3-gaps has been added to the community repo 2018-01-12 15:23:17 -07:00
2Shirt
2cce7c34d6 Fixed copying main.py to settings 2018-01-12 15:22:07 -07:00
2Shirt
41b818ad99 v1.3.1 - Wizard Hat Trick
## Main Kit ##
* Updated several tool versions
* Various bugfixes
  * _(Including another fixed set-eol.ps1 call)_

## Windows PE ##
* Fixed using local Windows sources
* Various bugfixes

## Linux ##
* New build script
  * Better package handling
  * Packages split into build dependencies, aur, and live
  * Isolinux/pxelinux/syslinux/refind setup during build process
* main.py settings has replaced arch.conf and wifi.conf
* Hardware diagnostic scripts
  * All scripts rewritten in Python
  * Prime95
    * Added ablity to abort test without cancelling other tests
    * The tempuratures are saved from the end of the test
  * NVMe/SMART
    * New NVMe tests since SMART support is limited for NVMe devices
    * Progress is displayed for SMART self-tests
    * The script waits on the self-test for the polling-time + 5min
      * Unless it detects completion after 60 seconds
  * badblocks
    * Optionally run when the device health is unknown
      * These overrides are done per-device
  * Results screen
    * Final temps from Prime95 tests displayed
* Tempurature sensors rewritten
  * Rewritten in python
  * Report CoreTemps first then others (CPU temps)
  * Wrap into two columns as necessary (if the window is big enough)
2017-12-30 18:45:55 -07:00
2Shirt
3a8aa66f18 v1.3.0 - Wizard Hat Trick
## Main Kit ##
* Updated several tool versions
* Various bugfixes

## Windows PE ##
* Fixed using local Windows sources
* Various bugfixes

## Linux ##
* New build script
  * Better package handling
  * Packages split into build dependencies, aur, and live
  * Isolinux/pxelinux/syslinux/refind setup during build process
* main.py settings has replaced arch.conf and wifi.conf
* Hardware diagnostic scripts
  * All scripts rewritten in Python
  * Prime95
    * Added ablity to abort test without cancelling other tests
    * The tempuratures are saved from the end of the test
  * NVMe/SMART
    * New NVMe tests since SMART support is limited for NVMe devices
    * Progress is displayed for SMART self-tests
    * The script waits on the self-test for the polling-time + 5min
      * Unless it detects completion after 60 seconds
  * badblocks
    * Optionally run when the device health is unknown
      * These overrides are done per-device
  * Results screen
    * Final temps from Prime95 tests displayed
* Tempurature sensors rewritten
  * Rewritten in python
  * Report CoreTemps first then others (CPU temps)
  * Wrap into two columns as necessary (if the window is big enough)
2017-12-30 17:55:27 -07:00
2Shirt
fb4f7c99eb Updated Build PE.cmd
* Fixed set-eol.ps1 call
2017-12-30 17:06:05 -07:00
2Shirt
ac2bc78ab8 Silly workaround for issue #7 2017-12-30 16:57:59 -07:00
2Shirt
c57c24d245 Forgot a few more $install_dir lines 2017-12-30 15:48:21 -07:00
2Shirt
95bb27c165 Forgot a install_dir line 2017-12-30 15:10:19 -07:00
2Shirt
3ab3e4cd2a Updated README 2017-12-30 12:37:14 -07:00
2Shirt
c7901d1328 Merge branch 'linux' into dev 2017-12-30 12:30:27 -07:00
2Shirt
b70f1bda9a Removed %INSTALL_DIR% code
* Using hardcoded 'arch' in it's place
* The initrd boot variables weren't being set properly
2017-12-30 12:17:30 -07:00
2Shirt
b441738950 Fixed opening logs in WinPE 2017-12-30 12:05:24 -07:00
2Shirt
43e8746c46 Fixed using local Windows images 2017-12-30 12:04:48 -07:00
2Shirt
6eef031ebf
Update build_pe.ps1
FastCopy version bump
2017-12-30 10:51:31 -07:00
2Shirt
19f087cb8b
Update sources.py
IOBit Portable version bump
2017-12-30 09:55:48 -07:00
2Shirt
a2737e3102
Update sources.py
FastCopy version bump
2017-12-30 09:48:56 -07:00
2Shirt
886d9ae8c2 Updated build_additions.txt to use ${install_dir} 2017-12-29 01:33:42 -07:00
2Shirt
0b8670f6ef Copying memtest86 to LIVE_DIR fixed 2017-12-29 01:32:49 -07:00
2Shirt
3c07c5b265 New EFI config 2017-12-28 22:08:58 -07:00
2Shirt
4ab8ea8664 Adjusted syslinux settings 2017-12-28 20:59:51 -07:00
2Shirt
02793b1e73 Added Memtest86 2017-12-28 15:51:19 -07:00
2Shirt
28cda82704 Added more build.sh customizations
* Inserts the contents of build_additons.txt into build.sh right before make_iso
2017-12-28 15:49:18 -07:00
2Shirt
698546f823 Switch to single-line disk descriptions 2017-12-27 19:36:22 -07:00
2Shirt
7092391c47 Set safer defaults for Live Linux (CLI) entries 2017-12-27 19:19:56 -07:00
2Shirt
c0cbdc6923 Added pause after audio and network tests 2017-12-27 19:19:29 -07:00
2Shirt
c4adbd3ac0 Added wimboot and fixed pxe/syslinux backgrounds 2017-12-27 18:59:49 -07:00
2Shirt
cde9953b2a New iso/pxe/syslinux config
* Uses main.py settings for KIT_NAME
* Uses archiso %vars% which are expanded during build.sh
* Pxelinux/Syslinux use backgrounds from Images/
2017-12-27 17:24:58 -07:00
2Shirt
aac9badc4f Reoragnized .linux_items/include
* Removed include/iso items since they've been integrated into the new scripts
* Moved include/live/* to include/ since there's only one "include" folder now
2017-12-27 16:40:34 -07:00
2Shirt
524096165c Forgot to update_progress during badblocks tests 2017-12-27 14:02:04 -07:00
2Shirt
5d70124c39 Updated badblocks section
* Reduced worker pane size
* Save badblocks logs in LogDir
2017-12-27 13:42:10 -07:00
2Shirt
18ce079aa3 Open log after HW diags 2017-12-27 13:11:25 -07:00
2Shirt
346b9f492c Workaround to ensure we switch to X during boot
* It was starting but you'd have to switch to tty2 and back to tty1 to see anything
2017-12-27 12:38:25 -07:00
2Shirt
29f663fd0e Convert main.py from CRLF to LF for BUILD_LINUX 2017-12-27 05:00:26 -07:00
2Shirt
70e1655efe Merge branch 'new-linux-scripts' into linux
* Finished Python rewrite, ready for testing
  * (I think)
2017-12-27 04:53:06 -07:00
2Shirt
938ee7afd5 Renamed mount-all-volumes foh option to gui 2017-12-27 04:50:18 -07:00
2Shirt
094251b93f Forgot to remove python-libtmux package references 2017-12-27 04:47:23 -07:00
2Shirt
6ddf3fca67 Re-added hw-diags quick disk check function 2017-12-27 04:45:59 -07:00
2Shirt
62c77fb696 removed remaining old, unused scripts 2017-12-27 04:27:40 -07:00
2Shirt
16c20ac6ea Cleanup and fix results screen during abort
* Renamed run_smart to run_nvme_smart to match rest of the code
* Mark NVMe/SMART status as NS earlier in a couple more cases
* Prevent crash when all tests are run and then aborted during Prime95
2017-12-27 04:22:02 -07:00
2Shirt
7fbbde56c6 run_badblocks() working
* Re-added and updated hw-diags-badblocks
2017-12-27 04:01:54 -07:00
2Shirt
d4146c9c35 Added warning when no sensors are detected 2017-12-27 03:58:56 -07:00
2Shirt
0ea523a2cf Show Prime95 final temps in result screen 2017-12-27 02:12:32 -07:00
2Shirt
0bab107e24 Updated results screen formatting 2017-12-27 02:11:28 -07:00
2Shirt
24e72f2f35 SMART section finished
* The script waits for the self-test for polling-time+5min
  * Unless it detects completion after 60 seconds
* Fixed missing linebreaks in progress panes
* BREAKING: TESTS data structure reworked to support per-dev status
2017-12-27 01:42:04 -07:00
2Shirt
579a747878 Started work on results screen 2017-12-26 21:43:23 -07:00
2Shirt
a6917fc129 run_mprime() finished
* Results now determined from log files
2017-12-26 15:57:36 -07:00
2Shirt
8ff33547c4 Save temps just before stopping Prime95 2017-12-26 15:16:15 -07:00
2Shirt
c1fe3d8538 Added --nocolor option to hw-sensors
* Going to use it to export the "final" temps before killing Prime95
2017-12-26 15:08:46 -07:00
2Shirt
03d7646685 Enabled logging for hw-diags 2017-12-26 14:17:53 -07:00
2Shirt
74ba8fb758 Added hw-diags-prime95 and still removing libtmux 2017-12-24 18:46:02 -07:00
2Shirt
57b1d246c2 Going to drop libtmux and use tmux directly 2017-12-24 17:13:48 -07:00
2Shirt
6f456f5c47 Added show_disk_details() 2017-12-24 15:41:13 -07:00
2Shirt
59a449e7e5 Cleanup
* Renamed 'Health OK' to 'Quick Health OK'
  * Better implies that we're not done testing
* Renamed SMART sections to NVMe/SMART
  * Dropping SMART short-tests for NVMe drives
2017-12-24 13:19:23 -07:00
2Shirt
87c09c4da0 New method for gathering SMART/NVMe data
* Replaced smartmontools with smartmontool-svn
  * Adds JSON exporting which makes parsing the data easier
* Using nvme-cli for NVMe drives instead of smartctl
  * NVMe support in smartctl is still experimental and inconsistent
* New "Health OK" detection
  * This is used to determine if a disk is okay to be tested
    * e.g. an IDE disk w/out any SMART data now requires explicit overriding
  * NVMe disks are set using the "critical_warning" attribute
  * SMART disks are set using the "overall-health" attribute
2017-12-24 00:21:33 -07:00
2Shirt
8acb493006 typo 2017-12-23 19:53:28 -07:00
2Shirt
a733af679c Forgot to set apple-fans to auto after Prime95 2017-12-23 19:41:09 -07:00
2Shirt
8e26e09fe6 Reordered functions 2017-12-23 19:40:09 -07:00
2Shirt
19d32dda0b Reduce file opens during update_progress() 2017-12-23 19:36:57 -07:00
2Shirt
5d6e138d29 Started hw-diags & hw-diags-inner rewrite 2017-12-23 19:11:50 -07:00
2Shirt
a7606a4b5c Print script names and audio tests output 2017-12-23 14:24:15 -07:00
2Shirt
a1b72c0aeb New hw-diags-network script 2017-12-22 00:45:42 -07:00
2Shirt
1760c030ef New hw-diags-audio script 2017-12-21 23:34:56 -07:00
2Shirt
e19bcf1000 Renamed apple_fans to apple-fans
* Done to match naming scheme
2017-12-21 23:18:52 -07:00
2Shirt
374d4a1c98 Removed old mount-backup-shares script 2017-12-21 23:17:45 -07:00
2Shirt
e96d491285 New mount-backup-shares script 2017-12-21 23:16:50 -07:00
2Shirt
1cfa008b8e New MS Word search script 2017-12-21 22:31:21 -07:00
2Shirt
96ef259b4c New HW sensors script
* Rewritten in python
* Report CoreTemps first then others
* Wrap into two columns as necessary (if the window is big enough)
2017-12-21 17:25:09 -07:00
2Shirt
a84b2dfef6 Thunar no stays open after mount-all-volumes call 2017-12-19 07:06:42 -07:00
2Shirt
a230810dbc Prevent duplicate conky entrie creation on relogin 2017-12-19 05:10:52 -07:00
2Shirt
04656c50b1 Updated dunst config
* Moved notifications to the left of conky
* Restart dunst after 5s
  * Fixes issue where the first notifcation(s) would stay indefinitely
2017-12-19 05:09:27 -07:00
2Shirt
9c04a5dc83 Misc updates 2017-12-18 19:37:49 -07:00
2Shirt
6bbc15d4f1 Updated: mount-all-volumes
* Added switch for foh mode instead of using symlinks
* Updated i3/openbox shortcuts
2017-12-18 03:50:15 -07:00
2Shirt
183ef78ea9 mount-all-volumes rewrite complete
* New print layout
* All inxi calls replaced with findmnt and lsblk
  * Added util-linux to packages/live
2017-12-18 03:36:56 -07:00
2Shirt
8260746d7f Simplified Build scripts for Kit and PE
* If the script doesn't exist when called then an :UnknownError is called
  * Checking if it exists and jumping to an additional error is a bit redundant
  * dandi_set_env check remains to alert the tech WADK is missing
2017-12-18 00:49:25 -07:00
2Shirt
3b0b103590 Added CRLF checks for main.py to build script
* For consistancy between platforms
2017-12-18 00:49:05 -07:00
2Shirt
5ea03da0a4 Converted all python scripts to LF/UNIX 2017-12-18 00:47:47 -07:00
2Shirt
c1e391132b Added CRLF checks for main.py to build scripts
* Some of the source files changed from crlf to lf and I'm not sure when/how
* This is likely overkill but it didn't take long
2017-12-18 00:45:18 -07:00
2Shirt
a33a54c5e6 Started python conversion 2017-12-17 21:22:53 -07:00
2Shirt
1613d767bf Moving away from arch.conf 2017-12-17 18:57:03 -07:00
2Shirt
d71ca1a38b Removed .network_start 2017-12-17 18:22:26 -07:00
2Shirt
ef6dbc197a Updated main settings and timezones 2017-12-17 18:09:14 -07:00
2Shirt
ce48c717eb Updated i3 setup
* nox+i3 boot cmdline supported
  * Pretty sure this isn't going to be used
* Set more windows to default to floating
2017-12-17 16:54:37 -07:00
2Shirt
d3dab9a2ea Added pacinit alias 2017-12-17 16:50:06 -07:00
2Shirt
451b5868a1 Updated services 2017-12-17 16:42:08 -07:00
2Shirt
42f7fa3e7a More NetworkManager fixes 2017-12-17 14:53:55 -07:00
2Shirt
11eb66c81d Disabled LFS
* Release zip files contain LFS pointers instead of the real files
* Images/* will now be full files again
2017-12-17 14:27:56 -07:00
2Shirt
144e94b31a Readded openbox theme 2017-12-17 13:26:16 -07:00
2Shirt
0b21331747 Bugfix: NetworkManager autostarts again 2017-12-17 13:19:04 -07:00
2Shirt
e8e3d09731 Bugfix: locale generation should work again 2017-12-17 13:15:31 -07:00
2Shirt
81df06fd8b Added usage prompt and renamed functions 2017-12-17 12:47:13 -07:00
2Shirt
94d26902dc Set folder permissions before building
* Prevents issues when using GitHub zip archives
2017-12-17 12:05:41 -07:00
2Shirt
daa19626a6 Fixed lean.zsh-theme download/install 2017-12-17 11:50:46 -07:00
2Shirt
4abea24310 Avoid loading settings twice 2017-12-17 11:15:42 -07:00
2Shirt
cc2e42d348 Bugfix: autologin 2017-12-13 18:01:58 -07:00
2Shirt
c159602a70 Download mirrorlist during build 2017-12-13 13:20:43 -07:00
2Shirt
e37b1529b0 Removed customize_airootfs.sh and new SSH code
* Code has been merged into Build Linux
  * (releng copy is updated in place)
* SSH key for wktech now generated at build time
* Hostname is now set using main.py
* Passwords are now set using main.py
* Timezone is now set using main.py
2017-12-13 13:11:28 -07:00
2Shirt
f97028bbdd Updated Build Linux
* More consistant variable names
* Ensure that main.py is read for build-arch and copy-archiso
* Bugfix: typo in build.sh call
2017-12-13 10:58:26 -08:00
2Shirt
c780a03361 Fixed .linux_items permissions 2017-12-13 10:56:13 -08:00
2Shirt
58e968467b Removed conflicting pacman.conf 2017-12-13 10:55:58 -08:00
2Shirt
957e1a2d77 Use Images/Linux.png as wallpaper 2017-12-13 10:02:47 -08:00
2Shirt
faffd66d09 Further trimmed .linux_items
* oh-my-zsh is now downloaded during update_archiso
  * (Including the lean theme)
* packages.both removed
  * It's now built during update_archiso
2017-12-12 15:02:25 -08:00
2Shirt
708ffe1157 Update airootfs from releng
Idea:
* Remove unwanted files
* Modify / Replace wanted files
* Add additional files
2017-12-12 12:27:47 -08:00
2Shirt
a8033f0a02 .linux_items cleanup 2017-12-12 12:21:20 -08:00
2Shirt
b9e5f1921f Reorganized include folders
* include/live is "burned" into the sfs files during build-arch
* include/iso is added to the iso folder before iso creation
* Added --copy-archiso flag to Build Linux
2017-12-12 11:34:05 -08:00
2Shirt
87e651cb07 Better package list handling 2017-12-12 11:18:15 -08:00
2Shirt
2af3e552d4 Updated Build Linux script
* Uses main.py settings for branding
* Use current user instead of "builduser"
* Better elevation handling
2017-12-12 10:39:49 -08:00
2Shirt
2c5d0faae0 Still working on the new build script 2017-12-11 23:37:12 -08:00
2Shirt
3b0b6f32c2 Started new Linux build script
* Not done yet
2017-12-11 21:36:31 -08:00
2Shirt
4d42fac799 Updated README.md 2017-12-06 19:56:06 -08:00
2Shirt
94ce0e50f0 Added Linux images 2017-12-06 19:55:32 -08:00
2Shirt
5fbc888343 Merge live Linux into main project 2017-12-06 19:54:57 -08:00
Alan Mason
8b56ca30a2 Setup LFS 2017-12-06 19:46:23 -08:00
Alan Mason
b077602a42 v1.2.2 - WizardHats
More UTF-8
2017-12-06 13:31:09 -08:00
Alan Mason
6ff8d76b59 Write logs in UTF-8
Fixes #6
2017-12-06 13:23:28 -08:00
Alan Mason
5d7cad37e4 Bugfix: Prevent crash when checking Office/QuickBooks network installers 2017-12-06 12:50:34 -08:00
Alan Mason
ac1e839876 Merge branch 'master' into develop 2017-12-04 15:17:45 -08:00
Alan Mason
2fd5dd28d9 Removed compress_bin.cmd
No longer used
2017-12-04 15:14:19 -08:00
2Shirt
a6b74ce3d0
v1.2.1 - WizardHats
Updated README.md

* Always forget something
2017-12-04 15:07:40 -08:00
Alan Mason
50c70c3ab9 v1.2.0 - WizardHats
## Main Kit ##
* Updated build script to work with new folder layout
* Browser sections have better profile & installation detection/reporting
* Browser extension section updated to support Firefox Quantum
* User Data Transfers will display local sources before remote sources
* Various bugfixes

## Windows PE ##
* WizardKit PE has been integrated into this project
* The build script has been replaced with a new PowerShell script
  * This downloads the tools, builds a new PE image, and exports x32 & x64 ISOs
  * main.py is opened for editing before the PE images are built
  * ISO names use KIT_NAME_SHORT (e.g. WK-WinPE-20XX-XX-XX-amd64.iso)
* BitLocker CLI tool "manage-bde" has been added
* All PE Python scripts have been updated
  * These scripts also use the main.py file for customization
  * Better handling of damaged drives during backup & setup sections
  * Partition type descriptions have been trimmed to fit on a single line
  * Backup and Setup sections are now logged
    * These logs can be reviewed and saved before returning to the main menu
  * "No disk" errors seen when scanning empty card-readers should be silenced
* Various bugfixes
2017-12-04 14:57:30 -08:00
Alan Mason
1aed752be0 build_pe.ps1 now uses main.py settings
* main.py is copied to BUILD and then opened in notepad for editing
* ISO names use KIT_NAME_SHORT
2017-12-04 14:50:03 -08:00
Alan Mason
a5a4278c3e Expanded browser section
* Support installing adblock for browsers with no profiles detected
* Warn tech about missing browsers if profiles are detected
2017-12-04 12:19:57 -08:00
Alan Mason
4130932d58 Install extensions after Ninite bundle
This prevents the Ninite Firefox install from wiping out the FF extension(s)
2017-12-04 11:44:27 -08:00
Alan Mason
d0b7d116c5 Disabled process killer 2017-12-04 10:04:07 -08:00
Alan Mason
affa8b5af8 version bump 2017-12-04 09:11:02 -08:00
Alan Mason
abd41f3c94 Updated url for Lenovo Support 2017-12-04 09:06:24 -08:00
Alan Mason
1cbd1782f7 User data transfers working.
Bugfix: cleanup_transfer() call was missing dest_path
2017-12-04 08:46:19 -08:00
Alan Mason
26c1a47fec Sorted data transfer sources for menu_select 2017-12-04 08:20:11 -08:00
Alan Mason
b0068e0dce Bugfix: browsers.py
* Profile backup detection fixed
2017-12-04 07:43:53 -08:00
Alan Mason
d78971019f Bugfix: install_firefox_extensions() 2017-12-04 07:35:31 -08:00
Alan Mason
d737a35078 Refactored check_os()
* Safer registry queries
* Only query CurrentBuild, CurrentVersion, and ProductName
* Service Pack / update status determined by the build number
* Set build & version to -1 instead of 'Unknown' if str to int/float fails
  * Might prevent crashes by not mixing str/num types
2017-12-04 07:13:37 -08:00
Alan Mason
355b6deb7d Bugfix: init_client_dir.cmd
%iso_date% was being referenced before being set
2017-12-04 05:55:56 -08:00
Alan Mason
f1c07ae252 Update ERUNT launcher to use Backups instead of Info 2017-12-03 22:19:48 -08:00
Alan Mason
80bf1fe3c2 Bugfix: system_checklist.py activation section 2017-12-03 22:19:36 -08:00
Alan Mason
110084fce6 Added FirefoxExtensions to update.py 2017-12-03 19:54:44 -08:00
Alan Mason
9414c04395 Pause during abort() 2017-12-03 18:02:32 -08:00
Alan Mason
96515bd2b8 Bugfix: system_diagnostics.py
Respect ENABLED_UPLOAD_DATA value
2017-12-03 17:46:45 -08:00
Alan Mason
45dc982f44 Don't copy SDIO or Update Kit.cmd 2017-12-03 17:45:18 -08:00
Alan Mason
09b23c2ffa Prevent double timestamps in show_installed_ram() 2017-12-03 17:36:02 -08:00
Alan Mason
83074f7460 Registry backups saved to Backups instead of Info 2017-12-03 17:35:25 -08:00
Alan Mason
9193c16090 Bugfix: activation.py
Reversed updates from commit b47c214
2017-12-03 14:57:34 -08:00
Alan Mason
3b31b7fd29 Bugfix: update.py 2017-12-03 14:52:51 -08:00
Alan Mason
197b695fac Bugfix: Copy WizardKit.cmd
* I'm sure I've fixed this before..
2017-12-03 13:06:42 -08:00
Alan Mason
c2df5835b5 Avoid copying WinPE folders during Build Kit.cmd 2017-12-03 10:55:54 -08:00
Alan Mason
975a43f1d5 Ask to open logs in WinPE menus
* Instead of automatically opening them
2017-12-03 09:50:30 -08:00
Alan Mason
5c5b13b33c Updated select_minidump_path() 2017-12-03 09:49:42 -08:00
Alan Mason
e892cd3406 Attempt to silence more "No disk" errors 2017-12-03 09:48:59 -08:00
Alan Mason
1848c7dc66 Fix rare crashes caused by damaged disks 2017-12-03 09:28:12 -08:00
Alan Mason
7e4a0259c7 updated partition_uids sections 2017-12-03 09:08:50 -08:00
Alan Mason
075e25462e Properly handle damaged filesystems 2017-12-02 16:58:45 -08:00
Alan Mason
da0dae2083 Trimmed partition descriptions 2017-12-02 16:33:26 -08:00
Alan Mason
9ac25dbab0 Updated Build Kit.cmd
* Use OUT_KIT instead of OUT to match Build PE's OUT_PE
2017-12-01 19:53:43 -08:00
Alan Mason
750112cfb2 WinPE files moved into place. 2017-12-01 19:43:42 -08:00
Alan Mason
ef9775273c Merging WizardKit PE into main project 2017-12-01 19:33:21 -08:00
Alan Mason
adbfa038b6 Cowardly moving WinPE out of the way 2017-12-01 19:32:27 -08:00
Alan Mason
b6cc250892 Added Images folder to PE 2017-12-01 19:30:14 -08:00
Alan Mason
e13b057eac Sync functions\* with WinPE versions 2017-12-01 19:24:09 -08:00
Alan Mason
d8c625d2ad Reorganized root folder
* .root_items --> .kit_items
* ConEmu.png --> Images\ConEmu.png
2017-12-01 19:14:56 -08:00
Alan Mason
7a13a15514 Bugfix: bcdboot (again) 2017-12-01 18:39:02 -08:00
Alan Mason
c52681be05 Bugfix: wimlib sections 2017-12-01 18:31:06 -08:00
Alan Mason
ffa2abb2b4 Adjusted partition info display 2017-12-01 17:13:20 -08:00
Alan Mason
541660484b Bugfixes for backup sections
** Still broken though
2017-12-01 17:12:27 -08:00
Alan Mason
20a730c6e7 Bugfix: bcdboot
Need to use WinPE's copy instead of local
* Win7 version doesn't have the /f option
2017-12-01 15:48:00 -08:00
Alan Mason
19176d30cf Open logs and cleanup 2017-12-01 15:46:58 -08:00
Alan Mason
dce31bf5dd Windows Setup working 2017-12-01 15:28:15 -08:00
Alan Mason
d075f17bfa Added run_diskpart(script)
* Takes list, writes script, runs script, and returns result
2017-12-01 15:27:10 -08:00
Alan Mason
a9822ae9bd Bugfix Tool paths 2017-12-01 13:31:42 -08:00
Alan Mason
8d729d9066 Bugfix: find_windows_image() 2017-12-01 13:16:21 -08:00
Alan Mason
5e5d5834d9 Bugfix: PE_TOOLS paths 2017-12-01 13:15:56 -08:00
Alan Mason
5dc7b72c61 Merge branch 'python-overhaul' into dev
# Conflicts:
#	.bin/Scripts/functions/common.py
#	.bin/Scripts/functions/disk.py
#	.bin/Scripts/functions/windows_setup.py
#	.bin/Scripts/functions/winpe_menus.py
#	.bin/Scripts/winpe_root_menu.py
2017-12-01 12:48:09 -08:00
Alan Mason
f608e9b88c Show title before getting ticket_number 2017-12-01 12:42:46 -08:00
Alan Mason
56c3960451 Bugfix: menu_setup() 2017-12-01 12:42:23 -08:00
Alan Mason
a6f9518648 Bugfix: find_windows_image() 2017-12-01 12:41:39 -08:00
Alan Mason
5d32f3c94a Bugfix: Abort logic 2017-12-01 12:27:53 -08:00
Alan Mason
97e93e812b Bugfix: partition_uids import 2017-12-01 12:27:26 -08:00
Alan Mason
06affc3bd1 Bugfix: menu_tools() 2017-12-01 12:26:37 -08:00
Alan Mason
ab6fd19c02 Bugfix: menu_select() 2017-12-01 12:26:11 -08:00
Alan Mason
5aab8a98e3 Bugfix: Was trying to use 'Env' before it was set. 2017-12-01 12:24:11 -08:00
Alan Mason
cd3f3ed8d3 Always more cleanup 2017-12-01 12:02:05 -08:00
Alan Mason
387b1740e4 Enabled DISM logging 2017-12-01 11:57:56 -08:00
Alan Mason
46582c1833 Bugfix: Forgot I renamed/replaced menu.py 2017-12-01 11:57:38 -08:00
Alan Mason
1b00c1c9a3 New folder layout
* Main ideas
  * Match WizardKit layout
  * Keep original folders clean

* Build work is now done in $Root\BUILD
* $Temp is now set to $Root\BUILD\Temp
* New iso files are put in $Root\OUT_PE
2017-12-01 11:47:12 -08:00
Alan Mason
1b84b1dd91 Merge branch 'python-overhaul' into dev 2017-12-01 11:09:11 -08:00
Alan Mason
90c4189942 Updated winpe_menus.py & cleanup
* Removed "Windows Family" logic
  * Win7 will now have recovery tools setup
* Added format_disk()
2017-12-01 11:05:40 -08:00
Alan Mason
deb7c76ffb windows_setup.py done 2017-12-01 10:12:59 -08:00
Alan Mason
33924c183e Updated find_windows_image() & setup_windows()
* Merged File and Ext dict entries
* Using psutil instead of mountvol
2017-12-01 09:59:19 -08:00
Alan Mason
c09d7ab603 updated functions\backup.py 2017-11-30 23:06:41 -08:00
Alan Mason
c951380482 functions\disk.py done 2017-11-30 23:06:23 -08:00
Alan Mason
a0460d6a82 updated select_disk() 2017-11-30 22:35:16 -08:00
Alan Mason
6903078ee0 updated prep_disk_for_formatting() 2017-11-30 22:19:31 -08:00
Alan Mason
fbedd79aa3 updated scan_disks()
* Renamed from get_attached_disk_info()
2017-11-30 22:10:45 -08:00
Alan Mason
e9ff02375f More letter updates 2017-11-30 21:52:51 -08:00
Alan Mason
b47c214133 More misc cleanup 2017-11-30 21:48:25 -08:00
Alan Mason
deb1e8f4fd Volume letter updates
* Added reassign_letter()
  * Attempts to reassign a volume to better ensure predictable letters
  * i.e. Local Windows source volume letter == 'I'
* Adjusted code to avoid the "hidden" assign_volume_letters() call in select_disk()
2017-11-30 21:33:55 -08:00
Alan Mason
4ed6d41d10 Updated menu / title sections
* Added set_title() which sets window title and global_vars['Title']
* menu_select() will now display global_vars['Title'] above title
  * (If it exists)
  * Bugfix: fixed a few bad calls of menu_select()
2017-11-30 21:08:52 -08:00
Alan Mason
850a1fca73 updated menu_backup() 2017-11-30 20:31:46 -08:00
Alan Mason
b96e5f3be6 updated verify_wim_backup() 2017-11-30 20:31:37 -08:00
Alan Mason
7133089d31 updated select_backup_destination() 2017-11-30 20:03:19 -08:00
Alan Mason
c043c3398d Reordered functions 2017-11-30 19:56:42 -08:00
Alan Mason
67f08c5042 updated prep_disk_for_backup()
* Partition['Image Path'] is set to the full destination path
  * (i.e. ['Image Path'] + '\\' + ['Image File']
  * Partition['Image File'] variable has been removed
* Simplified ['Backup Warnings'] section
* Added fix_path()
  * Replaces unsupported characters/strings with underscores
2017-11-30 19:45:59 -08:00
Alan Mason
45f0b4d2b1 updated backup_partition() 2017-11-30 17:17:00 -08:00
Alan Mason
b0db11cb4a Added wimlib-imagex
Woops, it's been missing for a bit..
2017-11-30 16:50:14 -08:00
Alan Mason
80cb9b8cea Function separation done.
* Split backup.py into disk & backup
  * disk.py is for lower level disk management
* Renamed functions\data.py's select_disk() to select_volume()
  * Avoid name collision with functions\disk.py's select_disk()
*
2017-11-30 16:40:40 -08:00
Alan Mason
9a3234c822 Simplified Windows share sections 2017-11-30 16:07:51 -08:00
Alan Mason
520cc4bca0 Merge branch 'dev' into python-overhaul 2017-11-30 16:00:27 -08:00
Alan Mason
d54c9da56f Set Notepad++ default font 2017-11-30 15:58:47 -08:00
Alan Mason
b5b03e4dfe Fixed notepad replacement 2017-11-30 15:19:43 -08:00
Alan Mason
a249cdeb7e Adjusted Notepad++ settings 2017-11-30 14:41:29 -08:00
Alan Mason
e136283a71 Added clear_screen() 2017-11-30 14:40:44 -08:00
Alan Mason
11cf75d4a6 Added clear_screen() 2017-11-30 14:08:12 -08:00
Alan Mason
dd20cdd36e Renamed X:\WK to X:\.bin
* Allows functions\common.py to be used as-is
2017-11-30 13:40:22 -08:00
Alan Mason
446867b611 Started Python refactoring
# Plan
* Use current WizardKit scripts as the new base
* Split functions into multiple files under Scripts\functions\
* Review menus and menu-flow
* Log everything and open log at end of menu-flows
  * (before returning to the root/main menu)
2017-11-30 13:39:00 -08:00
Alan Mason
5eaefb3e41 Misc cleanup 2017-11-30 13:34:39 -08:00
Alan Mason
c0d80e8727 Updated error message 2017-11-30 09:59:00 -08:00
Alan Mason
7c7008bdda Merge branch 'add-update-tools' into dev 2017-11-28 17:51:12 -08:00
Alan Mason
b689c33c96 Bugfix: Updating over current tools is working 2017-11-28 17:49:32 -08:00
Alan Mason
3e63a50f92 Drivers and Killer Drivers
* Add-WindowsDriver section to include extra drivers in WinPE
* Added Killer Network Driver to the download list
* Bugfix: $Drivers was not set properly
2017-11-28 17:48:52 -08:00
Alan Mason
cf69505c3f Merge branch 'add-update-tools' into dev 2017-11-28 14:59:45 -08:00
Alan Mason
7a58e6e859 Simplified tool downloads 2017-11-28 14:42:42 -08:00
Alan Mason
330b24641f Bugfix: REG_EXPAND_SZ keys now handled correctly 2017-11-28 14:40:43 -08:00
Alan Mason
675ff57f66 Simplified WinPE package installation 2017-11-28 14:39:33 -08:00
Alan Mason
c4ea4fcd24 Script can now download the tools 2017-11-28 02:10:49 -08:00
Alan Mason
bc33a7fcb3 Disable notepad replacement for now 2017-11-28 01:56:27 -08:00
Alan Mason
7ad26a6182 Fix Q-Dir extraction 2017-11-28 01:55:55 -08:00
Alan Mason
7048696367 Added the rest of the tools 2017-11-28 01:16:40 -08:00
Alan Mason
15c9839bec Added update section
* Needs testing
2017-11-27 23:42:15 -08:00
Alan Mason
a027c61d54 Notepad++ version bump 2017-11-27 23:27:02 -08:00
Alan Mason
c9642cb030 v1.1.0 - WizardHat Edition
* Added download progress for PowerShell build phase
2017-11-27 23:11:43 -08:00
Alan Mason
5d588f3563 PowerShell cleanup
* Show download progress again
  * Done by leaving $progressPreference set to system default
* If there are errors during download, then bail before extracting data
* Moving to a new style guide for PowerShell scripts
  * Using this: https://poshcode.gitbooks.io/powershell-practice-and-style/
  * Encoding set to UTF-8 BOM instead of UTF-8
2017-11-27 22:58:17 -08:00
Alan Mason
8a438dce78 Added "Build PE.cmd" & "build_pe.ps1"
* Removed "make.cmd" since the above replace it
* Merged WK folders into a single _include folder
  * This is copied into place for both amd64 and x86
* Using a new method to replace notepad with Notepad++
2017-11-27 20:47:45 -08:00
Alan Mason
97319df29e Updated .gitignore 2017-11-27 20:42:44 -08:00
Alan Mason
e1536850a6 Removed make.cmd 2017-11-27 20:41:53 -08:00
Alan Mason
3ca0ab2079 Added WinPE.jpg 2017-11-27 20:24:17 -08:00
Alan Mason
613f4eee37 build_pe.ps1 updated and working 2017-11-27 20:24:04 -08:00
Alan Mason
23b7dc89ca Updated build_pe.ps1 2017-11-27 18:09:30 -08:00
Alan Mason
44514b2fef Initial PowerShell rewrite done. 2017-11-27 17:04:24 -08:00
Alan Mason
7b12a8ca91 Merged tool settings
Extra files for the tools are now stored in WK\_include and copied into place during the build.
2017-11-27 16:03:51 -08:00
Alan Mason
fa950f3565 Dropped support for PowerShell 6.0 on Windows 7
The build script will now abort and display a warning in this scenario
2017-11-27 13:32:00 -08:00
Alan Mason
e7dd6a1b54 PowerShell 6 on Win7 failed to build
Start-Process "" -Wait doesn't wait preventing proper extraction of tools.
See these issues:
* https://github.com/PowerShell/PowerShell/issues/2091  (Main issue)
* https://github.com/PowerShell/PowerShell/issues/3747
* https://github.com/PowerShell/PowerShell/pull/4463
2017-11-27 13:29:06 -08:00
Alan Mason
0c5912d345 Enable debug mode in PowerShell via %DEBUG% 2017-11-27 11:23:27 -08:00
Alan Mason
87ac27b5cc Moving to a new style guide for PowerShell scripts
Using this: https://poshcode.gitbooks.io/powershell-practice-and-style/
2017-11-26 14:42:27 -08:00
Alan Mason
1e41954f62 Added Build PE.cmd launch script
* Checks for elevation and relaunches script if necessary
* Checks for WADK installation and loads DandISetEnv.bat
  * This sets the proper variables
* Runs PowerShell in the same window to preserve DandI vars
2017-11-26 14:15:09 -08:00
Alan Mason
546dc77f03 v1.0.1 - WizardHat 2017-11-25 16:33:53 -08:00
Alan Mason
7a1616c8a7 Updated build_kit.ps1 2017-11-25 16:32:07 -08:00
Alan Mason
b8a088d3b6 2017-11: Retroactive Updates
* Network drivers disabled (for now until the sigs are manually verified)
* Replaced Notepad2-Mod with Notepad++
2017-11-24 21:15:32 -08:00
Alan Mason
1e02eb44a5 2017-08: Retroactive Updates
* Faster WIM creation
  * (Removed compression)
2017-11-24 21:13:50 -08:00
Alan Mason
50d53beef6 2017-04: Retroactive Updates
* Adjusted data loss waning
2017-11-24 21:12:54 -08:00
Alan Mason
827f9bce6a 2017-03: Retroactive Updates
Fixed using local windows images

* Bugfix: remove_volume_letters() was not preserving the "keep" letter
  * First issue: if keep==None then it would crash
  * Second issue: The passed keep value was outdated (See bugfix below)
* Bugfix: undesired call of assign_volume_letters()
  * prep_disk_for_formatting() resets the volume letters thus breaking local installs
  * By moving find_windows_image() to be called afterwards this is fixed but perhaps another refactor is in order?
2017-11-24 21:11:56 -08:00
Alan Mason
1da75165f9 2017-02: Retroactive Updates
* The working dir should now be X:\WK
  * Useful when quiting out of python to troubleshooting
* Safer setup and formatting cleanup
  * Backup summary is now more detailed
  * Setup messages now more closely match the backup messages
  * More checks are done during under format_gpt() and format_mbr()
  * Setup specific functions have been refactored for easier reading
* ConEmu settings update
  * No longer minimizes to the systray
    * This helps to prevent locking yourself out of the console
  * Added new color schemes
* Bugfixes and Formatting
  * Install Windows has been renamed Setup Windows to match function names
  * Setup Windows summary screen is more detailed now
  * Setup Windows drive formatting auth questions are now at the end
    * Also reworded warning
  * Bugfix: all regex calls now case insensitive.
    * i.e. You can answer yes with 'y' or 'Y' or 'Yes' now
2017-11-24 21:09:57 -08:00
Alan Mason
e05d2ce862 2017-01: Retroactive Updates
* Added get_volumes()
  * This makes Assign/Remove letters sections more readable
* Adjusted WinPE launch settings
  * Should now chdir to X:\WK
  * Added menu.cmd for easier (re)launching of menu
    * i.e. just type `menu`
* Enabled  user to return to the main menu after a major crash
* make.cmd: Changed iso names to match the Linux build names
* Refactored backup imaging code
  * More readable
  * More consistent variable naming
  * Moved classes and abort function to functions.py
* Refactored disk/partition info sections
* Refactored Windows Setup sections
  * Much more readable menu section
  * Majority of code moved to functions.py
  * More consistent variable naming
  * Boot mode detection now a callable function
  * Expanded WinRE section to match current recommended setup
    * WinRE is now setup for Legacy setups running Win8+
    * Problems during setup will again be reported as errors instead of warnings
  * Verify source windows images and abort if invalid
    * Allows for earlier aborts which will reduce wasted time
* Reordered functions to be in alphabetical order
* Updated tools
  * Enabled file/folder size display in Q-Dir
  * Switched back to the standard ConEmu (instead of the Cmder build)
  * Updated scripts for Python 3.6
    * This version has a different sys.path so the import code was adjusted
  * REMOVED Explorer++
  * REMOVED HWMonitor

* Bugfix: fixed discrepancies between x32 & x64
* Bugfix: relaunching the menu now stays in the current window
2017-11-24 21:08:39 -08:00
Alan Mason
93250b22ed 2016-10: Retroactive Updates
* HWiNFO added
* Q-Dir added
  * Perhaps a replacement for Explorer++
2017-11-24 21:07:03 -08:00
Alan Mason
8cf135d9eb 2016-09: Retroactive Updates
* Added WIM backup image verification phase
* WIM backup images now created much faster
  * This was done by not creating the extra integrity information
* Readded support for swm files
* ComEmu will now open in fullscreen mode without the titlebar
2017-11-24 21:05:40 -08:00
Alan Mason
29c1870957 2016-08: Retroactive Updates
## Major Update ##

* Converted all scripts to Python
* Replaced ConEmu with ConEmu-maximus5 from cmder
* Adjusted the menu so that entries are still aligned for lists of 10+
  * This applies to both numbered and lettered entries
* Can now select which MiniDump path to load for BlueScreenView
* General disks / volumes
  * Better detection of non-partitioned drives
  * Detect and store the partition MBR Type / GPT GUIDs
    * Added a Partition UID list for better identification of partitions
    * Hide the extra partition details if currently accessible
2017-11-24 21:04:39 -08:00
Alan Mason
cf4092f57b 2016-06: Retroactive Updates
* Don't load PowerShell profiles (-NoProfile)
  * This should reduce the startup time for most actions in WinPE
* MCT Windows 10 isos no longer have "Technical Preview" in the names
* make.cmd script simplified and now removes more language folders
2017-11-24 21:03:11 -08:00
Alan Mason
919c4e73a2 2016-04: Retroactive Updates
* Finished code for 32-bit and 64-bit builds
  * Unified scripts for use under both builds
2017-11-24 21:01:27 -08:00
Alan Mason
6818922ba8 2016-03: Retroactive Updates
* Started work on building 32-bit and 64-bit images
2017-11-24 20:59:32 -08:00
Alan Mason
4ed08ebb9b 2016-02: Retroactive Updates 2017-11-24 20:55:45 -08:00
Alan Mason
41272c03ab 2016-01: Retroactive Updates 2017-11-24 20:50:41 -08:00
Alan Mason
c7b5abb0bc 2015-12: Retroactive Updates 2017-11-24 20:48:55 -08:00
Alan Mason
18c2c4a961 2015-11: Retroactive initial commit 2017-11-24 20:47:02 -08:00
Alan Mason
537973fa90 v1.0.0 - WizardHat
## Major Update ##

* Build Kit.cmd
  * This script will build a fully functional kit requiring only PowerShell 3.0+ be installed prior.
* All launchers are now generated during builds and updates (by update_kit.py)
  * This allows for a much leaner code-base to manage
* Lots of bugfixes, cleanup, and other adjustments.
2017-11-23 20:45:15 -08:00
Alan Mason
d64dcca07d Updated README 2017-11-23 20:21:12 -08:00
Alan Mason
0b4b7a2bbb Saved the update to the wrong file.. 2017-11-23 20:21:01 -08:00
Alan Mason
d8d105c9ae Set core.autocrlf to false
* This should (hopefully) allow for tagged releases to have the correct line endings.
2017-11-23 15:24:53 -08:00
Alan Mason
964ec1e037 Adjusted free_space formatting 2017-11-23 15:13:33 -08:00
Alan Mason
b1fa59c32d Adjusted Activation menu
* If CS: exit_ecript(), else return to menu
2017-11-23 14:55:27 -08:00
Alan Mason
b02a62a917 Updated BIOS activation sections 2017-11-23 14:35:32 -08:00
Alan Mason
dcd5fa1b7a Added VCRedist install script and launcher 2017-11-23 13:54:04 -08:00
Alan Mason
9ba9ece589 Removing Visual C++ 2015 runtimes
* VCRedist 2017 installs as an update for 2015 (http://disq.us/p/1hjcta0)
  * This prevents installing or uninstalling the 2015 versions after installing 2017
  * (Because both 2015 and 2017 use these regkeys: HKEY_LOCAL_MACHINE(Wow6432Node|)\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0)
2017-11-23 13:43:49 -08:00
Alan Mason
5dda9ea491 FIx BleachBit sections 2017-11-23 12:20:39 -08:00
Alan Mason
70c0868a4c Misc fixes 2017-11-23 12:20:06 -08:00
Alan Mason
0dc01f48cb Updated Notepad++ settings 2017-11-22 22:37:49 -08:00
Alan Mason
db55a6f2f1 Merge branch 'new-update-script' into develop 2017-11-22 22:16:47 -08:00
Alan Mason
2023ac959b Added ConEmu.png
* Placed in the root diretory for easy swapping before building the kit
* Build Kit.cmd copies the file into place
2017-11-22 22:16:30 -08:00
Alan Mason
e711258850 Updated SafeMode Enter & Exit scripts 2017-11-22 21:02:36 -08:00
Alan Mason
98b95cbcb5 Merge branch 'new-update-script' into develop 2017-11-22 20:58:59 -08:00
Alan Mason
9977ddf365 Made Ninite optional in install_sw_bundle 2017-11-22 20:58:42 -08:00
Alan Mason
6250ee8865 Copy Ninite files to Installers during update 2017-11-22 20:56:26 -08:00
Alan Mason
38cb129add Added confirmation to cbs_fix.py 2017-11-22 20:11:31 -08:00
Alan Mason
68aed8ff34 Fixed menus shown by select_disk()
* Also auto-selects the first disk (if it's the only one detected)
2017-11-22 20:11:07 -08:00
Alan Mason
2ddb878b54 Added confirmation to sfc_scan.py
* Should help avoiding undesired scans
2017-11-22 20:06:56 -08:00
Alan Mason
0416f83448 Fixed broken menus 2017-11-22 20:06:08 -08:00
Alan Mason
c78172ede0 Print script titles to start Python scripts 2017-11-22 19:34:17 -08:00
Alan Mason
62b338ac0a Adjusted BlueScreenView launcher 2017-11-22 19:07:57 -08:00
Alan Mason
3be83e1d0a Merge branch 'refactor-launch-cmd' into develop 2017-11-22 19:06:48 -08:00
Alan Mason
1c0b8b6b19 Bugfix: LaunchOfficeSetup
* Forgot to update %OFFICE_SERVER% to %OFFICE_SERVER_IP%
2017-11-22 19:05:55 -08:00
Alan Mason
76a1752454 Merge branch 'develop' into refactor-launch-cmd 2017-11-22 16:48:52 -08:00
Alan Mason
1011fef0ce Missing update to update.py 2017-11-22 16:47:55 -08:00
Alan Mason
48e4e70155 Updated usage message 2017-11-22 16:46:14 -08:00
Alan Mason
c4b768e114 Merged Console and Program sections
* BREAKING: This uses a new L_TYPE: Executable
  * Added new L__CLI variable to run inside ConEmu
2017-11-22 16:45:11 -08:00
Alan Mason
19f744f8f8 Avoid double pause in Launch.cmd
If Launch.cmd aborted it would cause the launcher to abort as well.
If the error was handled by Launch.cmd then we can assume the launcher ran correctly.
2017-11-22 15:33:29 -08:00
Alan Mason
aef692dddf Removed unused L_CHCK and L_WAIT variables 2017-11-22 15:30:04 -08:00
Alan Mason
dbcaa54f5f QuickBooks split 2017-11-22 15:01:15 -08:00
Alan Mason
b60244a2f9 LaunchOffice cleanup 2017-11-22 15:01:02 -08:00
Alan Mason
88bb009cf2 Split PyScript and some cleanup 2017-11-22 14:50:55 -08:00
Alan Mason
00e0ff5e2d Split PSScript section 2017-11-22 14:42:49 -08:00
Alan Mason
c526c3d1b9 Split Program and Office sections
* Also renamed TestPath for clarity
2017-11-22 14:41:21 -08:00
Alan Mason
bd649f2189 Split LaunchConsole into Native & ConEmu parts 2017-11-22 14:01:54 -08:00
Alan Mason
ec97e4deb3 ConEmu sections updated
* Use a ConEmu variable instead of manually setting IN_CONEMU=True
* USE_CONEMU renamed RELOAD_IN_CONEMU for clarity
2017-11-22 13:51:13 -08:00
Alan Mason
2b7e3f38fe Simplified extraction code
* BREAKING: No longer supports single-file archives.
  * All archives in .cbin are now extracted to their own folder.
2017-11-22 13:49:47 -08:00
Alan Mason
a6d991ca60 Reordered sections 2017-11-22 13:48:07 -08:00
Alan Mason
e28492f32f Fixed a few launchers 2017-11-22 13:45:59 -08:00
Alan Mason
ef844d510c Another attempt to fix CRLF/LF issues 2017-11-22 13:45:23 -08:00
Alan Mason
950110ec8a Adjusted launcher naming 2017-11-22 12:01:43 -08:00
Alan Mason
d8214cce14 Attempt to fix CRLF/LF issue
* Generated launchers were using inconsistent endings causing very strange crashes.
  * New plan: strip current endings and let Python handle them instead.
2017-11-21 18:15:38 -08:00
Alan Mason
2db4252f69 Merge branch 'new-update-script' into develop 2017-11-21 15:14:45 -08:00
Alan Mason
d22339410e Bugfix: Missing Copy script
* File is now renamed using KIT_NAME_FULL
2017-11-21 15:14:36 -08:00
Alan Mason
0681e3d8f4 Merge branch 'new-update-script' into develop 2017-11-21 15:03:40 -08:00
Alan Mason
4bdab51e34 Reduce wait time after removing old launchers 2017-11-21 15:00:49 -08:00
Alan Mason
4701ef77fd Readded network installers
* Only installers for supported years have launchers created
2017-11-21 15:00:20 -08:00
Alan Mason
65d710b72f Trimmed settings.launchers 2017-11-21 13:31:20 -08:00
Alan Mason
deac1a6dda Completed generate launchers 2017-11-21 13:26:33 -08:00
Alan Mason
d0f4dd1f52 Made SDIO Update optional 2017-11-21 13:25:44 -08:00
Alan Mason
830eff27c3 Build kit in new folder 2017-11-21 10:59:57 -08:00
Alan Mason
52684ebb4a Bugfix
* TreeSizeFree downloads and extracts correctly again
* Compressing tools will skip 7-Zip archives
2017-11-21 10:34:52 -08:00
Alan Mason
c47d88aad8 Adjusted formatting for update_kit.py 2017-11-21 00:37:18 -08:00
Alan Mason
b61cb2e0ed Bugfix and a typo 2017-11-21 00:33:07 -08:00
Alan Mason
adef491db0 Misc Cleanup
* Removed launcher used for testing
2017-11-21 00:16:36 -08:00
Alan Mason
93a7a69c29 Compress .cbin done
* Only mildly dangerous?
2017-11-21 00:07:41 -08:00
Alan Mason
6d06371190 Updated VCR InstallAll.bat 2017-11-20 23:13:39 -08:00
Alan Mason
f842cec65b Always more downloads 2017-11-20 23:12:48 -08:00
Alan Mason
3df01a0e05 no message 2017-11-20 23:11:07 -08:00
Alan Mason
ea4036e14d Added ODT downloads 2017-11-20 23:10:42 -08:00
Alan Mason
5c5fba103e Downloads finished
Testing and compression next
2017-11-20 21:23:41 -08:00
Alan Mason
3cc78e085c Hotfix: Copy WizardKit.cmd
* Variable name was incorrect which was preventing archive extraction
2017-11-20 10:49:47 -08:00
Alan Mason
4bf7d000e3 update.py rewrite still in progress
TODO:
* Finish the download sections
* Add section to compress the folders/files in .cbin
2017-11-19 18:51:03 -08:00
Alan Mason
8d287f5d3f Merge branch 'develop' into new-update-script 2017-11-19 02:52:23 -08:00
Alan Mason
59ecefe839 Added initial cbin downloads
* Need to add rest of the tools and compression sections
2017-11-19 02:51:33 -08:00
Alan Mason
e4bcf7f037 Updated README 2017-11-18 22:57:33 -08:00
Alan Mason
1b8ec96379 New update scripts
# Plan #
* Repo should be in a non-functional state
  * This is to avoid confusion when most, if not all, scripts fail to run when first downloaded.
* The first step should be to run Build Kit.cmd which does the following
  * Downloads 7-Zip, ConEmu, Notepad++, & Python (including wheel packages)
    * (i.e. just enough to run update_kit.py)
  * Open .bin/Scripts/settings/main.py in Notepad++ for configuration
  * Move the kit folders into place
    * (i.e. /.root_items/* ->> /, /Build Kit.cmd --> /.bin/Scripts/Build Kit.cmd, etc)

* Added Build Kit.cmd
  * Launches build_kit.ps1

* Added build_kit.ps1
  * Downloads 7-Zip, ConEmu, and Python
  * Launches update_kit.py unless errors are encountered

* Removed all launchers
  * update_kit.py will generate them in a future update
2017-11-18 22:50:58 -08:00
2Shirt
3328a26021
Update Backblaze.url 2017-11-18 20:47:10 -08:00
Alan Mason
b68f1a98e7 Updated Launch.cmd
* Removed PywScript
* Setting L_NCMD with PSScript or PyScript will now use their respective native windows (instead of ConEmu)
  * Relaunch in ConEmu code reworked to avoid launching ConEmu twice in this case
    * i.e. CMD (Launch.cmd) --> ConEmu (Launch.cmd) --> ConEmu (some_script.py)
* Updated PSScript section to match PyScript
2017-11-18 16:14:12 -08:00
Alan Mason
231040526a Updated exit_script()
Keep script open if log can't be opened
2017-11-18 15:42:58 -08:00
Alan Mason
bda6c5d280 Bugifx
Close issue #2
2017-11-18 14:24:13 -08:00
Alan Mason
1fa361ada6 Bugfix
Closes issue #3
2017-11-18 14:00:41 -08:00
Alan Mason
68a11b03cc Update README.md 2017-11-17 01:03:35 -07:00
Alan Mason
6fc04266d4 2017-11: Retroactive Updates
## MAJOR refactoring done ##

* All .cmd Command scripts
  * Brandind / Settings variables now set via .bin/Scripts/settings/main.py
  * Window titles now set using KIT_FULL_NAME

* All .py Python scripts
  * All ClientDir paths should now use KIT_SHORT_NAME
  * Long lines wrapped to better follow PEP8
  * String formatting now more consistant
  * Updated run_program() and popen_program() calls to use lists
    * (e.g. cmd = ['', '', '']; run_program(cmd))
    ** Should improve clarity IMO
  * Update window titles AFTER init_global_vars() so KIT_FULL_NAME can be used

* Branding / Settings
  * Support tech now configurable
    * (e.g. "Please let {tech} know and they'll look into it")
  * Timezone now configurable
  * Upload info can now be disabled/enabled in .bin/Scripts/settings/main.py

* CHKDSK
  * Combined read-only and fix scripts and added menu

* DISM
  * Combined ScanHealth and RestoreHealth scripts and added menu

* functions/common.py
  * BREAKING: run_program() and popen_program() no longer accept 'args' variable

* Misc
  * Removed Win7 NVMe launcher
    * Never used and Win7 is deprecated
  * Removed "DeviceRemover" and "Display Driver Uninstaller" launchers
    * Both cut too deep and were not useful
  * Removed Nirsoft utilities and Sysinternals Suite launchers
    * Too many tools unused.
    * Added .url links to the websites in case the tools are needed
  * Replaced WinDirStat with TreeSizeFree
  * Replaced Q-Dir launcher with XYplorer launcher
    * Q-Dir was running into issues on Windows 10
  * Removed C.IntRep, ESET, and MBAM launchers from "OSR & VR"
  * Removed JRT
    * Deprecated and discontinued by MBAM
  * Removed unsupported QuickBooks launchers (2014 and older)
  * Removed unsupported Office launchers (2010 and 2013\365)
  * Removed "Revo Uninstaller" launcher
  * Removed infrequently used tools from "Diagnostics"
    * Auslogics DiskDefrag
    * BatteryInfoView
    * BIOSCodes
    * GpuTest
    * HeavyLoad

* Bugfixes
  * major_exception() try-blocks should catch CTL+c again
    * Allows for manual script bailing
2017-11-17 01:02:24 -07:00
Alan Mason
41d6cfc209 2017-08: Retroactive Updates
* Bugfixes
  * Windows 10 v1703 / Redstone 2 / Creator's Update now recognized (attempt #2)
2017-11-17 00:57:07 -07:00
Alan Mason
b37a492db5 2017-03: Retroactive Updates
## MAJOR refactoring in progress ##

# BROKEN SCRIPTS #
  (These scripts need updated to use the new global_vars & try_and_print)
    * user_data_transfer.py
    * install_sw_bundle.py

* All Python scripts
  * PLAN: Replace vars_wk with global_vars

* functions.py
  * PLAN: Will hold (nearly?) all functions going forward
    * Should simplify the remaining scripts
    * (e.g. reset_browsers and sw_diagnostics both had a backup_browsers())
  * PLAN: Move all program definitions to functions.py
    * (e.g. vars_wk['SevenZip'] --> global_vars['Programs']['SevenZip'])
  * Added major_exception()
    * Should be called if anything goes wrong to alert user and provide info
  * Added non_clobber_rename()
    * Appends a number (if necessary) to avoid overwriting data
  * Added popen_program()
    * Removes subprocess req for sw_checklist
  * Added try_and_print()
    * Run a function and show CS/NS/etc
    * Can add additional "result" strings via Exception classes
    * Passes unrecognized args/kwargs to the function
    * Used by scripts to standardize message formatting and error handling
  * exit_script() now handles opening the log (if set) and killing caffeine.exe
  * Refactored init_vars_wk/os code to work with global_vars
    * Uses the try_and_print function for better formatting and error handling
    * BREAKING: 'OS' vars now located in global_vars['OS'] (including 'Arch')
      * OS labeled as 'outdated', 'very outdated', and 'unrecognized' as needed
    * BREAKING: renamed PROGRAMS to TOOLS
      * Expanded TOOLS
  * Removed log_file as a required argument from all functions
  * Removed vars_wk/global_vars as a required argument from all functions
  * Removed unused WinPE functions
  * Sorted functions

* user_checklist() (formerly reset_browsers())
  * Most functions moved to functions.py (see above)
  * Browsers
    * Work has been split into backup, reset, and config sections
    * Script now asks all questions before starting backup/reset/config
    * Script now forces the homepage to DEFAULT_HOMEPAGE (set in functions.py)
      * (i.e. it no longer asks first, it just does it)
    * Current homepages are listed where possible before backup/reset/config

* Launch/Launchers
  * Added QuickBooks support

* Removed launchers
  * CPU-Z
  * HWMonitor
  * PerfMonitor2
  * SanDisk Express Cache
  * Shortcut Cleaner
  * SuperAntiSpyware (SAS)

* Replaced Notepad2-Mod with Notepad++
2017-11-17 00:56:16 -07:00
Alan Mason
1822b7e9bf 2016-12: Retroactive Updates
* Removed SIV and switched back to AIDA64
* Bugfixes
2017-11-17 00:55:27 -07:00
Alan Mason
7616f2ea5f 2016-11: Retroactive Updates
* NEW: CompressedBin folder .cbin
  * This folder holds compressed versions of what was in .bin
    * These files are 7-zip compressed using file + header encryption
    * (This is to avoid false-positive AV alerts)

* NEW: Python conversion
  * All scripts rewritten / ported to Python
  * All PoSH scripts removed
  * All scripts adjusted to no longer use vars as a variable
    * This is because vars is a built-in function
    * Also, slightly more clear as vars_wk == variables for Wizard Kit
  * vars_os merged with vars_wk for since both are based on the current system
  * Launch.cmd no longer uses %path% and instead directly modifies L_PATH
    * fixes bug where an empty %PATH% would halt various scripts

* Copy WizardKit
  * Now only copies the required folders in .bin
    * Avoids potentially massive slowdowns on often-used UFDs
  * Updated to support the new .cbin folder

* User Data Transfer expanded
  * File-based main data selection is now done first
  * Default inclusions and exclusions adjusted
  * Cleanup should now unhide TransferDir

* Launch.cmd and Launchers updated
  * Launch and Launcher_Template reworked to support the new .cbin method
    * Launch will extract the archive (if exists) and then launch the item
  * Launch.cmd now automatically reloads inside ConEmu
  * Launch.cmd now runs from L_ITEM's dir in most cases
  * Added L_NCMD to use the native command window instead of ConEmu
  * Added PywScript mode that uses Python native console window
  * Launchers are customized at the top of the files now
    * FindBin and Flags functions have been moved to the end of the file
  * Launchers and Launch.cmd now use more descriptive variable names
    * Helps readability and troubleshooting
  * Ported code from copy_office.cmd into Launch.cmd
    * Office setup local folders now have better naming
  * Scripts should now print details about the ENV when aborting
    * Should help diagnose future breaks, typos, etc..
  * Added a gen_office.bash script for creating the Office Setup Launchers
  * Fixed Office variable issue (needed delayedexpansion)

* SW Diagnostics / SW Checklist
  * (Re)added Kill All Processes section using ProcessKiller 2.0 from Tron
  * Added Everything - dumps a file listing of the %systemdrive%
  * Added Opera to the browser backup section
  * AdwCleaner is no longer removed during the checklist
  * HWiNFO has replaced HWMonitor due to false AMD/ATI readings
  * HWiNFO is not opened until after Enter is pressed to exit the checklist
  * Installed OS warnings expanded to mark many more versions as outdated
  * SAS is no longer force-removed at the end of the script
  * The new user data size function is reading data for all users
2017-11-17 00:54:34 -07:00
Alan Mason
b180b42ec9 2016-10: Retroactive Updates
# Migration to Python started #
  * PoSH has an extreme slowdown for some systems while it runs an optimization
  ** pass for .NET on the first PoSH script execution.
  ** This is reason enough to move to an alternative.

* New additions:
  * User Data Transfer script
    * Will extract from a WIM or copy from a folder
    * Uses wimlib-imagex for images and FastCopy for folders
    * Removes undesired items after transfer/extraction
  * HWiNFO
  * Missing ODD repair registry patch
  * Q-Dir
  * SW Bundle install script

* ConEmu
  * Moving back to ConEmu for better performance.

* Copy-WizardKit
  * Now uses FastCopy

* functions.py
  * Ported init.ps1 to Python using functions.py (from WinPE) as a base

* Launch.cmd
  * Elevating programs/scripts now done using a temp VBScript file
  * Can run Python scripts (using either the 32 or 64 bit runtime)

* transferred_keys.cmd
  * Expanded searched paths

* Misc
  * Lots of variables and files renamed
  * Lots of hard-coded paths are now in variables
    * Should only be set in scripts in %bin%\Scripts
  * Moved a subset of the Diagnostics launchers to a new 'Extras' folder
    * The launchers moved are those that are less-often used
  * Refactored FindBin code to be more concise
  * Renamed "KitDir" "ClientDir" to indicate that it is on the client's system
  * Removed GeForce Experience launcher as it now requires an account
  * Added link to NVIDIA's driver webpage to download the correct driver
  * Removed AMD's Gaming Evolved launcher
    * This is usually bundled with the GPU driver anyway
  * Switched back to ConEmu
  * Variable and script names are now more descriptive
    * i.e. checklist -> final_checklist, and HH -> %kit_dir%
    * (not happy with %kit_dir%, will probably change again)
2017-11-17 00:53:08 -07:00
Alan Mason
d9dddebccb 2016-09: Retroactive Updates
Major .bin and extraction code overhaul

* All .cmd files now have code for searching the for the .bin folder
  * This starts at the script's parent folder and moves upward
  * If no .bin folder is found then print an error to the screen

* 7z has been replaced with 7za
  * This is for better handling of x32/x64 usage
  * This also fixed a few bugs with extracting ProduKey/MailPassView/etc
  * We no longer require the full power of 7z.exe/7z.dll
  * (Since wimlib-imagex will probably be used for WIM files soon-ish)

* Bugfixes
  * A few calls of pushd were unsafe (without quotes)
  * SFC scan no longer closes immediately
2017-11-17 00:51:54 -07:00
Alan Mason
a4c0c487ff 2016-08: Retroactive Updates
* Added OutlookAttachView

* Added PerfMonitor2

* CHKDSK
  * Will use the newer repair features on Windows 8 or newer

* MailPassView & ProduKey
  * Now saved in a 7-Zip encrypted archive to avoid deletion by AV

* SW Checklist / Diagnostics
  * Windows 10 Blocked automatically
    * (Too late but whatevs it was in testing before the cutoff)

* Bugfixes
  * Activate Windows (with BIOS key)
    * Wasn't extracting ProduKey before trying to run it
  * SW Diagnostics
    * Should now report the preview size from BleachBit correctly
2017-11-17 00:51:23 -07:00
Alan Mason
3031df5a4c 2016-07: Retroactive Updates
* DISM
  * Much safer WinVer check

* Enter / Exit SafeMode
  * Now enables MSI (un)installers in SafeMode w/ Networking

* Final Checklist
  * NEW: can now be run directly from UFD

* Hide Windows 10 Upgrade.reg
  * Added more registry blocks

* Removed Chocolately
  * Too much volatility
  * Ninite will regain default installer status

* Replaced ConEmu with Cmder
  * Cmder has a heavily modified ConEmu
  * Changed background
  * Added Cmder launchers in Misc

* SW Diagnostics
  * NEW: can now be run directly from UFD
  * BleachBit / Winapp2.ini updated
    * Expanded selections
    * Now only checks temp data size; DOES NOT delete temp data
  * Internet connection test will now loop until the manually exited
  * Now warns you that it can't check Windows activation in SafeMode

* Bugfixes
  * reset_browsers.ps1
    * Should skip "resetting" the backup folders (i.e. Default.wkbak)
2017-11-17 00:50:54 -07:00
Alan Mason
c6e58088af 2016-06: Retroactive initial commit 2017-11-17 00:50:27 -07:00
696 changed files with 49041 additions and 3414 deletions

8
.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
**/__pycache__
**/*.7z
**/*.DS_Store
**/*.bak
**/*.exe
**/*.swp
setup/BUILD*
setup/OUT*

View file

@ -1,2 +0,0 @@
wk_tmp
wk-repo

View file

@ -1 +0,0 @@
LANG=en_US.UTF-8

View file

@ -1 +0,0 @@
en_US.UTF-8 UTF-8

View file

@ -1,9 +0,0 @@
Welcome to the WK Linux Toolbox
Some common commands:
% hw-diags
% hw-info
% mount-all-volumes
% mount-backup-shares
% connect-to-network

View file

@ -1,20 +0,0 @@
[settings]
usehal = false
[looks]
opacity = 70
bgcolor = black
buttontheme = foom
#buttons = cancel, logout, restart, shutdown, suspend, hibernate, lock
buttons = restart, shutdown, logout
[shortcuts]
cancel = Escape
shutdown = S
restart = R
logout = L
[commands]
shutdown = systemctl poweroff
restart = systemctl reboot
logout = openbox --exit

View file

@ -1,64 +0,0 @@
! general settings
URxvt*saveline: 15000
URxvt*termName: rxvt-256color
URxvt*iso14755: false
! appearance
URxvt*depth: 32
!URxvt*background: rgba:0000/0000/0000/AAAA
!URxvt*background: [80]#404552
!URxvt*background: [100]#2f343f
!URxvt*foreground: #F8F8FF
!URxvt.underlineColor: #4682B4
!URxvt.highlightColor: #4682B4
!URxvt.throughColor: Blue
!URxvt*cursorColor: #dc8cc3
!URxvt*cursorColor2: Black
URxvt*scrollBar: false
URxvt*scrollBar_right: false
URxvt*internalBorder: 0
URxvt*externalBorder: 0
!URxvt.colorIT: #87af5f
!URxvt.colorBD: #c5c8c6
!URxvt.colorUL: #87afd7
URxvt.geometry: 92x16
URxvt.internalBorder: 8
URxvt.shading: 10
URxvt.transparent: true
! Base16 Isotope
! Scheme: Jan T. Sott
!! Modified by 2Shirt
*.foreground: #d0d0d0
*.background: #000000
*.cursorColor: #d0d0d0
*.color0: #000000
*.color1: #ff0000
*.color2: #33ff00
*.color3: #ffd000
*.color4: #0066ff
*.color5: #cc00ff
*.color6: #00ffff
*.color7: #d0d0d0
*.color8: #808080
*.color9: #ff9900
*.color10: #404040
*.color11: #606060
*.color12: #c0c0c0
*.color13: #e0e0e0
*.color14: #3300ff
*.color15: #ffffff
! fonts
Xft.autohint: 0
Xft.antialias: 1
Xft.hinting: true
Xft.hintstyle: hintslight
Xft.rgba: rgb
Xft.lcdfilter: lcddefault
URxvt.font: xft:Inconsolata:size=12
!URxvt.letterSpace: -3

View file

@ -1,3 +0,0 @@
#
# ~/.bash_logout
#

View file

@ -1,5 +0,0 @@
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc

View file

@ -1,314 +0,0 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Configure border style <normal|1pixel|pixel xx|none|pixel>
new_window pixel 1
new_float normal
# Hide borders
hide_edge_borders none
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
# alt+tab navi
bindsym Mod1+Tab workspace next
bindsym Mod1+Shift+Tab workspace prev
# change borders
bindsym $mod+u border none
bindsym $mod+y border pixel 1
bindsym $mod+n border normal
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
#font Inconsolata:monospace 8
font pango:Noto Sans Mono 10, FontAwesome 10
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesnt scale on retina/hidpi displays.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
bindsym $mod+q kill
bindsym Mod1+F4 kill
# start dmenu (a program launcher)
#bindsym $mod+Shift+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
#bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop
bindsym $mod+r exec "rofi -combi-modi window,drun,run -show combi -modi combi"
# misc app shortcuts
bindsym $mod+d exec "urxvt -title 'Hardware Diagnostics' -e hw-diags"
bindsym $mod+f exec "thunar ~"
bindsym $mod+i exec "hardinfo"
bindsym $mod+m exec "urxvt -title 'Mount All Volumes' -e mount-all-volumes"
bindsym $mod+s exec "urxvt -title 'Hardware Diagnostics' -e hw-diags foh"
bindsym $mod+t exec "urxvt"
bindsym $mod+v exec "urxvt -title 'Hardware Sensors' -e hw-diags-sensors"
bindsym $mod+w exec "firefox"
focus_follows_mouse no
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# workspace back and forth (with/without active container)
workspace_auto_back_and_forth yes
bindsym $mod+b workspace back_and_forth
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
# split orientation
bindsym $mod+Shift+h split h
bindsym $mod+Shift+v split v
# enter fullscreen mode for the focused container
bindsym $mod+Shift+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+Shift+s layout stacking
bindsym $mod+Shift+w layout tabbed
bindsym $mod+Shift+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
#bindsym $mod+a focus parent
# move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
# focus the child container
#bindsym $mod+d focus child
# Workspace names
set $ws1 "一"
set $ws2 "二"
set $ws3 "三"
set $ws4 "四"
set $ws5 "五"
set $ws6 "六"
set $ws7 "七"
set $ws8 "八"
set $ws9 "九"
set $ws10 "十"
# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace $ws1
bindsym $mod+Ctrl+2 move container to workspace $ws2
bindsym $mod+Ctrl+3 move container to workspace $ws3
bindsym $mod+Ctrl+4 move container to workspace $ws4
bindsym $mod+Ctrl+5 move container to workspace $ws5
bindsym $mod+Ctrl+6 move container to workspace $ws6
bindsym $mod+Ctrl+7 move container to workspace $ws7
bindsym $mod+Ctrl+8 move container to workspace $ws8
bindsym $mod+Ctrl+9 move container to workspace $ws9
bindsym $mod+Ctrl+0 move container to workspace $ws10
# move focused container to workspace and follow
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10
# Open specific applications in floating mode
for_window [title="Slack"] floating enable
for_window [title="Screen Layout Editor"] floating enable
for_window [class="Galculator"] floating enable border pixel 1
for_window [class="Nitrogen"] floating enable sticky enable border normal
for_window [title="Hardware Diagnostics"] floating enable
for_window [title="Hardware Sensors"] floating enable
for_window [title="Mount All Volumes"] floating enable
for_window [title="Firefox"] floating enable border normal
# switch to workspace with urgent window automatically
for_window [urgent=latest] focus
# reload the configuration file
#bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
#bindsym $mod+Shift+r restart
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+r mode "resize"
# "System" menu
bindsym $mod+x mode "$mode_system"
set $mode_system (l)ock, (e)xit, (r)eboot, (s)hutdown, (c)onfig, (i)3
mode "$mode_system" {
bindsym l exec --no-startup-id i3lock, mode "default"
bindsym e exit, mode "default"
bindsym r exec reboot, mode "default"
bindsym s exec poweroff, mode "default"
bindsym c reload, mode "default"
bindsym i restart, mode "default"
# exit system mode: "Enter" or "Escape"
bindsym Return mode "default"
bindsym Escape mode "default"
}
#############################
### settings for i3-gaps: ###
#############################
# Set inner/outer gaps
gaps inner 10
gaps outer 4
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
# gaps inner|outer current|all set|plus|minus <px>
# gaps inner all set 10
# gaps outer all plus 5
# Smart gaps (gaps used if only more than one container on the workspace)
smart_gaps on
# Smart borders (draw borders around container only if it is not the only container on this workspace)
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
smart_borders on
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
bindsym $mod+Shift+g mode "$mode_gaps"
mode "$mode_gaps" {
bindsym o mode "$mode_gaps_outer"
bindsym i mode "$mode_gaps_inner"
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_inner" {
bindsym plus gaps inner current plus 5
bindsym minus gaps inner current minus 5
bindsym 0 gaps inner current set 0
bindsym Shift+plus gaps inner all plus 5
bindsym Shift+minus gaps inner all minus 5
bindsym Shift+0 gaps inner all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
bindsym plus gaps outer current plus 5
bindsym minus gaps outer current minus 5
bindsym 0 gaps outer current set 0
bindsym Shift+plus gaps outer all plus 5
bindsym Shift+minus gaps outer all minus 5
bindsym Shift+0 gaps outer all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
position bottom
separator_symbol " "
status_command i3status
height 26
}

View file

@ -1,76 +0,0 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 5
}
#order += "disk /"
order += "wireless _first_"
order += "ethernet _first_"
order += "cpu_usage"
order += "battery all"
order += "volume master"
order += "tztime local"
#order += "tztime utc"
cpu_usage {
format = " %usage"
max_threshold = 90
#format_above_threshold = " %usage"
degraded_threshold = 75
#format_above_degraded_threshold = " %usage"
}
wireless _first_ {
format_up = " (%quality at %essid) %ip"
format_down = " Down"
}
ethernet _first_ {
# if you use %speed, i3status requires root privileges
format_up = " %ip"
format_down = " Down"
}
battery all {
integer_battery_capacity = true
format = "%status %percentage"
format_down = ""
status_chr = ""
status_bat = ""
status_unk = ""
status_full = ""
path = "/sys/class/power_supply/BAT%d/uevent"
low_threshold = 25
threshold_type = percentage
}
volume master {
format = " %volume"
format_muted = " muted"
device = "pulse"
}
tztime local {
format = "%F %H:%M"
}
tztime utc {
format = "%H:%M"
timezone = "UTC"
}
load {
format = "%1min"
}
disk "/" {
format = "%avail"
}

View file

@ -1,19 +0,0 @@
#
# These things are run when an Openbox X Session is started.
# You may place a similar script in $HOME/.config/openbox/autostart
# to run user-specific things.
#
# If you want to use GNOME config tools...
#
#if test -x /usr/lib/openbox/gnome-settings-daemon >/dev/null; then
# /usr/lib/openbox/gnome-settings-daemon &
#elif which gnome-settings-daemon >/dev/null 2>&1; then
# gnome-settings-daemon &
#fi
# If you want to use XFCE config tools...
#
#xfce-mcs-manager &
tint2 &

View file

@ -1,11 +0,0 @@
! rofi theme
rofi.color-enabled: true
! bg border separator
rofi.color-window: argb:d02d3036, #2d3036, #d64937
! bg fg bg-alt hl-bg hl-fg
rofi.color-normal: argb:d02d3036, #d8d8d8, argb:d02d3036, #2d3036, #d64937
rofi.color-active: argb:d0222222, #d64937, argb:d0222222, #d64937, #d8d8d8
rofi.color-urgent: argb:d0888888, #d8d8d8, argb:d0888888, #888888, #d64937
rofi.separator-style: solid
rofi.hide-scrollbar: true

View file

@ -1,10 +0,0 @@
#!/bin/bash
CONKY_RC="$HOME/.conkyrc"
if [[ -f "/run/archiso/bootmnt/arch/conky.rc" ]]; then
CONKY_RC="/run/archiso/bootmnt/arch/conky.rc"
fi
sleep 2s && conky -c "${CONKY_RC}" -dq
sleep 5s && killall conky -c "${CONKY_RC}" -dq

View file

@ -1,166 +0,0 @@
# For commands above TEXT check:
# http://conky.sourceforge.net/config_settings.html
#
# For commands available below TEXT check:
# http://conky.sourceforge.net/variables.html
# Bunsen Labs Conky help threads
# http://crunchbang.org/forums/viewtopic.php?pid=371424#p371424
# beta tested by: smacz
# Enjoy! :)
# pkill -xf "conky -q -c $HOME/.config/conky/BL-Default.conkyrc" &
### Begin Window Settings #####################
own_window yes
#own_window_type override
own_window_transparent no
own_window_hints undecorated,below,skip_taskbar,skip_pager,sticky
own_window_colour 000000
own_window_class Conky
#own_window_title Bunsen Labs Default Conky
own_window_title Default Conky
### ARGB can be used for real transparency
### NOTE that a composite manager is required for real transparency.
### This option will not work as desired (in most cases) in conjunction with
### own_window_type normal
own_window_argb_visual yes # Options: yes or no
### When ARGB visuals are enabled, this use this to modify the alpha value
### Use: own_window_type normal
### Use: own_window_transparent no
### Valid range is 0-255, where 0 is 0% opacity, and 255 is 100% opacity.
own_window_argb_value 224
minimum_size 180 0 ### width | height
maximum_width 180
gap_x 20 ### left | right
gap_y 45 ### up | down
alignment tr
####################### End Window Settings ###
### Font Settings #############################
# Use Xft (anti-aliased font and stuff)
use_xft yes
xftfont Inconsolata:bold:size=9
#xftfont Liberation Sans:size=9
# Alpha of Xft font. Must be a value at or between 1 and 0 ###
xftalpha 1
# Force UTF8? requires XFT ###
override_utf8_locale yes
uppercase no
######################### End Font Settings ###
### Colour Settings ###########################
draw_shades no #yes
default_shade_color 000000
draw_outline no # amplifies text if yes
default_outline_color 000000
#default_color 656667 # Waldorf original colour
#default_color 7a7a7a # Flame & Bunsen Grey
#default_color 929292 # Labs Grey
default_color C0C0C0 # Silver
color0 B0E0E6 # PowderBlue
color1 778899 # LightSlateGray
color2 D8BFD8 # Thistle
color3 9ACD32 # YellowGreen
color4 FFA07A # LightSalmon
color5 FFDEAD # NavajoWhite
color6 00BFFF # DeepSkyBlue
color7 5F9EA0 # CadetBlue
color8 BDB76B # DarkKhaki
color9 CD5C5C # IndianRed
####################### End Colour Settings ###
### Borders Section ###########################
draw_borders no
# Stippled borders?
stippled_borders 5
# border margins
border_inner_margin 5
border_outer_margin 0
# border width
border_width 2
# graph borders
draw_graph_borders yes #no
#default_graph_size 15 40
####################### End Borders Section ###
### Miscellaneous Section #####################
# Boolean value, if true, Conky will be forked to background when started.
background yes
# Adds spaces around certain objects to stop them from moving other things
# around, this only helps if you are using a mono font
# Options: right, left or none
use_spacer none
# Default and Minimum size is 256 - needs more for single commands that
# "call" a lot of text IE: bash scripts
text_buffer_size 6144
# Subtract (file system) buffers from used memory?
no_buffers yes
# change GiB to G and MiB to M
short_units yes
# Like it says, ot pads the decimals on % values
# doesn't seem to work since v1.7.1
pad_percents 2
# Imlib2 image cache size, in bytes. Default 4MiB Increase this value if you use
# $image lots. Set to 0 to disable the image cache.
imlib_cache_size 0
# Use the Xdbe extension? (eliminates flicker)
# It is highly recommended to use own window with this one
# so double buffer won't be so big.
double_buffer yes
# Maximum size of user text buffer, i.e. layout below TEXT line in config file
# (default is 16384 bytes)
# max_user_text 16384
# Desired output unit of all objects displaying a temperature. Parameters are
# either "fahrenheit" or "celsius". The default unit is degree Celsius.
# temperature_unit Fahrenheit
################# End Miscellaneous Section ###
#### ${font Monospace:bold:size=10}${alignc}${execpi 600 $HOME/.config/conky/scripts/bunsenweather.sh}
update_interval 1
TEXT
${color}${alignc}S Y S T E M I N F O
${hr}
Date:${alignr}${time %F}
Time:${alignr}${time %H:%M}
Uptime:${alignr}${uptime_short}
CPU: ${if_match ${cpu cpu0}<10} ${cpu cpu0}\
${else}${if_match ${cpu cpu0}<100} ${cpu cpu0}\
${else}${cpu cpu0}${endif}${endif}% Used${alignr}${freq_g} GHz
${cpugraph cpu0 20,180 ${color} ${color}}
RAM: ${mem} Used${alignr}${memmax}
${memgraph 20,180 ${color} ${color}}
Disk I/O:
${diskiograph 20,180 ${color} ${color}}
Down: ${downspeed}${goto 115}Up:${alignr}${upspeed}
#Network
${alignc}S H O R T C U T K E Y S
${hr}
[Super] + d${alignr}HW Diagnostics
[Super] + f${alignr}File Manager
[Super] + i${alignr}HW Information
[Super] + m${alignr}Mount Volumes
[Super] + r${alignr}Run Dialog
[Super] + s${alignr}SMART Check
[Super] + t${alignr}Terminal
[Super] + v${alignr}View Temps
[Super] + w${alignr}Web Browser
[Super] + x${alignr}Logout

View file

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<xbel version="1.0"
xmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks"
xmlns:mime="http://www.freedesktop.org/standards/shared-mime-info"
>
<bookmark href="file:///usr/share/wallpaper" added="2016-05-01T18:50:20Z" modified="2016-05-01T18:50:20Z" visited="2016-05-01T18:50:21Z">
<info>
<metadata owner="http://freedesktop.org">
<mime:mime-type type="inode/directory"/>
<bookmark:applications>
<bookmark:application name="xfdesktop-settings" exec="&apos;xfdesktop-settings %u&apos;" modified="2016-05-01T18:50:20Z" count="1"/>
</bookmark:applications>
</metadata>
</info>
</bookmark>
</xbel>

View file

@ -1,4 +0,0 @@
#!/bin/bash
connect-to-network

View file

@ -1,2 +0,0 @@
set -g status off
set -g pane-active-border-fg white

View file

@ -1,12 +0,0 @@
#!/bin/bash
IF_LIST=($(ip l | egrep '^[0-9]+:\s+(eth|en|wl)' | sed -r 's/^[0-9]+:\s+(\w+):.*/\1/' | sort))
for i in "${IF_LIST[@]}"; do
if [[ "${i:0:1}" == "e" ]]; then
sed -i -r "s/#Network/Wired:\${alignr}\${addr $i}\n#Network/" ~/.conkyrc
else
sed -i -r "s/#Network/Wireless:\${alignr}\${addr $i}\n#Network/" ~/.conkyrc
fi
done

View file

@ -1,21 +0,0 @@
#!/bin/bash
BOOT_PATH="/run/archiso/bootmnt/arch/"
BURNED_IN="/usr/share/wallpaper/burned.in"
WALLPAPER="$HOME/.wallpaper.png"
function link_wall() {
sudo rm "$WALLPAPER"
sudo ln -s "$1" "$WALLPAPER"
}
# Check for wallpaper
## Checks BOOT_PATH and uses the BURNED_IN file if nothing is found
for f in "$BOOT_PATH"/{Arch,arch}.{jpg,png} "$BURNED_IN"; do
if [[ -f "$f" ]]; then
link_wall "$f"
break
fi
done
feh --bg-fill "$WALLPAPER"

View file

@ -1,10 +0,0 @@
#!/bin/bash
XWIDTH="$(xrandr 2>/dev/null | grep '*' | sed -r 's/^\s+([0-9]+)x.*/\1/')"
XHEIGHT="$(xrandr 2>/dev/null | grep '*' | sed -r 's/^\s+[0-9]+x([0-9]+).*/\1/')"
WIDTH="$(echo "${XWIDTH}*92/1024" | bc)"
HEIGHT="$(echo "${XHEIGHT}*32/768" | bc)"
sed -i -r "s/(URxvt.geometry:\s+).*/\1${WIDTH}x${HEIGHT}+24+24/" ~/.Xresources
xrdb -merge ~/.Xresources

View file

@ -1,19 +0,0 @@
#!/bin/sh
dbus-update-activation-environment --systemd DISPLAY
xrdb -merge $HOME/.Xresources
xset s off
xset -dpms
eval $(ssh-agent)
export SSH_AUTH_SOCK
compton &
sleep 1s
conky -d
nm-applet &
cbatticon &
pasystray &
$HOME/.network_start &
$HOME/.urxvt_default_res &
$HOME/.update_wallpaper &
$HOME/.update_conky &
exec openbox-session

View file

@ -1,13 +0,0 @@
setterm -blank 0 -powerdown 0
if [ "$(fgconsole 2>/dev/null)" -eq "1" ]; then
if ! fgrep -q "nox" /proc/cmdline; then
if fgrep -q "i3" /proc/cmdline; then
sed -i -r 's/#(own_window_type override)/\1/' ~/.conkyrc
sed -i -r 's/openbox-session/i3/' ~/.xinitrc
fi
startx
else
hw-diags cli
fi
fi

View file

@ -1,90 +0,0 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="lean"
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
HIST_STAMPS="yyyy-mm-dd"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(archlinux git sudo systemd tmux)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
## Load aliases
. $HOME/.aliases
## Update LS_COLORS
eval $(dircolors ~/.dircolors)

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/NetworkManager.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/NetworkManager-dispatcher.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/lightdm.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/getty@.service

View file

@ -1,3 +0,0 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin wktech --noclear %I 38400 linux

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/NetworkManager.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/rngd.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/sshd.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/system/ufw.service

View file

@ -1,40 +0,0 @@
#!/bin/sh
#
# after.init: if executable, called by ufw-init. See 'man ufw-framework' for
# details. Note that output from these scripts is not seen via the
# the ufw command, but instead via ufw-init.
#
# Copyright 2013 Canonical Ltd.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3,
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
set -e
case "$1" in
start)
# typically required
;;
stop)
# typically required
;;
status)
# optional
;;
flush-all)
# optional
;;
*)
echo "'$1' not supported"
echo "Usage: after.init {start|stop|flush-all|status}"
;;
esac

View file

@ -1,30 +0,0 @@
#
# rules.input-after
#
# Rules that should be run after the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-after-input
# ufw-after-output
# ufw-after-forward
#
# Don't delete these required lines, otherwise there will be errors
*filter
:ufw-after-input - [0:0]
:ufw-after-output - [0:0]
:ufw-after-forward - [0:0]
# End required lines
# don't log noisy services by default
-A ufw-after-input -p udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp --dport 68 -j ufw-skip-to-policy-input
# don't log noisy broadcast
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

View file

@ -1,27 +0,0 @@
#
# rules.input-after
#
# Rules that should be run after the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw6-after-input
# ufw6-after-output
# ufw6-after-forward
#
# Don't delete these required lines, otherwise there will be errors
*filter
:ufw6-after-input - [0:0]
:ufw6-after-output - [0:0]
:ufw6-after-forward - [0:0]
# End required lines
# don't log noisy services by default
-A ufw6-after-input -p udp --dport 137 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p udp --dport 138 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p tcp --dport 139 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p tcp --dport 445 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p udp --dport 546 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p udp --dport 547 -j ufw6-skip-to-policy-input
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

View file

@ -1,19 +0,0 @@
[Transmission]
title=Transmission
description=Transmission BitTorrent client
ports=51413/tcp
[Deluge]
title=Deluge
description=Deluge BitTorrent client
ports=6881:6891/tcp
[KTorrent]
title=KTorrent
description=KTorrent BitTorrent client
ports=6881/tcp|4444/udp
[qBittorrent]
title=qBittorrent
description=qBittorrent BitTorrent client
ports=6881/tcp

View file

@ -1,35 +0,0 @@
[PeopleNearby]
title=People Nearby
description=People Nearby (Bonjour/Salut) functionality in Empathy
ports=5353/udp|5298
[Bonjour]
title=Bonjour
description=Bonjour protocol
ports=5353/udp|5298
[MSN]
title=MSN Chat
description=MSN chat protocol (with file transfer and voice)
ports=1863|6891:6900/tcp|6901
[MSN SSL]
title=MSN Chat (SSL)
description=MSN chat protocol (SSL)
ports=443/tcp
[AIM]
title=AIM Talk
description=AIM talk protocol
ports=5190/tcp
[Yahoo]
title=Yahoo Chat
description=Yahoo chat protocol
ports=5050
[XMPP]
title=XMPP Chat
description=XMPP protocol (Jabber and Google Talk)
ports=5222/tcp|5269/tcp

View file

@ -1,29 +0,0 @@
[Kerberos KDC]
title=Kerberos v5 KDC server
description=Kerberos v5 KDC server
ports=88
[Kerberos Admin]
title=Kerberos v5 admin
description=Kerberos v5 server
ports=749/tcp
[Kerberos Password]
title=Kerberos v5 password
description=Kerberos v5 password
ports=464/udp
[Kerberos Full]
title=Kerberos v5 server
description=Kerberos v5 server
ports=88,749/tcp|464/udp
[LDAP]
title=LDAP server
description=LDAP server
ports=389/tcp
[LDAPS]
title=LDAP server (LDAPS)
description=LDAP server (LDAPS)
ports=636/tcp

View file

@ -1,4 +0,0 @@
[DNS]
title=Internet Domain Name Server
description=Internet Domain Name Server
ports=53

View file

@ -1,14 +0,0 @@
[CIFS]
title=SMB/CIFS server
description=SMB/CIFS server
ports=137,138/udp|139,445/tcp
[NFS]
title=NFS server
description=NFS and portmap server. Will also need access to mountd, statd and possibly others
ports=2049,111/tcp|2049,111/udp
[svnserve]
title=Subversion server
description=Subversion server for access to Subversion repositories.
ports=3690/tcp

View file

@ -1,14 +0,0 @@
[Telnet]
title=Telnet server (insecure)
description=Telnet server (insecure)
ports=23/tcp
[SSH]
title=SSH server
description=SSH server
ports=22/tcp
[VNC]
title=VNC server
description=VNC server
ports=5900/tcp

View file

@ -1,30 +0,0 @@
[POP3]
title=Mail server (POP3)
description=Mail server (POP3)
ports=110/tcp
[POP3S]
title=Secure mail server (POP3S)
description=Secure mail server (POP3S)
ports=995/tcp
[IMAP]
title=Mail server (IMAP)
description=Mail server (IMAP)
ports=143/tcp
[IMAPS]
title=Secure mail server (IMAPS)
description=Secure mail server (IMAPS)
ports=993/tcp
[SMTP]
title=Mail server (SMTP)
description=Mail server (SMTP)
ports=25/tcp
[Mail submission]
title=Mail server (Submission)
description=Mail server (Submission)
ports=587/tcp

View file

@ -1,9 +0,0 @@
[IPP]
title=Cups server (IPP)
description=Cups server (IPP)
ports=631
[LPD]
title=LPD server
description=LPD server
ports=515/tcp

View file

@ -1,9 +0,0 @@
[Socks]
title=Socks proxy
description=Socks proxy
ports=1080/tcp
[Transparent Proxy]
title=Transparent proxy
description=Transparent proxy
ports=8081/tcp

View file

@ -1,19 +0,0 @@
[WWW]
title=Web Server
description=Web server
ports=80/tcp
[WWW Secure]
title=Web Server (HTTPS)
description=Web Server (HTTPS)
ports=443/tcp
[WWW Full]
title=Web Server (HTTP,HTTPS)
description=Web Server (HTTP,HTTPS)
ports=80,443/tcp
[WWW Cache]
title=Web Server (8080)
description=Web Server (8080)
ports=8080/tcp

View file

@ -1,40 +0,0 @@
#!/bin/sh
#
# before.init: if executable, called by ufw-init. See 'man ufw-framework' for
# details. Note that output from these scripts is not seen via the
# the ufw command, but instead via ufw-init.
#
# Copyright 2013 Canonical Ltd.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3,
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
set -e
case "$1" in
start)
# typically required
;;
stop)
# typically required
;;
status)
# optional
;;
flush-all)
# optional
;;
*)
echo "'$1' not supported"
echo "Usage: before.init {start|stop|flush-all|status}"
;;
esac

View file

@ -1,77 +0,0 @@
#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#
# Don't delete these required lines, otherwise there will be errors
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]
# End required lines
# allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT
# quickly process packets for which we already have a connection
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# drop INVALID packets (logs these in loglevel medium and higher)
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
# ok icmp code for FORWARD
-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT
# allow dhcp client to work
-A ufw-before-input -p udp --sport 67 --dport 68 -j ACCEPT
#
# ufw-not-local
#
-A ufw-before-input -j ufw-not-local
# if LOCAL, RETURN
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
# if MULTICAST, RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
# if BROADCAST, RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
# all other non-local packets are dropped
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
# allow MULTICAST mDNS for service discovery (be sure the MULTICAST line above
# is uncommented)
-A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT
# allow MULTICAST UPnP for service discovery (be sure the MULTICAST line above
# is uncommented)
-A ufw-before-input -p udp -d 239.255.255.250 --dport 1900 -j ACCEPT
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

View file

@ -1,138 +0,0 @@
#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw6-before-input
# ufw6-before-output
# ufw6-before-forward
#
# Don't delete these required lines, otherwise there will be errors
*filter
:ufw6-before-input - [0:0]
:ufw6-before-output - [0:0]
:ufw6-before-forward - [0:0]
# End required lines
# allow all on loopback
-A ufw6-before-input -i lo -j ACCEPT
-A ufw6-before-output -o lo -j ACCEPT
# drop packets with RH0 headers
-A ufw6-before-input -m rt --rt-type 0 -j DROP
-A ufw6-before-forward -m rt --rt-type 0 -j DROP
-A ufw6-before-output -m rt --rt-type 0 -j DROP
# quickly process packets for which we already have a connection
-A ufw6-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# drop INVALID packets (logs these in loglevel medium and higher)
-A ufw6-before-input -m conntrack --ctstate INVALID -j ufw6-logging-deny
-A ufw6-before-input -m conntrack --ctstate INVALID -j DROP
# ok icmp codes for INPUT (rfc4890, 4.4.1 and 4.4.2)
-A ufw6-before-input -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
# codes 0 and 1
-A ufw6-before-input -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
# codes 0-2
-A ufw6-before-input -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type echo-request -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT
# IND solicitation
-A ufw6-before-input -p icmpv6 --icmpv6-type 141 -m hl --hl-eq 255 -j ACCEPT
# IND advertisement
-A ufw6-before-input -p icmpv6 --icmpv6-type 142 -m hl --hl-eq 255 -j ACCEPT
# MLD query
-A ufw6-before-input -p icmpv6 --icmpv6-type 130 -s fe80::/10 -j ACCEPT
# MLD report
-A ufw6-before-input -p icmpv6 --icmpv6-type 131 -s fe80::/10 -j ACCEPT
# MLD done
-A ufw6-before-input -p icmpv6 --icmpv6-type 132 -s fe80::/10 -j ACCEPT
# MLD report v2
-A ufw6-before-input -p icmpv6 --icmpv6-type 143 -s fe80::/10 -j ACCEPT
# SEND certificate path solicitation
-A ufw6-before-input -p icmpv6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT
# SEND certificate path advertisement
-A ufw6-before-input -p icmpv6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT
# MR advertisement
-A ufw6-before-input -p icmpv6 --icmpv6-type 151 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
# MR solicitation
-A ufw6-before-input -p icmpv6 --icmpv6-type 152 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
# MR termination
-A ufw6-before-input -p icmpv6 --icmpv6-type 153 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
# ok icmp codes for OUTPUT (rfc4890, 4.4.1 and 4.4.2)
-A ufw6-before-output -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
-A ufw6-before-output -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
# codes 0 and 1
-A ufw6-before-output -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
# codes 0-2
-A ufw6-before-output -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type echo-request -j ACCEPT
-A ufw6-before-input -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
-A ufw6-before-output -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT
# IND solicitation
-A ufw6-before-output -p icmpv6 --icmpv6-type 141 -m hl --hl-eq 255 -j ACCEPT
# IND advertisement
-A ufw6-before-output -p icmpv6 --icmpv6-type 142 -m hl --hl-eq 255 -j ACCEPT
# MLD query
-A ufw6-before-output -p icmpv6 --icmpv6-type 130 -s fe80::/10 -j ACCEPT
# MLD report
-A ufw6-before-output -p icmpv6 --icmpv6-type 131 -s fe80::/10 -j ACCEPT
# MLD done
-A ufw6-before-output -p icmpv6 --icmpv6-type 132 -s fe80::/10 -j ACCEPT
# MLD report v2
-A ufw6-before-output -p icmpv6 --icmpv6-type 143 -s fe80::/10 -j ACCEPT
# SEND certificate path solicitation
-A ufw6-before-output -p icmpv6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT
# SEND certificate path advertisement
-A ufw6-before-output -p icmpv6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT
# MR advertisement
-A ufw6-before-output -p icmpv6 --icmpv6-type 151 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
# MR solicitation
-A ufw6-before-output -p icmpv6 --icmpv6-type 152 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
# MR termination
-A ufw6-before-output -p icmpv6 --icmpv6-type 153 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
# ok icmp codes for FORWARD (rfc4890, 4.3.1)
-A ufw6-before-forward -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
-A ufw6-before-forward -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
# codes 0 and 1
-A ufw6-before-forward -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
# codes 0-2
-A ufw6-before-forward -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
-A ufw6-before-forward -p icmpv6 --icmpv6-type echo-request -j ACCEPT
-A ufw6-before-forward -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
# ok icmp codes for FORWARD (rfc4890, 4.3.2)
# Home Agent Address Discovery Reques
-A ufw6-before-input -p icmpv6 --icmpv6-type 144 -j ACCEPT
# Home Agent Address Discovery Reply
-A ufw6-before-input -p icmpv6 --icmpv6-type 145 -j ACCEPT
# Mobile Prefix Solicitation
-A ufw6-before-input -p icmpv6 --icmpv6-type 146 -j ACCEPT
# Mobile Prefix Advertisement
-A ufw6-before-input -p icmpv6 --icmpv6-type 147 -j ACCEPT
# allow dhcp client to work
-A ufw6-before-input -p udp -s fe80::/10 --sport 547 -d fe80::/10 --dport 546 -j ACCEPT
# allow MULTICAST mDNS for service discovery
-A ufw6-before-input -p udp -d ff02::fb --dport 5353 -j ACCEPT
# allow MULTICAST UPnP for service discovery
-A ufw6-before-input -p udp -d ff02::f --dport 1900 -j ACCEPT
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

View file

@ -1,57 +0,0 @@
#
# Configuration file for setting network variables. Please note these settings
# override /etc/sysctl.conf. If you prefer to use /etc/sysctl.conf, please
# adjust IPT_SYSCTL in /etc/default/ufw.
#
# Uncomment this to allow this host to route packets between interfaces
#net/ipv4/ip_forward=1
#net/ipv6/conf/default/forwarding=1
#net/ipv6/conf/all/forwarding=1
# Turn on Source Address Verification in all interfaces to prevent some
# spoofing attacks
net/ipv4/conf/default/rp_filter=1
net/ipv4/conf/all/rp_filter=1
# Do not accept IP source route packets (we are not a router)
net/ipv4/conf/default/accept_source_route=0
net/ipv4/conf/all/accept_source_route=0
net/ipv6/conf/default/accept_source_route=0
net/ipv6/conf/all/accept_source_route=0
# Disable ICMP redirects. ICMP redirects are rarely used but can be used in
# MITM (man-in-the-middle) attacks. Disabling ICMP may disrupt legitimate
# traffic to those sites.
net/ipv4/conf/default/accept_redirects=0
net/ipv4/conf/all/accept_redirects=0
net/ipv6/conf/default/accept_redirects=0
net/ipv6/conf/all/accept_redirects=0
# Ignore bogus ICMP errors
net/ipv4/icmp_echo_ignore_broadcasts=1
net/ipv4/icmp_ignore_bogus_error_responses=1
net/ipv4/icmp_echo_ignore_all=0
# Don't log Martian Packets (impossible packets)
net/ipv4/conf/default/log_martians=0
net/ipv4/conf/all/log_martians=0
# Change to '1' to enable TCP/IP SYN cookies This disables TCP Window Scaling
# (http://lkml.org/lkml/2008/2/5/167)
net/ipv4/tcp_syncookies=0
#net/ipv4/tcp_fin_timeout=30
#net/ipv4/tcp_keepalive_intvl=1800
# normally allowing tcp_sack is ok, but if going through OpenBSD 3.8 RELEASE or
# earlier pf firewall, should set this to 0
net/ipv4/tcp_sack=1
# Uncomment this to turn off ipv6 autoconfiguration
#net/ipv6/conf/default/autoconf=0
#net/ipv6/conf/all/autoconf=0
# Uncomment this to enable ipv6 privacy addressing
#net/ipv6/conf/default/use_tempaddr=2
#net/ipv6/conf/all/use_tempaddr=2

View file

@ -1,3 +0,0 @@
[xfce4-session]
SaveSession=None

View file

@ -1,34 +0,0 @@
#!/bin/bash
script_cmdline ()
{
local param
for param in $(< /proc/cmdline); do
case "${param}" in
script=*) echo "${param#*=}" ; return 0 ;;
esac
done
}
automated_script ()
{
local script rt
script="$(script_cmdline)"
if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
if [[ "${script}" =~ ^http:// || "${script}" =~ ^ftp:// ]]; then
wget "${script}" --retry-connrefused -q -O /tmp/startup_script >/dev/null
rt=$?
else
cp "${script}" /tmp/startup_script
rt=$?
fi
if [[ ${rt} -eq 0 ]]; then
chmod +x /tmp/startup_script
/tmp/startup_script
fi
fi
}
if [[ $(tty) == "/dev/tty1" ]]; then
automated_script
fi

View file

@ -1 +0,0 @@
~/.automated_script.sh

View file

@ -1,72 +0,0 @@
#!/bin/bash
set -e -u
# Set hostname
echo "[customize_airootfs] INFO: Set hostname"
echo "wk-arch" > /etc/hostname
echo "127.0.1.1 wk-arch.localdomain wk-arch" >> /etc/hosts
# Set locale
echo "[customize_airootfs] INFO: Set locale"
sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
locale-gen
# Time Settings
echo "[customize_airootfs] INFO: Set time"
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
sed -i 's/#FallbackNTP/NTP/' /etc/systemd/timesyncd.conf
#timedatectl set-ntp true
# root user settings
echo "[customize_airootfs] INFO: Setup root user"
usermod -s /usr/bin/zsh root
cp -aT /etc/skel/ /root/
rm /root/.ssh/id*
rm /root/.zlogin
chmod 700 /root
echo "root:Abracadabra" | chpasswd
# wktech user settings
echo "[customize_airootfs] INFO: Setup wktech user"
groupadd -r autologin
useradd -m -s /bin/zsh -G autologin,power,storage,wheel -U wktech
echo "wktech:Abracadabra" | chpasswd
# Enable sudo for %wheel
echo "[customize_airootfs] INFO: Enable sudo"
echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
# Misc
echo "[customize_airootfs] INFO: Misc Settings"
#sed -i -r 's/extensions.autoDisableScopes", [0-9]+/extensions.autoDisableScopes", 0/' /usr/lib/firefox/browser/defaults/preferences/vendor.js
mkdir /media
# Set mirrorlist
echo "[customize_airootfs] INFO: Setup pacman mirrorlist"
# Ranked on 2017-10-19
echo 'Server = http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
echo 'Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
echo 'Server = http://archlinux.surlyjake.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
echo 'Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
echo 'Server = https://archlinux.surlyjake.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
echo 'Server = http://ca.us.mirror.archlinux-br.org/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
echo 'Server = https://arlm.tyzoid.com/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
echo 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
echo 'Server = http://il.us.mirror.archlinux-br.org/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
# journald settings (from archiso)
echo "[customize_airootfs] INFO: Setup journald"
sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf
# logind settings (from archiso)
echo "[customize_airootfs] INFO: Setup logind"
sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf
sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf
sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf
echo "[customize_airootfs] INFO: Setup systemd"
#systemctl enable pacman-init.service choose-mirror.service
#systemctl set-default graphical.target
echo "[customize_airootfs] INFO: Completed."

View file

@ -1,3 +0,0 @@
View this installation guide online at
https://wiki.archlinux.org/index.php/Installation_Guide

View file

@ -1,44 +0,0 @@
## WK-Arch Settings ##
# Backup options
declare -a BACKUP_1=(
"ServerOne" # Server name
"10.0.0.10" # IP
"Backups" # Share name
"backup" # User name
"Abracadabra" # Password
)
declare -a BACKUP_2=(
"ServerTwo" # Server name
"10.0.0.11" # IP
"Backups" # Share name
"backup" # User name
"Abracadabra" # Password
)
declare -a BACKUP_3=(
"" # Server name
"" # IP
"" # Share name
"" # User name
"" # Password
)
declare -a BACKUP_4=(
"" # Server name
"" # IP
"" # Share name
"" # User name
"" # Password
)
# Hardware testing options
TEST_CPU_LENGTH="7" # Time in minutes to run Prime95
# Network options
WIFI_SSID="SomeWiFi" # Use the 2.4Ghz network for better compatability
WIFI_PASS="Abracadabra"
# Results upload options
SKIP_UPLOAD="False" # Set to "True" to disable all uploads
DIAG_SERVER="10.0.0.10" # Use the IP and not the server name
DIAG_SHARE="/srv/ClientInfo" # Full path to shared folder (relative to the server's root)
DIAG_USER="wkdiag" # User used to connect to the server via SSH

View file

@ -1,64 +0,0 @@
#!/bin/bash
#
## Get connected to a network
# 1. Checks if already online; skips if so
# 2. If no wired devices are present then reload kernel modules
# 3. If wireless devices are present, and we're still offline, then connect to WiFi
die () {
echo "$0:" "$@" >&2
exit 1
}
function test_connection() {
if ip a | grep -Eq '(10.[0-9]+|172.(1[6-9]|2[0-9]|3[0-1]).[0-9]+|192.168).[0-9]+.[0-9]+'; then
return 0
else
return 1
fi
}
# Load settings
if [[ -f "/run/archiso/bootmnt/arch/arch.conf" ]]; then
source "/run/archiso/bootmnt/arch/arch.conf" || \
die "ERROR: failed to load arch.conf (from /run/archiso/bootmnt/arch/)"
else
source "/usr/local/bin/arch.conf" || \
die "ERROR: failed to load arch.conf (from /usr/local/bin/)"
fi
# Init
WIFI_SSID="${WIFI_SSID}"
WIFI_PASS="${WIFI_PASS}"
# Connect to network
if ! test_connection; then
# LAN
if ! ip l | grep -Eq '[0-9]+: +en'; then
## Reload the tg3/broadcom driver (known fix for some Dell systems)
echo "No wired network adapters found; reloading drivers..."
sudo modprobe -r tg3
sudo modprobe broadcom
sudo modprobe tg3
sleep 5s
fi
# WiFi
if ip l | grep -Eq '[0-9]+: +wl'; then
## Skip if we're already connected (i.e. the code above worked)
if ! test_connection; then
echo "Attempting to connect to ${WIFI_SSID}..."
nmcli dev wifi connect "${WIFI_SSID}" password "${WIFI_PASS}"
sleep 5s
fi
fi
fi
# Done
if test_connection; then
exit 0
else
exit 1
fi

View file

@ -1,135 +0,0 @@
#!/bin/bash
#
## WK HW diagnostics - Launcher
MODE="$1"
SHOW_MENU="True"
if [[ "$MODE" =~ ^(all|cpu|drives|foh|smart|badblocks)$ ]]; then
SHOW_MENU="False"
fi
SHOW_POWEROPTIONS="False"
if [[ "$MODE" =~ ^cli$ ]]; then
SHOW_POWEROPTIONS="True"
fi
function pause() {
# Pause to review output
echo ""
echo "$1"
read
}
function menu() {
while :; do
if [[ "$SHOW_MENU" == "False" ]]; then
break
else
clear
echo "Hardware Diagnostics"
echo "────────────────────"
echo "0: Quick drive test"
echo "1: All tests"
echo "2: Prime95"
echo "3: SMART & badblocks"
echo "4: SMART"
echo "5: badblocks"
echo "────────────────────"
#if [[ -n $DISPLAY ]] && [[ $(getconf LONG_BIT) -eq "64" ]]; then
# echo "6: Graphics Test - FurMark"
# echo "7: Graphics Test - Piano"
# echo "8: Graphics Test - Volplosion"
#fi
echo "A: Speaker Test"
if [[ -n $DISPLAY ]]; then
echo "K: Keyboard Test"
fi
echo "N: Network Test"
echo "────────────────────"
echo "M: Screen Saver - Matrix"
echo "P: Screen Saver - Pipes"
echo "────────────────────"
echo "Q: Quit"
if [[ "$SHOW_POWEROPTIONS" =~ ^True$ ]]; then
echo "R: Reboot"
echo "S: Shutdown"
fi
echo ""
read -r -p "Please make a selection: " MODE
# Check input
case $MODE in
0)
MODE=foh
break;;
1)
MODE=all
break;;
2)
MODE=cpu
break;;
3)
MODE=drives
break;;
4)
MODE=smart
break;;
5)
MODE=badblocks
break;;
#6)
# if [[ -n $DISPLAY ]] && [[ $(getconf LONG_BIT) -eq "64" ]]; then
# gputest /fullscreen /test=fur
# fi
# ;;
#7)
# if [[ -n $DISPLAY ]] && [[ $(getconf LONG_BIT) -eq "64" ]]; then
# gputest /fullscreen /test=pixmark_piano
# fi
# ;;
#8)
# if [[ -n $DISPLAY ]] && [[ $(getconf LONG_BIT) -eq "64" ]]; then
# gputest /fullscreen /test=pixmark_volplosion
# fi
# ;;
a|A|audio|Audio)
clear
hw-diags-audio
pause "Press Enter to return to menu...";;
k|K|keyboard|Keyboard)
if [[ -n $DISPLAY ]]; then
xev
fi
;;
m|M)
cmatrix -abs
reset
clear;;
n|N)
clear
hw-diags-network
pause "Press Enter to return to menu...";;
p|P)
pipes -t 0 -t 1 -t 2 -t 3 -p 5 -R -r 4000
reset
clear;;
q|Q|quit|Quit)
exit 0;;
r|R)
sudo reboot;;
s|S)
sudo poweroff;;
esac
fi
done
}
# Main Loop
while :; do
menu
tmux new-session -s 'hw-session' -n 'hw-window' "hw-diags-inner $MODE"
if [[ "$SHOW_MENU" == "False" ]]; then
break
fi
done

View file

@ -1,12 +0,0 @@
#!/bin/bash
#
## WK HW diagnostics - Audio (Stereo)
# Unmute and set volume
amixer -q set "Master" 80% unmute
amixer -q set "PCM" 90% unmute
speaker-test -c 2 -l 1 -t pink
# speaker-test -c 2 -l 1 -t sine
speaker-test -c 2 -l 1 -t wav

View file

@ -1,25 +0,0 @@
#!/bin/bash
#
## WK HW diagnostics - badblocks
function usage {
echo "Usage: $0 log-dir device"
echo " e.g. $0 /tmp/tmp.7Mh5f1RhSL9001 /dev/sda"
}
# Bail early
if [ ! -d "$1" ]; then
usage
exit 1
fi
if [ ! -b "$2" ]; then
usage
exit 1
fi
# Run Badblocks
sudo badblocks -sv -e 1 "$2"
tmux capture-pane
tmux save-buffer "$1/bb_tmp.out"
grep -Ev '^$' "$1/bb_tmp.out" > "$1/${2##*/}_badblocks.log"
rm "$1/bb_tmp.out"

View file

@ -1,518 +0,0 @@
#!/bin/bash
#
## WK HW Diagnostics - Main script
die () {
echo "$0:" "$@" >&2
exit 1
}
# Load settings
if [[ -f "/run/archiso/bootmnt/arch/arch.conf" ]]; then
source "/run/archiso/bootmnt/arch/arch.conf" || \
die "ERROR: failed to load arch.conf (from /run/archiso/bootmnt/arch/)"
else
source "/usr/local/bin/arch.conf" || \
die "ERROR: failed to load arch.conf (from /usr/local/bin/)"
fi
# Get TICKET
## Inital SKIP_UPLOAD value loaded from arch.conf
SKIP_UPLOAD="${SKIP_UPLOAD}"
TICKET=""
while [[ "$TICKET" == "" ]]; do
if [[ "$1" == "foh" ]]; then
TICKET="foh-consult"
SKIP_UPLOAD="True"
else
echo -n "Please enter the Service Order #: "
read -r _ticket
if echo "$_ticket" | grep -Eq '^[1-9]+\S*$'; then
TICKET="$_ticket"
elif echo "$_ticket" | grep -Eq '^0'; then
SKIP_UPLOAD="True"
TICKET="$_ticket"
fi
fi
done
# Init
## Tautologies left to show which settings are coming from arch.conf
DIAG_DATE="$(date "+%F_%H%M")"
DIAG_SERVER_AVAIL="False"
DIAG_SERVER="${DIAG_SERVER}"
DIAG_SHARE="${DIAG_SHARE}"
DIAG_DEST="${DIAG_SHARE}/${TICKET}"
DIAG_UPLOAD_NAME="HW-Diagnostics_${DIAG_DATE}"
DIAG_USER="${DIAG_USER}"
TMP_DIR="$(mktemp -d)"
ERRORS="False"
TEST_CPU="False"
TEST_CPU_LENGTH="${TEST_CPU_LENGTH}"
TEST_OVER="False"
TEST_SMART="False"
TEST_BADBLOCKS="False"
SKIP_SHORT_TEST="False"
LOG="$TMP_DIR/hw-diags.log"
OUT="$TMP_DIR/hw-diags.out"
# Get list of drives to test (excluding any ARCH drives)
## Some code borrowed from stackoverflow.com/a/10020397
ARCH_DRIVES=($(ls -l /dev/disk/by-label | grep -iE 'ARCH.*[hs]d[a-z]' | sed -r 's#.*/([hs]d[a-z])[0-9]+#\1#' | sort | uniq))
DRIVES=($(inxi -Dxx -c 0 | grep -E "ID-[0-9]+" | sed -r 's#.*/dev/([hsv]d[a-z]|nvme[0-9]n[0-9]).*#\1#' | sort))
for d in "${ARCH_DRIVES[@]}"; do
DRIVES=(${DRIVES[@]//*$d*})
done
# Handle testing runs
if [[ "$SKIP_UPLOAD" != "True" ]]; then
# Connect to network
connect-to-network
# Test connection to DIAG_SERVER
if ip a | grep -Eq '(10.[0-9]+|172.(1[6-9]|2[0-9]|3[0-1])|192.168).[0-9]+.[0-9]+' && \
ping -c 1 -q $DIAG_SERVER >/dev/null 2>&1; then
DIAG_SERVER_AVAIL="True"
ssh-add
ssh $DIAG_USER@$DIAG_SERVER mkdir -p "$DIAG_DEST"
ssh $DIAG_USER@$DIAG_SERVER chmod 755 "$DIAG_DEST"
fi
fi
# Setup Env
mkdir "$TMP_DIR" -p 2>/dev/null
pushd "$TMP_DIR" >/dev/null
touch "$OUT"
rm local.txt results.txt 2>/dev/null
# Functions
CLEAR="\e[0m"
RED="\e[31m"
GREEN="\e[32m"
YELLOW="\e[33m"
BLUE="\e[34m"
function update_progress {
echo "HW Diagnostics" > "$LOG"
echo "${BLUE}HW Diagnostics${CLEAR}" > "$OUT"
echo "───────────────" >> "$LOG"
echo "───────────────" >> "$OUT"
if [[ "$TEST_CPU" == "True" ]]; then
echo "" >> "$LOG"
echo "" >> "$OUT"
if [[ "$cpu_result" == "CS" ]]; then
echo "Prime95 CS" >> "$LOG"
echo "${BLUE}Prime95${CLEAR} ${GREEN}CS${CLEAR}" >> "$OUT"
elif [[ "$cpu_result" == "Working" ]]; then
echo "Prime95 Working" >> "$LOG"
echo "${BLUE}Prime95${CLEAR} ${YELLOW}Working${CLEAR}" >> "$OUT"
elif [[ "$cpu_result" == "Unknown" ]]; then
echo "Prime95 Unknown" >> "$LOG"
echo "${BLUE}Prime95${CLEAR} ${YELLOW}Unknown${CLEAR}" >> "$OUT"
else
echo "Prime95 NS" >> "$LOG"
echo "${BLUE}Prime95${CLEAR} ${RED}NS${CLEAR}" >> "$OUT"
fi
fi
if [[ "$TEST_SMART" == "True" ]]; then
echo "" >> "$LOG"
echo "" >> "$OUT"
if [[ "$SKIP_SHORT_TEST" == "True" ]]; then
echo "SMART (Quick)" >> "$LOG"
echo "${BLUE}SMART${CLEAR} ${YELLOW}(Quick)${CLEAR}" >> "$OUT"
else
echo "SMART" >> "$LOG"
echo "${BLUE}SMART${CLEAR}" >> "$OUT"
fi
for d in "${DRIVES[@]}"; do
d_tmp="${d##*/}_smart_result"
eval "d_tmp=\$$d_tmp"
if [[ "$d_tmp" == "CS" ]]; then
echo "${d##*/} CS" >> "$LOG"
echo "${d##*/} ${GREEN}CS${CLEAR}" >> "$OUT"
elif [[ "$d_tmp" == "Working" ]]; then
echo "${d##*/} Working" >> "$LOG"
echo "${d##*/} ${YELLOW}Working${CLEAR}" >> "$OUT"
elif [[ "$d_tmp" == "Unknown" ]]; then
echo "${d##*/} Unknown" >> "$LOG"
echo "${d##*/} ${YELLOW}Unknown${CLEAR}" >> "$OUT"
elif [[ "$d_tmp" == "NS" ]]; then
echo "${d##*/} NS" >> "$LOG"
echo "${d##*/} ${RED}NS${CLEAR}" >> "$OUT"
else
echo "${d##*/}" >> "$LOG"
echo "${d##*/}" >> "$OUT"
fi
done
fi
if [[ "$TEST_BADBLOCKS" == "True" ]]; then
echo "" >> "$LOG"
echo "" >> "$OUT"
echo "Badblocks" >> "$LOG"
echo "${BLUE}Badblocks${CLEAR}" >> "$OUT"
for d in "${DRIVES[@]}"; do
d_tmp="${d##*/}_badblocks_result"
eval "d_tmp=\$$d_tmp"
if [[ "$d_tmp" == "CS" ]]; then
echo "${d##*/} CS" >> "$LOG"
echo "${d##*/} ${GREEN}CS${CLEAR}" >> "$OUT"
elif [[ "$d_tmp" == "Working" ]]; then
echo "${d##*/} Working" >> "$LOG"
echo "${d##*/} ${YELLOW}Working${CLEAR}" >> "$OUT"
elif [[ "$d_tmp" == "Skipped" ]]; then
echo "${d##*/} Skipped" >> "$LOG"
echo "${d##*/} ${RED}Skipped${CLEAR}" >> "$OUT"
elif [[ "$d_tmp" == "NS" ]]; then
echo "${d##*/} NS" >> "$LOG"
echo "${d##*/} ${RED}NS${CLEAR}" >> "$OUT"
else
echo "${d##*/}" >> "$LOG"
echo "${d##*/}" >> "$OUT"
fi
done
fi
if [[ "$TEST_OVER" == "True" ]]; then
echo "" >> "$LOG"
echo "" >> "$OUT"
echo "───────────────" >> "$LOG"
echo "───────────────" >> "$OUT"
if [[ "$ERRORS" == "True" ]]; then
echo "HW: Error(s)" >> "$LOG"
echo "${RED}HW: Error(s)${CLEAR}" >> "$OUT"
else
echo "HW: Passed" >> "$LOG"
echo "${GREEN}HW: Passed${CLEAR}" >> "$OUT"
fi
fi
# Update Server
if [[ "$DIAG_SERVER_AVAIL" == "True" ]]; then
rsync -aqz --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r "$TMP_DIR/" $DIAG_USER@$DIAG_SERVER:"$DIAG_DEST/${DIAG_UPLOAD_NAME}/" --exclude '*.out'
fi
}
# Select Tests
case "$1" in
all)
TEST_CPU="True"
TEST_SMART="True"
TEST_BADBLOCKS="True"
;;
cpu)
TEST_CPU="True"
TEST_SMART="False"
TEST_BADBLOCKS="False"
;;
drives)
TEST_CPU="False"
TEST_SMART="True"
TEST_BADBLOCKS="True"
;;
foh)
TEST_CPU="False"
TEST_SMART="True"
TEST_BADBLOCKS="False"
SKIP_SHORT_TEST="True"
;;
smart)
TEST_CPU="False"
TEST_SMART="True"
TEST_BADBLOCKS="False"
;;
badblocks)
TEST_CPU="False"
TEST_SMART="False"
TEST_BADBLOCKS="True"
;;
esac
if [[ "$TEST_CPU" == "False" ]] && \
[[ "$TEST_SMART" == "False" ]] && \
[[ "$TEST_BADBLOCKS" == "False" ]]; then
echo -e "${YELLOW}Aborting HW diagnostics${CLEAR}"
exit 1
fi
# Configure display
tmux split-window -d -h -l 16 "hw-diags-progress $OUT"
update_progress
# CPU
if [[ "$TEST_CPU" == "True" ]]; then
clear
CPU_ERRORS="False"
cpu_result="Working"
update_progress
apple_fans max
(sleep ${TEST_CPU_LENGTH}m && killall -s INT "mprime" >>/dev/null 2>&1) &
(sleep ${TEST_CPU_LENGTH}m && killall "hw-diags-sensors" >>/dev/null 2>&1) &
(sleep ${TEST_CPU_LENGTH}m && apple_fans auto >>/dev/null 2>&1) &
tmux split-window -d -v -l 10 "hw-diags-prime95 $TMP_DIR"
hw-diags-sensors "$TMP_DIR" 2>/dev/null
sleep 1s
# tmux kill-pane -t 1
if [[ -f "results.txt" ]]; then
mv -nv results.txt "prime-results.txt"
if grep -q -iE '(error|fail)' "prime-results.txt"; then
cpu_result="NS"
CPU_ERRORS="True"
else
cpu_result="CS"
fi
elif [[ -f "prime.log" ]]; then
if grep -i 'completed' "prime.log" | grep -q -iv '0 errors, 0 warnings'; then
cpu_result="NS"
CPU_ERRORS="True"
else
cpu_result="CS"
fi
else
CPU_ERRORS="True"
cpu_result="Unknown"
fi
update_progress
if [[ "$CPU_ERRORS" == "True" ]]; then
ERRORS="True"
fi
fi
# SMART
if [[ "$TEST_SMART" == "True" ]]; then
clear
echo "Checking SMART status..."
for d in "${DRIVES[@]}"; do
SMART_ERRORS="False"
tmp_device="${d##*/}"
eval "${tmp_device}_smart_result=Working"
inxi -Dxx | grep "/dev/${tmp_device}" | sed -r "s#.*/dev/${tmp_device} (.*)# \1#" > "${tmp_device}_report.out"
inxi -Dxxc 0 | grep "/dev/${tmp_device}" | sed -r "s#.*/dev/${tmp_device} (.*)# \1#" > "${tmp_device}_report.log"
update_progress
# Attempt to enable SMART reporting
if sudo smartctl -s on "/dev/${tmp_device}" | grep -q 'device lacks SMART capability'; then
SMART_ERRORS="True"
eval "${tmp_device}_smart_result=Unknown"
echo " ${RED}ERROR: device lacks SMART capability${CLEAR}" >> "${tmp_device}_report.out"
echo " ERROR: device lacks SMART capability" >> "${tmp_device}_report.log"
sleep 1s
fi
# Save current SMART values
sudo smartctl --all "/dev/${tmp_device}" >> "${tmp_device}-smart.log"
sudo smartctl -l error "/dev/${tmp_device}" >> "${tmp_device}-smart-err.log"
# Check specific SMART results
sudo smartctl -A "/dev/${tmp_device}" | grep -E '^\s*(5|9|184|197|198)\s' >> "${tmp_device}-smart-attributes.log"
# 5 - Reallocated Sectors
if grep -qE '^\s*5\s' "${tmp_device}-smart-attributes.log"; then
line="$(grep -E '^\s*5\s' "${tmp_device}-smart-attributes.log")"
value=$(echo "$line" | sed -r 's/.*\s([0-9]+).*/\1/')
echo " Reallocated Sectors: $value" >> "${tmp_device}_report.log"
if [[ "$value" -gt 0 ]]; then
SMART_ERRORS="True"
echo " ${RED}Reallocated Sectors: $value${CLEAR}" >> "${tmp_device}_report.out"
else
echo " ${GREEN}Reallocated Sectors: $value${CLEAR}" >> "${tmp_device}_report.out"
fi
fi
# 9 - Power-on Hours (Warn, but don't prevent badblock scan)
if grep -qE '^\s*9\s' "${tmp_device}-smart-attributes.log"; then
line="$(grep -E '^\s*9\s' "${tmp_device}-smart-attributes.log")"
value=$(echo "$line" | sed -r 's/.*\s([0-9]+).*/\1/')
echo " Power-on Hours: $value" >> "${tmp_device}_report.log"
if [[ "$value" -gt 18000 ]]; then
#SMART_ERRORS="True"
echo " ${RED}Power-on Hours: $value (VERY OLD)${CLEAR}" >> "${tmp_device}_report.out"
elif [[ "$value" -gt 12000 ]]; then
echo " ${YELLOW}Power-on Hours: $value${CLEAR}" >> "${tmp_device}_report.out"
else
echo " ${GREEN}Power-on Hours: $value${CLEAR}" >> "${tmp_device}_report.out"
fi
fi
# 184 - End-to-End Errors
if grep -qE '^\s*184\s' "${tmp_device}-smart-attributes.log"; then
line="$(grep -E '^\s*184\s' "${tmp_device}-smart-attributes.log")"
value=$(echo "$line" | sed -r 's/.*\s([0-9]+).*/\1/')
echo " End-to-End Errors: $value" >> "${tmp_device}_report.log"
if [[ "$value" -gt 0 ]]; then
SMART_ERRORS="True"
echo " ${RED}End-to-End Errors: $value${CLEAR}" >> "${tmp_device}_report.out"
else
echo " ${GREEN}End-to-End Errors: $value${CLEAR}" >> "${tmp_device}_report.out"
fi
fi
# 197 - Current Pending Sectors
if grep -qE '^\s*197\s' "${tmp_device}-smart-attributes.log"; then
line="$(grep -E '^\s*197\s' "${tmp_device}-smart-attributes.log")"
value=$(echo "$line" | sed -r 's/.*\s([0-9]+).*/\1/')
echo " Current Pending Sectors: $value" >> "${tmp_device}_report.log"
if [[ "$value" -gt 0 ]]; then
SMART_ERRORS="True"
echo " ${RED}Current Pending Sectors: $value${CLEAR}" >> "${tmp_device}_report.out"
else
echo " ${GREEN}Current Pending Sectors: $value${CLEAR}" >> "${tmp_device}_report.out"
fi
fi
# 198 - Offline Uncorrectable
if grep -qE '^\s*198\s' "${tmp_device}-smart-attributes.log"; then
line="$(grep -E '^\s*198\s' "${tmp_device}-smart-attributes.log")"
value=$(echo "$line" | sed -r 's/.*\s([0-9]+).*/\1/')
echo " Offline Uncorrectable: $value" >> "${tmp_device}_report.log"
if [[ "$value" -gt 0 ]]; then
SMART_ERRORS="True"
echo " ${RED}Offline Uncorrectable: $value${CLEAR}" >> "${tmp_device}_report.out"
else
echo " ${GREEN}Offline Uncorrectable: $value${CLEAR}" >> "${tmp_device}_report.out"
fi
fi
if [[ "$SMART_ERRORS" == "False" ]] && [[ "$SKIP_SHORT_TEST" == "False" ]]; then
if sudo smartctl -c "/dev/${tmp_device}" >>/dev/null 2>&1; then
# Determine short-test polling time
wait_time=$(sudo smartctl -c "/dev/${tmp_device}" | grep -i 'polling time' | head -1 | sed -r 's/.*\( *([0-9]+)\).*/\1/')
wait_time=$(( wait_time + 5))
# Run short self-test
echo " Running SMART short self-test ($wait_time minutes)..."
sudo smartctl -t short "/dev/${tmp_device}" >/dev/null
sleep ${wait_time}m
sudo smartctl -l selftest "/dev/${tmp_device}" >> "${tmp_device}-smart-tests.log"
if grep '^#' "${tmp_device}-smart-tests.log" | head -1 | grep -iq 'completed without error'; then
echo " ${GREEN}Self-test: passed${CLEAR}" >> "${tmp_device}_report.out"
echo " Self-test: passed" >> "${tmp_device}_report.log"
else
echo " ${RED}Self-test: failed${CLEAR}" >> "${tmp_device}_report.out"
echo " Self-test: failed" >> "${tmp_device}_report.log"
SMART_ERRORS="True"
fi
else
echo " ${RED}ERROR: Unable to run SMART self-test.${CLEAR}" >> "${tmp_device}_report.out"
echo " ERROR: Unable to run SMART self-test." >> "${tmp_device}_report.log"
fi
fi
if [[ "$SMART_ERRORS" == "False" ]]; then
eval "${tmp_device}_smart_result=CS"
else
ERRORS="True"
tmp_if="${tmp_device}_smart_result"
eval "tmp_if=\$$tmp_if"
if [[ "$tmp_if" != "Unknown" ]]; then
eval "${tmp_device}_smart_result=NS"
fi
fi
update_progress
done
fi
# Badblocks
if [[ "$TEST_BADBLOCKS" == "True" ]]; then
clear
for d in "${DRIVES[@]}"; do
# Get SMART results
tmp_device="${d##*/}"
d_smart="${tmp_device}_smart_result"
eval "d_smart=\$$d_smart"
# Check SMART results
if [[ "$d_smart" == "NS" ]]; then
echo -e "${RED}Skipping drive: $tmp_device${CLEAR}"
eval "${tmp_device}_badblocks_result=Skipped"
else
eval "${tmp_device}_badblocks_result=Working"
update_progress
echo "Testing drive: ${tmp_device}"
# Split and run
tmux split-window -v -l 7 "hw-diags-badblocks $TMP_DIR /dev/${tmp_device}"
# Wait until done
sleep 2s
while pgrep -G 0 -U 0 -f "badblocks.*${tmp_device}" >/dev/null 2>&1; do
sleep 1s;
done
sleep 2s
# Check log
if grep -Eiq 'Pass completed.*0/0/0 errors' "${tmp_device}_badblocks.log"; then
eval "${tmp_device}_badblocks_result=CS"
else
eval "${tmp_device}_badblocks_result=NS"
fi
update_progress
fi
done
fi
# Result Screen
TEST_OVER="True"
update_progress
clear
echo "─── RESULTS ───"
if [[ "$TEST_CPU" == "True" ]]; then
echo -e "${BLUE}CPU:${CLEAR}"
if [[ -f "results.txt" ]]; then
echo "results.txt"
if grep -q -iE '(error|fail)' "prime-results.txt"; then
echo -e "${RED}$(grep -q -iE '(error|fail)' "prime-results.txt" | sed -r 's/^/ /' | tail -4)${CLEAR}"
else
sed -r 's/^/ /' "prime-results.txt" 2>/dev/null | tail -4
fi
echo ""
fi
if [[ -f "prime.log" ]]; then
echo "prime.log"
if grep -i 'completed' "prime.log" | grep -q -iv '0 errors, 0 warnings'; then
echo -e "${RED}$(grep -i 'completed' "prime.log" | grep -iv '0 errors, 0 warnings' | sed -r 's/^/ /' | tail -4)${CLEAR}"
else
grep -i 'completed' "prime.log" | grep -i '0 errors, 0 warnings' | sed -r 's/^.*(Worker #[0-9]+).*(Torture.*)/ \1 \2/' | tail -4
fi
fi
fi
if [[ "$TEST_SMART" == "True" ]] || \
[[ "$TEST_BADBLOCKS" == "True" ]]; then
for d in "${DRIVES[@]}"; do
echo -e "${BLUE}Drive $d:${CLEAR}"
if [[ -f "${d##*/}_report.out" ]]; then
echo -e "$(cat "${d##*/}_report.out" 2>/dev/null)"
fi
if [[ -f "${d##*/}_badblocks.log" ]]; then
grep 'Pass completed, ' "${d##*/}_badblocks.log" 2>/dev/null | sed -r 's/^Pass completed, / /' 2>/dev/null
fi
echo ""
done
fi
update_progress
# System info dump
sudo inxi -CDdGlMmNopRsc 0 | grep -Ev '(/dev/ram|No RAID devices|Display Server|multisession)' > "system_info.txt"
# Cleanup
mkdir "$HOME/Tickets/$TICKET" -p 2>/dev/null
rsync -aS --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r "$TMP_DIR/" "$HOME/Tickets/$TICKET/"
popd >/dev/null
cd "$HOME/Tickets" && tar czf "${DIAG_UPLOAD_NAME}.tgz" "$TICKET"
# Update Server
if [[ "$DIAG_SERVER_AVAIL" == "True" ]]; then
rsync -aqz --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r "${DIAG_UPLOAD_NAME}.tgz" $DIAG_USER@$DIAG_SERVER:"$DIAG_DEST/"
fi
# End
echo -n "Press Enter to exit..."
read -r
killall hw-diags-progress >>/dev/null 2>&1
exit 0

View file

@ -1,73 +0,0 @@
#!/bin/bash
#
## WK HW diagnostics - Network
function test_connection() {
cmd="a"
if [[ -e "/sys/class/net/$1" ]]; then
cmd="a show $1"
fi
if ip $cmd | grep -Eq '(10.[0-9]+|172.(1[6-9]|2[0-9]|3[0-1]).[0-9]+|192.168).[0-9]+.[0-9]+'; then
return 0
else
return 1
fi
}
CLEAR="\e[0m"
RED="\e[31m"
GREEN="\e[32m"
YELLOW="\e[33m"
BLUE="\e[34m"
# Header
echo "WK HW Diagnostics - Network"
echo ""
# Start Wifi if necessary
echo "Initializing..."
connect-to-network >/dev/null 2>&1
# Check network connection
echo -n "Network connection: "
if test_connection; then
echo -e "${GREEN}OK${CLEAR}"
else
echo -e "${RED}No access${CLEAR}"
exit 1
fi
# Check IP addresses
for d in /sys/class/net/*; do
device="$(basename $d)"
if [ "$device" != "lo" ]; then
if test_connection $device; then
ip="$(ip a show $device | egrep 'inet [0-9]' | sed -r 's#.*inet (.*?/[0-9]+).*#\1#')"
echo "$device: $ip" | awk '{printf " %-16s %s\n", $1, $2}'
fi
fi
done
# Check internet connection
echo -n "Internet connection: "
if ping -c 2 -q 8.8.8.8 >/dev/null 2>&1; then
echo -e "${GREEN}OK${CLEAR}"
else
echo -e "${RED}No access${CLEAR}"
exit 1
fi
# Check DNS
echo -n "DNS Resolution: "
if ping -c 2 -q google.com >/dev/null 2>&1; then
echo -e "${GREEN}OK${CLEAR}"
else
echo -e "${RED}Unable to resolve google.com${CLEAR}"
exit 1
fi
# Check speed
echo "Speedtest:"
speedtest-cli --simple | awk '{printf " %-16s %6.2f %s\n", $1, $2, $3}'

View file

@ -1,17 +0,0 @@
#!/bin/bash
#
## HW diagnostics - Prime95
function usage {
echo "Usage: $0 log-dir"
echo " e.g. $0 /tmp/tmp.7Mh5f1RhSL9001"
}
# Bail early
if [ ! -d "$1" ]; then
usage
exit 1
fi
# Run Prime95
mprime -t | grep -iv --line-buffered 'stress.txt' | tee -a "$1/prime.log"

View file

@ -1,10 +0,0 @@
#!/bin/bash
#
## WK HW diagnostics - Progress
# Loop forever
while :; do
clear
echo -e "$(cat "$1")"
sleep 1s
done

View file

@ -1,42 +0,0 @@
#!/bin/bash
#
## WK HW diagnostics - Sensors
LOG_DIR="$1"
function usage {
echo "Usage: $0 log-dir"
echo " e.g. $0 /tmp/tmp.7Mh5f1RhSL9001"
}
# Create directory if necessary
if [ ! -d "$LOG_DIR" ]; then
LOG_DIR="$(mktemp -d)"
fi
# Run Sensor loop
if sensors >/dev/null 2>&1; then
while :; do
sensors -A | grep -E -i -v '(N/A|RPM|\d+\s+V\s+|^\s*$)' > "$LOG_DIR/sensors.out" 2>/dev/null
# Colorize
# Blue: All temps (superseeded by other colors below)
sed -i -r 's#(\+[0-9]+\.[0-9].C)#\\e[34m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1
# Green >= 60* C
sed -i -r 's#(\+6[0-9]\.[0-9].C)#\\e[32m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1
# Yellow >= 70* C
sed -i -r 's#(\+7[0-9]\.[0-9].C)#\\e[33m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1
# Orange >= 80* C
sed -i -r 's#(\+(8[0-9]|9[0-4])\.[0-9].C)#\\e[31\;1m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1
# Red >= 95* C
sed -i -r 's#(\+(9[5-9]|1[0-9][0-9])\.[0-9].C)#\\e[31m\1\\e[0m#g' "$LOG_DIR/sensors.out" >/dev/null 2>&1
# Output data
clear
echo -e "$(cat "$LOG_DIR/sensors.out")"
sleep 1s
done
else
echo -e "\e[33mNo sensors found!\nPlease monitor temperatures manually\e[0m"
sleep 1h
fi

View file

@ -1,28 +0,0 @@
#!/bin/bash
#
## Mount all volumes read-only
# Mount all volumes
echo "Mounting all volumes"
regex="/dev/((h|s)d[a-z]|md)[0-9]+"
for volume in $(inxi -Dopxx | grep -E "$regex" | sed -r "s#.*($regex).*#\1#" | sort); do
if grep -q "$volume" /proc/mounts; then
if ! mount | grep "/run/archiso/bootmnt" | grep -q "$volume"; then
# Show what's already mounted except the WK_ARCH boot device
echo "$volume: (Already) mounted $(mount | grep "$volume" | sed -r 's/^\S+ (on.*) type .*/\1/') ($(df -h "$volume" | tail -1 | awk '{print $3, $4}' | sed -r 's/(K|M|G|T|) (.*[0-9])(K|M|G|T|)$/ \1b used, \2 \3b free/'))"
fi
else
if udevil mount -o ro $volume >/dev/null 2>&1; then
echo "$volume: Mounted $(mount | grep "$volume" | sed -r 's/^\S+ (on.*) type .*/\1/') ($(df -h "$volume" | tail -1 | awk '{print $3, $4}' | sed -r 's/(K|M|G|T|) (.*[0-9])(K|M|G|T|)$/ \1b used, \2 \3b free/'))"
else
echo "$volume: Failed to mount"
fi
fi
done
# Open folder?
if echo "$0" | grep -iq foh; then
thunar /media
fi
echo "Done."

View file

@ -1 +0,0 @@
mount-all-volumes

View file

@ -1,67 +0,0 @@
#!/bin/bash
#
## Mount NAS backup shares
die () {
echo "$0:" "$@" >&2
exit 1
}
# Load settings
if [[ -f "/run/archiso/bootmnt/arch/arch.conf" ]]; then
source "/run/archiso/bootmnt/arch/arch.conf" || \
die "ERROR: failed to load arch.conf (from /run/archiso/bootmnt/arch/)"
else
source "/usr/local/bin/arch.conf" || \
die "ERROR: failed to load arch.conf (from /usr/local/bin/)"
fi
# Connect to a network
connect-to-network
# Mount loop
echo "Mounting NAS backup shares"
for x in {1..4}; do
_skip="False"
# Load Backup share info
eval "declare -a _backup=(\${BACKUP_$x[@]})"
_name="${_backup[0]}"
_ip="${_backup[1]}"
_share="${_backup[2]}"
_user="${_backup[3]}"
_pass="${_backup[4]}"
# Check backup share info
if echo "$_name" | grep -Eq '^\s*$'; then
_skip="True";
fi
if echo "$_ip" | grep -Eq '^\s*$'; then
_skip="True";
fi
if echo "$_share" | grep -Eq '^\s*$'; then
_skip="True";
fi
if echo "$_user" | grep -Eq '^\s*$'; then
_skip="True";
fi
if echo "$_pass" | grep -Eq '^\s*$'; then
_skip="True";
fi
# Mount
if [[ "$_skip" == "False" ]]; then
sudo mkdir "/Backups/$_name" -p
if mountpoint -q "/Backups/$_name"; then
echo "$_name: (Already) mounted at /Backups/$_name ($(df -h "/Backups/$_name" | tail -1 | awk '{print $4}' | sed -r 's/([KMGT])/ \1b/') free)"
else
if sudo mount "//$_ip/$_share" "/Backups/$_name" -o username=$_user,password=$_pass 2>/dev/null; then
echo "$_name: Mounted at /Backups/$_name ($(df -h "/Backups/$_name" | tail -1 | awk '{print $4}' | sed -r 's/([KMGT])/ \1b/') free)"
else
rmdir "/Backups/$_name" -p 2>/dev/null
echo "$_name: Failed to mount"
fi
fi
fi
done

View file

@ -1,38 +0,0 @@
#!/bin/bash
TMP_FILE="$(mktemp)"
IFS=$'\n'
for s in $*; do
REGEX="$s"
REGEX=$(echo "$REGEX" | sed -r 's/\s+/\\s\*/g')
# Word Doc
for d in *doc; do
if antiword "$d" | grep -iqsP "($REGEX)"; then
echo "Possible match: $d"
echo "$d" >> "$TMP_FILE"
fi
done
# Word Docx
for d in *docx; do
if unzip -p "$d" word/document.xml | grep -iqsP "($REGEX)"; then
echo "Possible match: $d"
echo "$d" >> "$TMP_FILE"
fi
done
done
# Cleanup results
if [[ -s "$TMP_FILE" ]]; then
sort -u "$TMP_FILE" >> "$HOME/msword-matches.txt"
fi
rm "$TMP_FILE"
# Done
if [[ -s "$HOME/msword-matches.txt" ]]; then
echo "Found $(wc -l "$HOME/msword-matches.txt") possible matches"
echo "The results have been saved to $HOME"
fi

View file

@ -1,9 +0,0 @@
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="SomeWiFi"
psk="Abracadabra"
priority=5
}

View file

@ -1,10 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=SpeedTest
Comment=
Exec=urxvt -titile SpeedTest -hold -e speedtest
Icon=network-workgroup
Path=/usr/local/bin
Terminal=false
StartupNotify=false

View file

@ -1,44 +0,0 @@
## WK-Arch Settings ##
# Backup options
declare -a BACKUP_1=(
"ServerOne" # Server name
"10.0.0.10" # IP
"Backups" # Share name
"backup" # User name
"Abracadabra" # Password
)
declare -a BACKUP_2=(
"ServerTwo" # Server name
"10.0.0.11" # IP
"Backups" # Share name
"backup" # User name
"Abracadabra" # Password
)
declare -a BACKUP_3=(
"" # Server name
"" # IP
"" # Share name
"" # User name
"" # Password
)
declare -a BACKUP_4=(
"" # Server name
"" # IP
"" # Share name
"" # User name
"" # Password
)
# Hardware testing options
TEST_CPU_LENGTH="7" # Time in minutes to run Prime95
# Network options
WIFI_SSID="SomeWiFi" # Use the 2.4Ghz network for better compatability
WIFI_PASS="Abracadabra"
# Results upload options
SKIP_UPLOAD="False" # Set to "True" to disable all uploads
DIAG_SERVER="10.0.0.10" # Use the IP and not the server name
DIAG_SHARE="/srv/ClientInfo" # Full path to shared folder (relative to the server's root)
DIAG_USER="wkdiag" # User used to connect to the server via SSH

View file

@ -1,165 +0,0 @@
# For commands above TEXT check:
# http://conky.sourceforge.net/config_settings.html
#
# For commands available below TEXT check:
# http://conky.sourceforge.net/variables.html
# Bunsen Labs Conky help threads
# http://crunchbang.org/forums/viewtopic.php?pid=371424#p371424
# beta tested by: smacz
# Enjoy! :)
# pkill -xf "conky -q -c $HOME/.config/conky/BL-Default.conkyrc" &
### Begin Window Settings #####################
own_window yes
own_window_type normal
own_window_transparent no
own_window_hints undecorated,below,skip_taskbar,skip_pager,sticky
own_window_colour 000000
own_window_class Conky
#own_window_title Bunsen Labs Default Conky
own_window_title Default Conky
### ARGB can be used for real transparency
### NOTE that a composite manager is required for real transparency.
### This option will not work as desired (in most cases) in conjunction with
### own_window_type normal
own_window_argb_visual yes # Options: yes or no
### When ARGB visuals are enabled, this use this to modify the alpha value
### Use: own_window_type normal
### Use: own_window_transparent no
### Valid range is 0-255, where 0 is 0% opacity, and 255 is 100% opacity.
own_window_argb_value 160
minimum_size 180 0 ### width | height
maximum_width 180
gap_x 20 ### left | right
gap_y 45 ### up | down
alignment tr
####################### End Window Settings ###
### Font Settings #############################
# Use Xft (anti-aliased font and stuff)
use_xft yes
xftfont Inconsolata:bold:size=9
#xftfont Liberation Sans:size=9
# Alpha of Xft font. Must be a value at or between 1 and 0 ###
xftalpha 1
# Force UTF8? requires XFT ###
override_utf8_locale yes
uppercase no
######################### End Font Settings ###
### Colour Settings ###########################
draw_shades no #yes
default_shade_color 000000
draw_outline no # amplifies text if yes
default_outline_color 000000
#default_color 656667 # Waldorf original colour
#default_color 7a7a7a # Flame & Bunsen Grey
#default_color 929292 # Labs Grey
default_color C0C0C0 # Silver
color0 B0E0E6 # PowderBlue
color1 778899 # LightSlateGray
color2 D8BFD8 # Thistle
color3 9ACD32 # YellowGreen
color4 FFA07A # LightSalmon
color5 FFDEAD # NavajoWhite
color6 00BFFF # DeepSkyBlue
color7 5F9EA0 # CadetBlue
color8 BDB76B # DarkKhaki
color9 CD5C5C # IndianRed
####################### End Colour Settings ###
### Borders Section ###########################
draw_borders no
# Stippled borders?
stippled_borders 5
# border margins
border_inner_margin 5
border_outer_margin 0
# border width
border_width 2
# graph borders
draw_graph_borders yes #no
#default_graph_size 15 40
####################### End Borders Section ###
### Miscellaneous Section #####################
# Boolean value, if true, Conky will be forked to background when started.
background yes
# Adds spaces around certain objects to stop them from moving other things
# around, this only helps if you are using a mono font
# Options: right, left or none
use_spacer none
# Default and Minimum size is 256 - needs more for single commands that
# "call" a lot of text IE: bash scripts
text_buffer_size 6144
# Subtract (file system) buffers from used memory?
no_buffers yes
# change GiB to G and MiB to M
short_units yes
# Like it says, ot pads the decimals on % values
# doesn't seem to work since v1.7.1
pad_percents 2
# Imlib2 image cache size, in bytes. Default 4MiB Increase this value if you use
# $image lots. Set to 0 to disable the image cache.
imlib_cache_size 0
# Use the Xdbe extension? (eliminates flicker)
# It is highly recommended to use own window with this one
# so double buffer won't be so big.
double_buffer yes
# Maximum size of user text buffer, i.e. layout below TEXT line in config file
# (default is 16384 bytes)
# max_user_text 16384
# Desired output unit of all objects displaying a temperature. Parameters are
# either "fahrenheit" or "celsius". The default unit is degree Celsius.
# temperature_unit Fahrenheit
################# End Miscellaneous Section ###
#### ${font Monospace:bold:size=10}${alignc}${execpi 600 $HOME/.config/conky/scripts/bunsenweather.sh}
update_interval 1
TEXT
${color}${alignc}S Y S T E M I N F O
${hr}
Date:${alignr}${time %F}
Time:${alignr}${time %H:%M}
Uptime:${alignr}${uptime_short}
CPU: ${if_match ${cpu cpu0}<10} ${cpu cpu0}\
${else}${if_match ${cpu cpu0}<100} ${cpu cpu0}\
${else}${cpu cpu0}${endif}${endif}% Used${alignr}${freq_g} GHz
${cpugraph cpu0 20,180 ${color} ${color}}
RAM: ${mem} Used${alignr}${memmax}
${memgraph 20,180 ${color} ${color}}
Disk I/O:
${diskiograph 20,180 ${color} ${color}}
Down: ${downspeed}${goto 115}Up:${alignr}${upspeed}
${alignc}S H O R T C U T K E Y S
${hr}
[Super] + d${alignr}HW Diagnostics
[Super] + f${alignr}File Manager
[Super] + h${alignr}Task Manager
[Super] + i${alignr}HW Information
[Super] + m${alignr}Mount Volumes
[Super] + r${alignr}Run Dialog
[Super] + s${alignr}SMART Check
[Super] + t${alignr}Terminal
[Super] + v${alignr}View Temps
[Super] + w${alignr}Web Browser
[Super] + x${alignr}Logout

View file

@ -1,9 +0,0 @@
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="SomeWiFi"
psk="Abracadabra"
priority=5
}

View file

@ -1,2 +0,0 @@
HOOKS="base udev memdisk archiso_shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block pcmcia filesystems keyboard"
COMPRESSION="xz"

View file

@ -1,153 +0,0 @@
aic94xx-firmware
alsa-utils
antiword
arch-install-scripts
bash-pipes
bc
bluez
bluez-utils
btrfs-progs
cbatticon
chntpw
cmatrix
colordiff
compton
conky
crda
curl
darkhttpd
ddrescue
dhclient
dialog
dmidecode
dmraid
dnsmasq
dnsutils
dos2unix
dosfstools
dunst
e2fsprogs
elinks
ethtool
exfat-utils
f2fs-tools
feh
ffmpeg
firefox
fsarchiver
gnome-keyring
gnu-netcat
gparted
gptfdisk
grub
gsmartcontrol
gtk-theme-arc-git
hardinfo
hdparm
hexedit
hfsprogs
htop
i3-gaps
i3lock-fancy-git
i3status
inxi
ipw2100-fw
ipw2200-fw
irssi
ldns
lftp
libewf
libinput
linux-atm
linux-firmware
lm_sensors
lsscsi
mc
mdadm
mediainfo
mesa-demos
mkvtoolnix-cli
mprime-bin
mpv
mtools
mupdf
ncdu
ndisc6
network-manager-applet
networkmanager
nfs-utils
nilfs-utils
nmap
ntfs-3g
ntp
oblogout
openbox-patched
openconnect
openssh
openvpn
p7zip
papirus-icon-theme
partclone
parted
partimage
pasystray
pavucontrol
ppp
pptpclient
progsreiserfs
pulseaudio
qemu-guest-agent
reiserfsprogs
rfkill
rng-tools
rofi
rp-pppoe
rsync
rxvt-unicode
sdparm
sg3_utils
smartmontools
speedtest-cli
speedtouch
spice-vdagent
sudo
tcpdump
terminus-font
testdisk-wip
thunar
tint2
tk
tmux
tree
ttf-font-awesome
ttf-inconsolata
udevil
udisks2
ufw
unzip
usb_modeswitch
veracrypt
vim
virtualbox-guest-modules-arch
virtualbox-guest-utils
vpnc
wd719x-firmware
wget
wimlib
wireless_tools
wpa_actiond
wvdial
xf86-input-libinput
xf86-video-amdgpu
xf86-video-fbdev
xf86-video-intel
xf86-video-nouveau
xf86-video-vesa
xl2tpd
xorg-server
xorg-xdpyinfo
xorg-xev
xorg-xinit
xorg-xinput
zd1211-firmware
zsh

View file

@ -1,96 +0,0 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
# We cannot check disk space from within a chroot environment
#CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[wk-repo]
SigLevel = Optional TrustAll
Server = file:///home/builduser/wk-arch/wk-repo
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

View file

@ -1,80 +0,0 @@
#!/bin/bash
#/srv/ArchBuilds
# Set Vars
LOG_DIR="/mnt/Build/logs"
OUT_DIR="/mnt/Build/isos"
TMP_DIR="/mnt/Scratch"
DATE="$(date +%F)"
DATETIME="$(date +%F_%H%M)"
if [[ "$EUID" -eq 0 ]]; then
## Elevated section ##
# Set permissions
echo "Setting permissions..."
chown root.root archlive -R
chmod 700 archlive/airootfs/etc/skel/.ssh
chmod 600 archlive/airootfs/etc/skel/.ssh/id_rsa
# Modify build.sh
if ! grep -iq 'customize_iso' archlive/build.sh; then
sed -ir 's!run_once make_iso!# customize_iso\ncp -a ${script_path}/extra/* ${work_dir}/iso/\n\nrun_once make_iso!' archlive/build.sh
fi
# Build ISO
mkdir $LOG_DIR
mkdir $OUT_DIR
mkdir $TMP_DIR
./archlive/build.sh -N "wk-arch" -V "$DATE" -L "WK_ARCH" -w "$TMP_DIR" -o "$OUT_DIR" -v | tee -a "$LOG_DIR/$DATETIME.log"
# Cleanup
echo "Removing temp files..."
rm "$TMP_DIR" -Rf | tee -a "$LOG_DIR/$DATETIME.log"
echo "Reverting permissions..."
chown builduser.builduser archlive -R
else
## Non-elevated section ##
# Prep
mkdir wk-repo
pushd wk-repo >/dev/null
BEFORE=$(date "+%F_%H%M%S")
mkdir _done/$BEFORE -p
find . -maxdepth 1 -not -name 'update' -and -not -name '_done' -exec mv -nv "{}" _done/$BEFORE/ \;
rmdir _done/* --ignore-fail-on-non-empty
sleep 1s
AFTER=$(date "+%F_%H%M%S")
# Install Dependancies
sudo pacman -Syu base-devel libewf attr progsreiserfs --needed --noconfirm
#for p in lha; do
# echo "Installing dependancy: $p"
# curl -LsfO https://aur.archlinux.org/cgit/aur.git/snapshot/$p.tar.gz
# tar xf $p.tar.gz
# pushd $p >/dev/null
# makepkg -si --needed --noconfirm
# popd >/dev/null
# mv -n $p $p.tar.gz _done/$AFTER/
#done
# Build custom repo packages
mkdir _done/$AFTER
for p in aic94xx-firmware bash-pipes gtk-theme-arc-git hfsprogs i3-gaps i3lock-fancy-git mprime-bin openbox-patched papirus-icon-theme pasystray testdisk-wip ttf-font-awesome wd719x-firmware wimlib; do
echo "Building: $p"
curl -LsfO https://aur.archlinux.org/cgit/aur.git/snapshot/$p.tar.gz
tar xf $p.tar.gz
pushd $p >/dev/null
makepkg -s --noconfirm
popd >/dev/null
mv -n $p/*xz ./
mv -n $p $p.tar.gz _done/$AFTER/
done
# Build custom repo database
for p in *xz; do
repo-add wk-repo.db.tar.gz $p
done
popd >/dev/null
# Rerun script as root to start Archiso build process
sudo "$0"
fi

6
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,6 @@
repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
# Ruff version.
rev: 'v0.0.257'
hooks:
- id: ruff

View file

@ -1,7 +1,7 @@
Copyright (c) 2017 Alan Mason
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2023 Alan Mason
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

39
README.md Normal file
View file

@ -0,0 +1,39 @@
# WizardKit #
A collection of tools to help technicians service computers.
## Overview ##
There are a few main parts to this project and their uses:
* Live Linux image
* Hardware diagnostics
* CPU stress tests with temperature monitoring
* Health checks/tests for storage drives
* Misc other diagnostics
* Data recovery
* General data transfers from many possible filesystems
* Bit-level drive duplication based on ddrescue
* Live macOS image
* Hardware diagnostics
* CPU stress tests with temperature monitoring
* Health checks/tests for storage drives
* Data recovery
* _(Currently under development)_
* Live WinPE image
* _(Currently under development)_
* Windows Kit _(intended for UFDs)_
* Automated repairs
* AV scans
* Windows health checks
* Automated setup
* Install software
* System configuration
## Combined UFD ##
All parts can be combined onto a single UFD!
* Compatible with most legacy and UEFI bootloaders
* Custom boot menus
* To get started run `build-ufd` under the live Linux image

BIN
images/ConEmu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

BIN
images/Linux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
images/Pxelinux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
images/Syslinux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
images/WinPE.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

BIN
images/WizardHat.xcf Normal file

Binary file not shown.

122
images/logo.svg Normal file
View file

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="32"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="logo.svg"
inkscape:export-filename="/home/thewizardpp/projects/logos/logo512x512.png"
inkscape:export-xdpi="1440"
inkscape:export-ydpi="1440">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<filter
id="filter3668"
inkscape:label="Drop shadow"
width="1.5"
height="1.5"
x="-.25"
y="-.25">
<feGaussianBlur
id="feGaussianBlur3670"
in="SourceAlpha"
stdDeviation="1,000000"
result="blur" />
<feColorMatrix
id="feColorMatrix3672"
result="bluralpha"
type="matrix"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0,500000 0 " />
<feOffset
id="feOffset3674"
in="bluralpha"
dx="1,000000"
dy="1,000000"
result="offsetBlur" />
<feMerge
id="feMerge3676">
<feMergeNode
id="feMergeNode3678"
in="offsetBlur" />
<feMergeNode
id="feMergeNode3680"
in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="15.839192"
inkscape:cx="16.469461"
inkscape:cy="15.775995"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="1152"
inkscape:window-height="844"
inkscape:window-x="-2"
inkscape:window-y="93"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer"
style="display:inline">
<g
id="g3613"
transform="matrix(1.0696952,0,0,1.0696952,-1.9682871,1.2767394)">
<path
sodipodi:nodetypes="cssssss"
d="m 28.466519,15.480445 c -1.690444,-0.411311 -3.880242,0.0024 -6.862802,1.703057 -4.343818,2.477 -5.647804,4.7124 -10.531132,6.5262 -2.7416801,1.0184 -7.1725478,1.2727 -6.7296333,-1.9563 0.4055207,-2.9564 4.8746766,-5.683963 10.7473903,-5.268022 7.253753,0.513753 7.780294,2.643843 11.236758,2.445771 4.073631,-0.233438 3.02577,-3.235043 2.139419,-3.450706 z"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path2822"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccscsc"
id="path2832"
d="m 22.349625,16.595174 c -5.498466,2.959917 -4.603518,5.10607 -10.999048,3.821601 1.40216,-4.418086 4.962036,-16.95097 7.147841,-17.2692571 1.878431,-0.2735287 4.924495,4.2931483 4.924495,4.2931483 0,0 -3.661803,-2.9673231 -4.16688,-1.7046325 -0.593183,1.4829546 2.39459,8.4145833 3.093592,10.8591403 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccc"
id="path3611"
d="m 22.074942,15.74979 c 1.515307,-0.313608 1.831341,-0.3546 3.377477,-0.485523 1.799175,-0.173029 3.187957,0.237433 3.187957,0.237433"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
images/macOS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
images/rEFInd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

508
scripts/Launch.cmd Normal file
View file

@ -0,0 +1,508 @@
:: WizardKit: Wrapper for launching programs and scripts.
::
:: Some features:
:: * If the OS is 64-bit then the WorkingDir is scanned for a 64-bit version of the programs
:: * Allows for centralized terminal emulation settings management
:: * Allows for smaller "launcher" scripts to be used as they will rely on this script.
@echo off
if defined DEBUG (@echo on)
:Init
setlocal EnableDelayedExpansion
title WizardKit: Launcher
pushd "%~dp0"
call :FindBin
call :DeQuote L_ITEM
call :DeQuote L_PATH
call :DeQuote L_TYPE
:SetVariables
rem Set variables using settings\main.py file
set "SETTINGS=%bin%\Scripts\wk\cfg\main.py"
for %%v in (ARCHIVE_PASSWORD KIT_NAME_FULL OFFICE_SERVER_IP QUICKBOOKS_SERVER_IP) do (
set "var=%%v"
for /f "tokens=* usebackq" %%f in (`findstr "!var!=" "%SETTINGS%"`) do (
set "_v=%%f"
set "_v=!_v:*'=!"
set "%%v=!_v:~0,-1!"
)
)
rem Set ARCH to 32 as a gross assumption and check for x86_64 status
set ARCH=32
if /i "%PROCESSOR_ARCHITECTURE%" == "AMD64" set "ARCH=64"
set "SEVEN_ZIP=%bin%\7-Zip\7z.exe"
set "CON=%bin%\ConEmu\ConEmu.exe"
set "FASTCOPY=%bin%\FastCopy\FastCopy.exe"
set "POWERSHELL=%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe"
set "PYTHON=%bin%\Python\x32\python.exe"
if %ARCH% equ 64 (
set "CON=%bin%\ConEmu\ConEmu64.exe"
set "FASTCOPY=%bin%\FastCopy\FastCopy64.exe"
set "PYTHON=%bin%\Python\x64\python.exe"
)
:UpdateTitle
rem Sets title using KIT_NAME_FULL from settings\main.py (unless %window_title% already set)
if defined window_title (
title %window_title%
) else (
set "window_title=%*"
if not defined window_title set "window_title=Launcher"
set "window_title=%KIT_NAME_FULL%: %window_title%"
title %window_title%
)
:CheckUsage
rem Check for empty passed variables
if not defined L_TYPE (goto Usage)
if not defined L_PATH (goto Usage)
if not defined L_ITEM (goto Usage)
rem Assume if not "True" then False (i.e. undefine variable)
if /i not "%L_ELEV%" == "True" (set "L_ELEV=")
if /i not "%L_NCMD%" == "True" (set "L_NCMD=")
if /i not "%L__CLI%" == "True" (set "L__CLI=")
:RelaunchInConEmu
set RELOAD_IN_CONEMU=True
if defined ConEmuBuild set "RELOAD_IN_CONEMU="
if defined L_NCMD set "RELOAD_IN_CONEMU="
if "%L_TYPE%" == "Executable" set "RELOAD_IN_CONEMU="
if "%L_TYPE%" == "PSScript" set "RELOAD_IN_CONEMU="
if "%L_TYPE%" == "PyScript" set "RELOAD_IN_CONEMU="
if defined RELOAD_IN_CONEMU (
set "con_args=-new_console:n"
rem If in DEBUG state then force ConEmu to stay open
if defined DEBUG (set "con_args=!con_args! -new_console:c")
start "" "%CON%" -run ""%~0" %*" !con_args! || goto ErrorUnknown
exit /b 0
)
:CheckLaunchType
rem Jump to the selected launch type or show usage
if /i "%L_TYPE%" == "Executable" (goto LaunchExecutable)
if /i "%L_TYPE%" == "Folder" (goto LaunchFolder)
if /i "%L_TYPE%" == "Office" (goto LaunchOffice)
if /i "%L_TYPE%" == "PSScript" (goto LaunchPSScript)
if /i "%L_TYPE%" == "PyScript" (goto LaunchPyScript)
if /i "%L_TYPE%" == "QuickBooks" (goto LaunchQuickBooksSetup)
goto Usage
:LaunchExecutable
rem Prep
call :ExtractOrFindPath || goto ErrorProgramNotFound
rem Check for 64-bit prog (if running on 64-bit system)
set "prog=%_path%\%L_ITEM%"
if %ARCH% equ 64 (
if exist "%_path%\%L_ITEM:.=64.%" set "prog=%_path%\%L_ITEM:.=64.%"
) else (
if exist "%_path%\%L_ITEM:.=32.%" set "prog=%_path%\%L_ITEM:.=32.%"
)
if not exist "%prog%" goto ErrorProgramNotFound
rem Run
popd && pushd "%_path%"
if defined L__CLI goto LaunchExecutableCLI
if defined L_ELEV (
goto LaunchExecutableElev
) else (
goto LaunchExecutableUser
)
:LaunchExecutableCLI
rem Prep
set "con_args=-new_console:n"
if defined DEBUG (set "con_args=%con_args% -new_console:c")
if defined L_ELEV (set "con_args=%con_args% -new_console:a")
rem Run
start "" "%CON%" -run "%prog%" %L_ARGS% %con_args% || goto ErrorUnknown
goto Exit
:LaunchExecutableElev
rem Prep
call :DeQuote prog
call :DeQuote L_ARGS
rem Create VB script
mkdir "%bin%\tmp" 2>nul
echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs"
echo UAC.ShellExecute "%prog%", "%L_ARGS%", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
rem Run
"%systemroot%\System32\cscript.exe" //nologo "%bin%\tmp\Elevate.vbs" || goto ErrorUnknown
goto Exit
:LaunchExecutableUser
rem Run
start "" "%prog%" %L_ARGS% || goto ErrorUnknown
goto Exit
:LaunchFolder
rem Prep
call :ExtractOrFindPath || goto ErrorProgramNotFound
rem Run
start "" "explorer.exe" "%_path%" || goto ErrorUnknown
goto Exit
:LaunchOffice
call "%bin%\Scripts\init_client_dir.cmd" /Office
set "_odt=False"
if %L_PATH% equ 2016 (set "_odt=True")
if %L_PATH% equ 2019 (set "_odt=True")
if "%_odt%" == "True" (
goto LaunchOfficeODT
) else (
goto LaunchOfficeSetup
)
:LaunchOfficeODT
rem Prep
set "args=-aoa -bso0 -bse0 -bsp0 -p%ARCHIVE_PASSWORD%"
set "config=%L_ITEM%"
set "dest=%client_dir%\Office\ODT"
set "odt_exe=setup.exe"
set "source=%cbin%\_Office.7z"
rem Extract
if not exist "%source%" (goto ErrorODTSourceNotFound)
"%SEVEN_ZIP%" e "%source%" %args% -o"%dest%" %odt_exe% %config% || exit /b 1
"%systemroot%\System32\ping.exe" -n 2 127.0.0.1>nul
rem Verify
if not exist "%dest%\setup.exe" (goto ErrorODTSourceNotFound)
if not exist "%dest%\%config%" (goto ErrorODTSourceNotFound)
pushd "%dest%"
rem Run
rem # The line below jumps to ErrorUnknown even when it runs correctly??
rem start "" "setup.exe" /configure %L_ITEM% || popd & goto ErrorUnknown
rem # Going to assume it extracted correctly and blindly start setup.exe
start "" "setup.exe" /configure %config%
popd
goto Exit
:LaunchOfficeSetup
rem Prep
set "fastcopy_args=/cmd=diff /no_ui /auto_close"
set "product=%L_PATH%\%L_ITEM%"
set "product_name=%L_ITEM%"
call :GetBasename product_name || goto ErrorBasename
set "source=\\%OFFICE_SERVER_IP%\Office\%product%"
set "dest=%client_dir%\Office"
rem Verify
if not exist "%source%" (goto ErrorOfficeSourceNotFound)
rem Copy
echo Copying setup file(s) for %product_name%...
start "" /wait "%FASTCOPY%" %fastcopy_args% "%source%" /to="%dest%\"
rem Run
if exist "%dest%\%product_name%\setup.exe" (
start "" "%dest%\%product_name%\setup.exe" || goto ErrorUnknown
) else if "%product_name:~-3,3%" == "exe" (
start "" "%dest%\%product_name%" || goto ErrorUnknown
) else if "%product_name:~-3,3%" == "msi" (
start "" "%dest%\%product_name%" || goto ErrorUnknown
) else (
rem Office source not supported by this script
goto ErrorOfficeUnsupported
)
goto Exit
:LaunchPSScript
rem Prep
call :ExtractOrFindPath || goto ErrorProgramNotFound
set "script=%_path%\%L_ITEM%"
set "ps_args=-ExecutionPolicy Bypass -NoProfile"
rem Verify
if not exist "%script%" goto ErrorScriptNotFound
rem Run
popd && pushd "%_path%"
if defined L_ELEV (
goto LaunchPSScriptElev
) else (
goto LaunchPSScriptUser
)
:LaunchPSScriptElev
rem Prep
call :DeQuote script
rem Create VB script
mkdir "%bin%\tmp" 2>nul
echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs"
if defined L_NCMD (
rem use Powershell's window instead of %CON%
echo UAC.ShellExecute "%POWERSHELL%", "%ps_args% -File "%script%"", "", "runas", 3 >> "%bin%\tmp\Elevate.vbs"
) else (
echo UAC.ShellExecute "%CON%", "-run %POWERSHELL% %ps_args% -File "^"%script%^"" -new_console:n", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
)
rem Run
"%systemroot%\System32\cscript.exe" //nologo "%bin%\tmp\Elevate.vbs" || goto ErrorUnknown
goto Exit
:LaunchPSScriptUser
rem Run
if defined L_NCMD (
start "" "%POWERSHELL%" %ps_args% -File "%script%" || goto ErrorUnknown
) else (
start "" "%CON%" -run "%POWERSHELL%" %ps_args% -File "%script%" -new_console:n || goto ErrorUnknown
)
goto Exit
:LaunchPyScript
rem Prep
call :ExtractOrFindPath || goto ErrorProgramNotFound
set "script=%_path%\%L_ITEM%"
rem Verify
"%PYTHON%" --version >nul || goto ErrorPythonUnsupported
if not exist "%script%" goto ErrorScriptNotFound
rem Run
if defined L_ELEV (
goto LaunchPyScriptElev
) else (
goto LaunchPyScriptUser
)
:LaunchPyScriptElev
rem Prep
call :DeQuote script
rem Create VB script
mkdir "%bin%\tmp" 2>nul
echo Set UAC = CreateObject^("Shell.Application"^) > "%bin%\tmp\Elevate.vbs"
if defined L_NCMD (
echo UAC.ShellExecute "%PYTHON%", """%script%"" %L_ARGS%", "", "runas", 3 >> "%bin%\tmp\Elevate.vbs"
) else (
echo UAC.ShellExecute "%CON%", "-run ""%PYTHON%"" ""%script%"" %L_ARGS% -new_console:n", "", "runas", 1 >> "%bin%\tmp\Elevate.vbs"
)
rem Run
"%systemroot%\System32\cscript.exe" //nologo "%bin%\tmp\Elevate.vbs" || goto ErrorUnknown
goto Exit
:LaunchPyScriptUser
if defined L_NCMD (
start "" "%PYTHON%" "%script%" %L_ARGS% || goto ErrorUnknown
) else (
start "" "%CON%" -run "%PYTHON%" "%script%" %L_ARGS% -new_console:n || goto ErrorUnknown
)
goto Exit
:LaunchQuickBooksSetup
rem Prep
call "%bin%\Scripts\init_client_dir.cmd" /QuickBooks
set "fastcopy_args=/cmd=diff /no_ui /auto_close"
set "product=%L_PATH%\%L_ITEM%"
set "product_name=%L_ITEM%"
call :GetBasename product_name || goto ErrorBasename
set "source=\\%QUICKBOOKS_SERVER_IP%\QuickBooks\%product%"
set "dest=%client_dir%\QuickBooks"
rem Verify
if not exist "%source%" (goto ErrorQuickBooksSourceNotFound)
rem Copy
echo Copying setup file(s) for %L_ITEM%...
start "" /wait "%FASTCOPY%" %fastcopy_args% "%source%" /to="%dest%\"
rem Run
if exist "%dest%\%product_name%\Setup.exe" (
pushd "%dest%\%product_name%"
start "" "%dest%\%product_name%\Setup.exe" || goto ErrorUnknown
popd
) else (
rem QuickBooks source not supported by this script
goto ErrorQuickBooksUnsupported
)
goto Exit
:Usage
echo.
echo.Usage (via defined variables):
echo. L_TYPE L_PATH L_ITEM L_ARGS
echo. Executable Working Dir Program Args [L_7ZIP] [L_ELEV] [L__CLI]
echo. Folder Folder '.' [L_7ZIP]
echo. Office Year Product [L_7ZIP]
echo. PSScript Scripts Script [L_7ZIP] [L_ELEV] [L_NCMD]
echo. PyScript Scripts Script Args [L_7ZIP] [L_ELEV] [L_NCMD]
echo. QuickBooks Year Product [L_7ZIP]
echo.
echo.L_7ZIP: Extra arguments for 7-Zip (in the :ExtractCBin label)
echo.L_ELEV: Elevate to run as Admin
echo.L_NCMD: Do not run script inside ConEmu (i.e. use the native window)
echo.L__CLI: Run executable in ConEmu
echo.
goto Abort
:: Functions ::
:DeQuote
rem Code taken from http://ss64.com/nt/syntax-dequote.html
if not defined %1 (@exit /b 1)
for /f "delims=" %%a in ('echo %%%1%%') do set %1=%%~a
@exit /b 0
:ExtractCBin
rem Extract %cbin% archive into %bin%
echo Extracting "%L_PATH%"...
set "source=%cbin%\%L_PATH%.7z"
set "dest=%bin%\%L_PATH%"
set "args=-aos -bso0 -bse0 -bsp0 -p%ARCHIVE_PASSWORD%"
if defined DEBUG (set "args=-aos -p%ARCHIVE_PASSWORD%")
"%SEVEN_ZIP%" x "%source%" %args% -o"%dest%" %L_7ZIP% || exit /b 1
ping.exe -n 2 127.0.0.1>nul
exit /b 0
:FindBin
rem Checks the current directory and all parents for the ".bin" folder
rem NOTE: Has not been tested for UNC paths
set bin=
pushd "%~dp0"
:FindBinInner
if exist ".bin" (goto FindBinDone)
if "%~d0\" == "%cd%" (popd & @exit /b 1)
cd ..
goto FindBinInner
:FindBinDone
set "bin=%cd%\.bin"
set "cbin=%cd%\.cbin"
popd
@exit /b 0
:GetBasename
rem Loop over passed variable to remove all text left of the last '\' character
rem NOTE: This function should be called as 'call :GetBasename VarName || goto ErrorBasename' to catch variables that become empty.
for /f "delims=" %%a in ('echo %%%1%%') do (set "_tmp=%%~a")
:GetBasenameInner
set "_tmp=%_tmp:*\=%"
if not defined _tmp (@exit /b 1)
if not "%_tmp%" == "%_tmp:*\=%" (goto GetBasenameInner)
:GetBasenameDone
set "%1=%_tmp%"
@exit /b 0
:ExtractOrFindPath
rem Test L_PATH in the following order:
rem 1: %cbin%\L_PATH.7z (which will be extracted to %bin%\L_PATH)
rem 2: %bin%\L_PATH
rem 3. %L_PATH% (i.e. treat L_PATH as an absolute path)
rem NOTE: This function should be called as 'call :ExtractOrFindPath || goto ErrorProgramNotFound' to catch invalid paths.
set _path=
if exist "%cbin%\%L_PATH%.7z" (
call :ExtractCBin
) else if exist "%cbin%\%L_PATH%\%L_ITEM:~0,-4%.7z" (
call :ExtractCBin
)
if exist "%bin%\%L_PATH%" (set "_path=%bin%\%L_PATH%")
if not defined _path (set "_path=%L_PATH%")
rem Raise error if path is still not available
if not exist "%_path%" (exit /b 1)
exit /b 0
:: Errors ::
:ErrorBasename
echo.
echo ERROR: GetBasename resulted in an empty variable.
goto Abort
:ErrorNoBin
echo.
echo ERROR: ".bin" folder not found.
goto Abort
:ErrorODTSourceNotFound
echo.
echo ERROR: Office Deployment Tool source not found.
goto Abort
:ErrorOfficeSourceNotFound
echo.
echo ERROR: Office source "%L_ITEM%" not found.
goto Abort
:ErrorOfficeUnsupported
rem Source is not an executable nor is a folder with a setup.exe file inside. Open explorer to local setup file(s) instead.
echo.
echo ERROR: Office version not supported by this script.
start "" "explorer.exe" "%client_dir%\Office"
goto Abort
:ErrorPythonUnsupported
rem The Windows installation lacks Windows update KB2999226 needed to run Python
echo.
echo ERROR: Failed to run Python, try installing Windows update KB2999226.
echo NOTE: That update is from October 2015 so this system is SEVERELY outdated
if exist "%bin%\..\Installers\Extras\Windows Updates" (
start "" "explorer.exe" "%bin%\..\Installers\Extras\Windows Updates"
)
goto Abort
:ErrorQuickBooksSourceNotFound
echo.
echo ERROR: QuickBooks source "%L_ITEM%" not found.
goto Abort
:ErrorQuickBooksUnsupported
rem Source is not an executable nor is a folder with a setup.exe file inside. Open explorer to local setup file(s) instead.
echo.
echo ERROR: QuickBooks version not supported by this script.
start "" "explorer.exe" "%client_dir%\QuickBooks"
goto Abort
:ErrorProgramNotFound
echo.
echo ERROR: Program "%prog%" not found.
goto Abort
:ErrorScriptNotFound
echo.
echo ERROR: Script "%script%" not found.
goto Abort
:ErrorUnknown
echo.
echo ERROR: Unknown error encountered.
goto Abort
:Abort
rem Handle color theme for both the native console and ConEmu
if defined ConEmuBuild (
color c4
) else (
color 4e
)
echo Aborted.
echo.
echo DETAILS: L_TYPE: %L_TYPE%
echo. L_PATH: %L_PATH%
echo. L_ITEM: %L_ITEM%
echo. L_ARGS: %L_ARGS%
echo. L_7ZIP: %L_7ZIP%
echo. L_ELEV: %L_ELEV%
echo. L_NCMD: %L_NCMD%
echo. L__CLI: %L__CLI%
echo. CON: %CON%
echo. DEBUG: %DEBUG%
echo. PYTHON: %PYTHON%
echo Press any key to exit...
pause>nul
rem reset color and reset errorlevel to 0
rem NOTE: This is done to avoid causing a ErrorLaunchCMD in the launcher.cmd
color 07
goto Exit
:: Cleanup and exit ::
:Exit
popd
endlocal
exit /b %errorlevel%

View file

@ -0,0 +1,113 @@
:: WizardKit: Launcher Script ::
::
:: This script works by setting env variables and then calling Launch.cmd
:: which inherits the variables. This bypasses batch file argument parsing
:: which is awful.
@echo off
:Init
setlocal EnableDelayedExpansion
title WizardKit: Launcher
call :CheckFlags %*
call :FindBin
call :SetTitle Launcher
:Optional
:: This section is for any work that needs done before launching L_ITEM
rem EXTRA_CODE
:DefineLaunch
:: See %bin%\Scripts\Launch.cmd for details under :Usage label
set L_TYPE=
set L_PATH=
set L_ITEM=
set L_ARGS=
set L__CLI=
set L_7ZIP=
set L_ELEV=
set L_NCMD=
:::::::::::::::::::::::::::::::::::::::::::
:: Do not edit anything below this line! ::
:::::::::::::::::::::::::::::::::::::::::::
:LaunchPrep
rem Verifies the environment before launching item
if not defined bin (goto ErrorNoBin)
if not exist "%bin%\Scripts\Launch.cmd" (goto ErrorLaunchCMDMissing)
:Launch
rem Calls the Launch.cmd script using the variables defined above
call "%bin%\Scripts\Launch.cmd" || goto ErrorLaunchCMD
goto Exit
:: Functions ::
:CheckFlags
rem Loops through all arguments to check for accepted flags
set DEBUG=
for %%f in (%*) do (
if /i "%%f" == "/DEBUG" (@echo on & set "DEBUG=/DEBUG")
)
@exit /b 0
:FindBin
rem Checks the current directory and all parents for the ".bin" folder
rem NOTE: Has not been tested for UNC paths
set bin=
pushd "%~dp0"
:FindBinInner
if exist ".bin" (goto FindBinDone)
if "%~d0\" == "%cd%" (popd & @exit /b 1)
cd ..
goto FindBinInner
:FindBinDone
set "bin=%cd%\.bin"
set "cbin=%cd%\.cbin"
popd
@exit /b 0
:SetTitle
rem Sets title using KIT_NAME_FULL from wk\cfg\main.py
set "SETTINGS=%bin%\Scripts\wk\cfg\main.py"
for /f "tokens=* usebackq" %%f in (`findstr KIT_NAME_FULL "%SETTINGS%"`) do (
set "_v=%%f"
set "_v=!_v:*'=!"
set "KIT_NAME_FULL=!_v:~0,-1!"
)
set "window_title=%*"
if not defined window_title set "window_title=Launcher"
set "window_title=%KIT_NAME_FULL%: %window_title%"
title %window_title%
@exit /b 0
:: Errors ::
:ErrorLaunchCMD
echo.
echo ERROR: Launch.cmd did not run correctly. Try using the /DEBUG flag?
goto Abort
:ErrorLaunchCMDMissing
echo.
echo ERROR: Launch.cmd script not found.
goto Abort
:ErrorNoBin
echo.
echo ERROR: ".bin" folder not found.
goto Abort
:Abort
color 4e
echo Aborted.
echo.
echo Press any key to exit...
pause>nul
color
rem Set errorlevel to 1 by calling color incorrectly
color 00
goto Exit
:: Cleanup and exit ::
:Exit
endlocal
exit /b %errorlevel%

2
scripts/README.md Normal file
View file

@ -0,0 +1,2 @@
# WizardKit: Scripts #

View file

@ -1,13 +1,13 @@
#!/bin/bash
#
## HW diagnostics - Prime95
## WizardKit: Apple fan speed tool
SMCPATH="/sys/devices/platform/applesmc.768"
SET_MAX="True"
function usage {
echo "Usage: $0 auto|max"
echo " e.g. $0 max"
echo "Usage: $(basename "$0") auto|max"
echo " e.g. $(basename "$0") max"
}
# Set mode

100
scripts/auto_repairs.py Normal file
View file

@ -0,0 +1,100 @@
"""WizardKit: Auto Repair Tool"""
# vim: sts=2 sw=2 ts=2
from typing import Any
import wk
# Classes
REBOOT_STR = wk.ui.ansi.color_string('Reboot', 'YELLOW')
class MenuEntry():
"""Simple class to allow cleaner code below."""
def __init__(
self,
name: str,
function: str | None = None,
selected: bool = True,
**kwargs):
self.name: str = name
self.details: dict[str, Any] = {
'Function': function,
'Selected': selected,
**kwargs,
}
# STATIC VARIABLES
BASE_MENUS = {
'Groups': {
'Backup Settings': (
MenuEntry('Enable RegBack', 'auto_enable_regback'),
MenuEntry('Enable System Restore', 'auto_system_restore_enable'),
MenuEntry('Set System Restore Size', 'auto_system_restore_set_size'),
MenuEntry('Create System Restore', 'auto_system_restore_create'),
MenuEntry('Backup Browsers', 'auto_backup_browser_profiles'),
MenuEntry('Backup Power Plans', 'auto_backup_power_plans'),
MenuEntry('Reset Power Plans', 'auto_reset_power_plans'),
MenuEntry('Set Custom Power Plan', 'auto_set_custom_power_plan'),
MenuEntry('Backup Registry', 'auto_backup_registry'),
),
'Windows Repairs': (
MenuEntry('Disable Windows Updates', 'auto_windows_updates_disable'),
MenuEntry('Reset Windows Updates', 'auto_windows_updates_reset'),
MenuEntry(REBOOT_STR, 'auto_reboot'),
MenuEntry('CHKDSK', 'auto_chkdsk'),
MenuEntry('DISM RestoreHealth', 'auto_dism'),
MenuEntry('SFC Scan', 'auto_sfc'),
MenuEntry('Clear Proxy Settings', 'auto_reset_proxy'),
MenuEntry('Disable Pending Renames', 'auto_disable_pending_renames'),
MenuEntry('Registry Repairs', 'auto_repair_registry'),
MenuEntry('Reset UAC', 'auto_restore_uac_defaults'),
MenuEntry('Reset Windows Policies', 'auto_reset_windows_policies'),
),
'Malware Cleanup': (
MenuEntry('BleachBit', 'auto_bleachbit'),
MenuEntry('HitmanPro', 'auto_hitmanpro'),
MenuEntry('KVRT', 'auto_kvrt'),
MenuEntry('Windows Defender', 'auto_microsoft_defender'),
MenuEntry('Remove Custom Power Plan', 'auto_remove_power_plan'),
MenuEntry(REBOOT_STR, 'auto_reboot'),
),
'Manual Steps': (
MenuEntry('AdwCleaner', 'auto_adwcleaner'),
MenuEntry('Bulk Crap Uninstaller', 'auto_bcuninstaller'),
MenuEntry('Enable Windows Updates', 'auto_windows_updates_enable'),
),
},
'Options': (
MenuEntry('Kill Explorer', selected=False),
MenuEntry('Run AVRemover (once)'),
MenuEntry('Run RKill'),
MenuEntry('Sync Clock'),
MenuEntry('Use Autologon', selected=False),
),
'Actions': (
MenuEntry('Load Preset'),
MenuEntry('Options'),
MenuEntry('Start', Separator=True),
MenuEntry('Quit'),
),
}
PRESETS = {
'Default': { # Will be expanded at runtime using BASE_MENUS
'Options': (
'Run RKill',
'Sync Clock',
),
},
'Custom': {}, # Will remain empty at runtime
}
if __name__ == '__main__':
try:
wk.repairs.win.run_auto_repairs(BASE_MENUS, PRESETS)
except KeyboardInterrupt:
wk.ui.cli.abort()
except SystemExit:
raise
except: # noqa: E722
wk.ui.cli.major_exception()

Some files were not shown because too many files have changed in this diff Show more