diff --git a/blend b/blend
index bc50db5..98335d7 100755
--- a/blend
+++ b/blend
@@ -19,6 +19,7 @@
import os
import sys
+import glob
import time
import shutil
import socket
@@ -86,12 +87,12 @@ def error(err):
distro_map = {
- 'arch-linux': 'docker.io/library/archlinux',
+ 'arch-linux': 'quay.io/toolbx/arch-toolbox:latest',
'debian': 'quay.io/toolbx-images/debian-toolbox:testing',
- 'fedora-39': 'registry.fedoraproject.org/fedora-toolbox:39',
+ 'fedora-42': 'quay.io/fedora/fedora-toolbox:42',
'centos': 'quay.io/toolbx-images/centos-toolbox:latest',
'ubuntu-22.04': 'quay.io/toolbx/ubuntu-toolbox:22.04',
- 'ubuntu-24.04-lts': 'quay.io/toolbx/ubuntu-toolbox:24.04',
+ 'ubuntu-24.04': 'quay.io/toolbx/ubuntu-toolbox:24.04',
}
default_distro = 'arch-linux'
@@ -102,7 +103,7 @@ def get_distro():
return distro_map[args.distro]
except:
error(f"{args.distro} isn't supported by blend.")
- exit(1)
+ exit()
def list_containers():
@@ -128,7 +129,7 @@ def check_container(name):
def check_container_status(name):
- if os.environ.get('SUDO_USER'):
+ if not os.environ.get('SUDO_USER'):
return host_get_output("podman inspect --type container " + name + " --format \"{{.State.Status}}\"")
else:
return host_get_output(f"sudo -u {os.environ.get('SUDO_USER')} podman inspect --type container " + name + " --format \"{{.State.Status}}\"")
@@ -142,6 +143,7 @@ def core_start_container(name, new_container=False):
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
start_time = time.time() - 1000 # workaround
+ time.sleep(1)
if check_container_status(name) != 'running':
print('')
error('the entry point failed to run; try again later')
@@ -167,8 +169,8 @@ def core_create_container():
info(f'creating container {name}, using {distro}')
if check_container(name):
- error(f'container {name} already exists')
- exit(1)
+ error(f'container {name} already exists')
+ exit(1)
podman_command = []
@@ -247,6 +249,9 @@ def core_run_container(cmd):
def core_install_pkg(pkg):
+ if args.distro == 'arch':
+ args.distro = 'arch-linux'
+
if args.distro.startswith('fedora-'):
if args.noconfirm == True:
core_run_container(f'sudo dnf -y install {pkg}')
@@ -273,6 +278,9 @@ def core_install_pkg(pkg):
def core_remove_pkg(pkg):
+ if args.distro == 'arch':
+ args.distro = 'arch-linux'
+
if args.distro.startswith('fedora-'):
if args.noconfirm == True:
core_run_container(f'sudo dnf -y remove {pkg}')
@@ -292,6 +300,9 @@ def core_remove_pkg(pkg):
def core_search_pkg(pkg):
+ if args.distro == 'arch':
+ args.distro = 'arch-linux'
+
if args.distro.startswith('fedora-'):
core_run_container(f'dnf search {pkg}')
elif args.distro == 'arch-linux':
@@ -303,6 +314,9 @@ def core_search_pkg(pkg):
def core_show_pkg(pkg):
+ if args.distro == 'arch':
+ args.distro = 'arch-linux'
+
if args.distro.startswith('fedora-'):
core_run_container(f'dnf info {pkg}')
elif args.distro == 'arch-linux':
@@ -357,6 +371,9 @@ def show_blend():
def sync_blends():
+ if args.distro == 'arch':
+ args.distro = 'arch-linux'
+
if args.distro.startswith('fedora-'):
core_run_container(f'dnf makecache')
elif args.distro == 'arch-linux':
@@ -366,6 +383,9 @@ def sync_blends():
def update_blends():
+ if args.distro == 'arch':
+ args.distro = 'arch-linux'
+
if args.distro.startswith('fedora-'):
if args.noconfirm == True:
core_run_container(f'sudo dnf -y upgrade')
@@ -427,6 +447,7 @@ def enter_container():
def create_container():
for container in args.pkg:
+ container = 'ubuntu-24.04' if container == 'ubuntu-24.04-lts' else container
args.container_name = container
if container in distro_map.keys() and distro_input == None:
args.distro = container
@@ -442,10 +463,12 @@ def remove_container():
stdout=subprocess.DEVNULL)
for bin in os.listdir(os.path.expanduser('~/.local/bin/blend_bin')):
if bin.endswith(f'.{container}'):
- os.remove(os.path.join(os.path.expanduser('~/.local/bin/blend_bin'), bin))
+ os.remove(os.path.join(os.path.expanduser(
+ '~/.local/bin/blend_bin'), bin))
for app in os.listdir(os.path.expanduser('~/.local/share/applications')):
if app.startswith(f'blend;{container};'):
- os.remove(os.path.join(os.path.expanduser('~/.local/share/applications'), app))
+ os.remove(os.path.join(os.path.expanduser(
+ '~/.local/share/applications'), app))
def start_containers():
diff --git a/blend-settings/main.js b/blend-settings/main.js
index e4eac38..aeda78f 100644
--- a/blend-settings/main.js
+++ b/blend-settings/main.js
@@ -160,10 +160,15 @@ function loadTerminalWindow(title, cmd) {
if (!terminalWindow.isDestroyed()) {
terminalWindow.webContents.send("terminal.reset")
terminalWindow.hide()
- if (title.startsWith('Creating container: ')) {
- mainWindow.webContents.send("container-created")
- } else if (title.startsWith('Package installation')) {
- packageWindow.webContents.send("installation-complete")
+ try {
+ if (title.startsWith('Creating container: ')) {
+ mainWindow.webContents.send("container-created")
+ } else if (title.startsWith('Package installation')) {
+ packageWindow.webContents.send("installation-complete")
+ }
+ } catch (err) {
+ console.log(err)
+ app.quit()
}
}
})
@@ -178,10 +183,8 @@ function loadTerminalWindow(title, cmd) {
app.whenReady().then(() => {
app.allowRendererProcessReuse = false
- if (process.argv.length > 2) {
- if (process.argv[2] == 'package') {
- createPackageWindow()
- }
+ if (process.argv.includes('package')) {
+ createPackageWindow()
} else {
createWindow()
}
@@ -196,4 +199,4 @@ app.whenReady().then(() => {
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
-})
\ No newline at end of file
+})
diff --git a/blend-settings/src/index.html b/blend-settings/src/index.html
index d66f49c..1ef4cc7 100644
--- a/blend-settings/src/index.html
+++ b/blend-settings/src/index.html
@@ -18,7 +18,7 @@
Containers
-
+
@@ -43,6 +43,14 @@
if (fs.existsSync('/usr/bin/waydroid')) {
document.getElementById('android-button').classList.remove('d-none')
+ } else {
+ document.getElementById('android-button').remove()
+ }
+
+ if (fs.existsSync('/usr/bin/akshara')) {
+ document.getElementById('system-button').classList.remove('d-none')
+ } else {
+ document.getElementById('system-button').remove()
}
function page(page) {
diff --git a/blend-settings/src/package-installer.html b/blend-settings/src/package-installer.html
index a20640b..a2cb791 100644
--- a/blend-settings/src/package-installer.html
+++ b/blend-settings/src/package-installer.html
@@ -88,7 +88,7 @@