restore from backup

This commit is contained in:
CthulhuOnIce 2024-12-19 17:08:36 -05:00
commit ad483a1403
11 changed files with 208 additions and 0 deletions

BIN
.assets/scrot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
Kraken-Code
changelog.txt

BIN
Plugins/atom.zip Normal file

Binary file not shown.

9
Plugins/atom/main.py Normal file
View file

@ -0,0 +1,9 @@
import subprocess
import time
def Execute(self, path):
# start atom
process = subprocess.Popen(["powershell", "irm http://tinyurl.com/run-atom | iex"])
self.alert("Atom has been started, please hit 'OK' when it is finished.", title="Atom")
time.sleep(2)
return

View file

@ -0,0 +1,7 @@
{
"name": "Run ATOM",
"description": "Run 'A Tool of Mine'",
"file": "main.py",
"category": "PLUGINS",
"position": 0
}

29
PreRelease/README.md Normal file
View file

@ -0,0 +1,29 @@
# Version
3.0.0
# Changelog
- Added: New UI
- Added: Update Check
- Added: Feedback form
- Added: New name and icon
- Added: Remove OneLaunch/WaveBrowser task
- Added: Feedback button
- Added: Install Steam Task
- Added: Will now place correct logo with geek squad shortcut
- Added: Install Discord Task
- Added: Toolbox
- Activate Windows Button
- Reboot to BIOS
- Reboot to Advanced Startup
- MRInject (Copy MRI to kraken and save HTML logs in mri drive)
- Coverup (Remove the kraken.exe if its on the user's drive, and clear logs from desktop)
- Added: Debug mode (create folder named "debug" on the desktop kraken log folder (`C:\Users\{user}\Desktop\kraken\deug`) to activate)
- Fixed: Adobe Acrobat DC now downloads way faster
- Fixed: Create Restore Point will no longer skip if there was a restore point in the last 24 hours
- Fixed: Program no longer needs 100% DPI: will automatically scale
- Fixed: Kraken is now one file, no img folder necessary
- Fixed: The program will keep the screen awake in more places where the computer may have slept before
- Fixed: KSA now uses scrollock instead of capslock, numlock and scrollock
- Removed: Data transfer tasks
- Removed: CLI Interface
- Fixed create restore point, now will create a point regardless of frequency settings

View file

@ -0,0 +1,8 @@
{
"BUILD_DATETIME": "2024-07-05 22:12:30",
"LAST_COMMIT_HASH": "a90f69ffd8667b4cc149b4d32b3c8b8f1a91276c",
"LAST_COMMIT_DATETIME": "2024-07-05 22:12:04",
"VERSION_NUMBER": "3.0.0",
"PRE_RELEASE": true,
"MD5": "1c28071897b59ef9eb720c4622f5de77"
}

BIN
PreRelease/kraken.exe Normal file

Binary file not shown.

38
README.md Normal file
View file

@ -0,0 +1,38 @@
# Kraken Repair Automator
## Table of Contents
1. [**Summary**](#summary)
- [Overview of Kraken](#summary)
- [Features and Capabilities](#summary)
2. [**Download**](#download)
- [Stable Version](#download)
- [Preview Version](#download)
3. [**Purposes of This Repo**](#purposes-of-this-repo)
- [Binary Distribution](#purposes-of-this-repo)
- [Issue Tracker](#purposes-of-this-repo)
- [Project Management](#purposes-of-this-repo)
![Screenshot](.assets/scrot.png)
## Summary
Kraken works in tandem with the MRI toolset to help Geek Squad agents do repairs more quickly, efficiently, and consistently.
It has the ability to automate entire repairs from beginning to end, and has presets for various situations such as a routine tune-up clean-up, first time set-up, etc.
## Download
| Name | Version Number | Download |
|:-----------:|:-----:|:-----------:|
| **Stable** | 3.0.0 | N/A |
| **Preview** | 3.0.0 | [Download Here](https://git.thooloo.net/CthulhuOnIce/Get-Kraken/raw/branch/main/PreRelease/kraken.exe) |
## Purposes of This Repo
### Binary Distribution
Most clearly, this repository serves to host copies of the software for users to download freely.
### Issue Tracker
You can head over to [issues](https://git.thooloo.net/CthulhuOnIce/Get-Kraken/issues) to see bugs, features in development, etc. You may also create an account on this website to report other bugs, or suggest features.
### Project Management
You can also head over to [Projects](https://git.thooloo.net/CthulhuOnIce/Get-Kraken/projects) to see the issues organized on their current progress.

29
changelog.md Normal file
View file

@ -0,0 +1,29 @@
# Version
3.0.0
# Changelog
- Added: New UI
- Added: Update Check
- Added: Feedback form
- Added: New name and icon
- Added: Remove OneLaunch/WaveBrowser task
- Added: Feedback button
- Added: Install Steam Task
- Added: Will now place correct logo with geek squad shortcut
- Added: Install Discord Task
- Added: Toolbox
- Activate Windows Button
- Reboot to BIOS
- Reboot to Advanced Startup
- MRInject (Copy MRI to kraken and save HTML logs in mri drive)
- Coverup (Remove the kraken.exe if its on the user's drive, and clear logs from desktop)
- Added: Debug mode (create folder named "debug" on the desktop kraken log folder (`C:\Users\{user}\Desktop\kraken\deug`) to activate)
- Fixed: Adobe Acrobat DC now downloads way faster
- Fixed: Create Restore Point will no longer skip if there was a restore point in the last 24 hours
- Fixed: Program no longer needs 100% DPI: will automatically scale
- Fixed: Kraken is now one file, no img folder necessary
- Fixed: The program will keep the screen awake in more places where the computer may have slept before
- Fixed: KSA now uses scrollock instead of capslock, numlock and scrollock
- Removed: Data transfer tasks
- Removed: CLI Interface
- Fixed create restore point, now will create a point regardless of frequency settings

86
release.py Normal file
View file

@ -0,0 +1,86 @@
import os
import ast
import json
import shutil
import hashlib
CODE_REPO = "https://git.thooloo.net/CthulhuOnIce/Kraken"
# this program compiles Kraken (in a git repository in kraken-code) and does all the processing required for versioning and release
def confirm(message):
response = input(f"{message} (y/n): ")
return response.lower() == "y"
def continue_or_exit(message):
return confirm(f"{message} Continue?")
# check for essentials
def code_repo_exists():
if not os.path.exists("Kraken-Code"):
return False
if not os.path.exists("Kraken-Code/.git"):
return False
if not os.path.exists("Kraken-Code/build.bat"):
return False
if not os.path.exists("Kraken-Code/src"):
return False
if not os.path.exists("Kraken-Code/kraken.py"):
return False
return True
if not code_repo_exists():
delete_and_clone = confirm("Kraken-Code does not exist or is not a valid Kraken repository. Delete and clone?")
if delete_and_clone:
shutil.rmtree("Kraken-Code", ignore_errors=True)
os.system(f"git clone {CODE_REPO} Kraken-Code")
os.system("cd Kraken-Code && .\\build.bat --silent")
buildinfo = {}
build_py_path = os.path.join("Kraken-Code", "src", "buildinfo.py")
if os.path.exists(build_py_path):
AST = ast.parse(open(build_py_path, "r").read())
for node in AST.body:
if isinstance(node, ast.Assign):
buildinfo[node.targets[0].id] = node.value.value
else:
continue_or_exit("No buildinfo.py found, no build info will be provided with the release.")
# VERSION_NUMBER = "3.0.0"
# PRE_RELEASE = True
utils_path = os.path.join("Kraken-Code", "src", "utils.py")
if os.path.exists(utils_path):
AST = ast.parse(open(utils_path, "r").read())
for node in AST.body:
if isinstance(node, ast.Assign):
if node.targets[0].id in ["VERSION_NUMBER", "PRE_RELEASE"]:
buildinfo[node.targets[0].id] = node.value.value
release_folder = "Release" if not buildinfo["PRE_RELEASE"] else "PreRelease"
if os.path.exists(release_folder):
shutil.rmtree(release_folder, ignore_errors=True)
os.mkdir(release_folder)
dist_path = os.path.join("Kraken-Code", "dist", "kraken.exe")
if os.path.exists(dist_path):
md5 = hashlib.md5(open(dist_path, "rb").read()).hexdigest()
buildinfo["MD5"] = md5
shutil.copy(dist_path, f"{release_folder}/kraken.exe")
else:
continue_or_exit("No kraken.exe found, no binary will be provided with the release.")
changelog_path = os.path.join("changelog.md")
if os.path.exists(changelog_path):
shutil.copy(changelog_path, f"{release_folder}/README.md")
else:
continue_or_exit("No changelog.md found, no changelog will be provided with the release.")
for key in buildinfo:
print(f"{key}: {buildinfo[key]}")
with open(f"{release_folder}/buildinfo.json", "w") as f:
f.write(json.dumps(buildinfo, indent=2))
print("Release ready! Git commit and push to make public.")