Trios image writer

Tiw (TRIOS image writer)
Author: @Filip
Simple dd wrapper. Uses zenity for GUI dialogs and pv for progress.

Deb za instalaciju:
http://mirror.org.rs/tiw/trios-image-writer_0.1.1_all.deb
tiw1.png tiw2.png tiw3.png tiw4.png tiw5.png

@Dragan

0.1.1 je stara i u ređim slučajevima bagovita verzija ( ne izlazi uvek kako treba, mada je potpuno bezbedna po sistem/ISO/USB… ).
Značajno unapređen TIW ( md5sum/sha* verifikacija, sigurnija detekcija USB uređaja, YAD interfejs, CLI verzija, log, detekcija lsblk verzije itd ) je u testing grani @git.
Files | testing | TRIOS Linux / trios-image-writer | GitLab

Ima još par kozmetičkih sitnica da se srede, pa ću prebaciti u master, no ako hoćeš možeš i odmah da izbildaš/dodaš u repo. Samo treba i YAD da ide pride:
/debian: TRIOS Mia backports / yad | GitLab
source: http://netcologne.dl.sourceforge.net/project/yad-dialog/yad-0.31.1.tar.xz

Ok, kada središ sve, prebaci u master, pa ćemo onda u repo…nije ništa hitno :slight_smile:

@all
Inače, @Filip je autor TIW…zaboravih da napomenem u inicijalnoj poruci, pa evo ovako (se) ispravljam :slight_smile:

Bravo Ćofi nisam znao za ovo, u čemu je pisan kod? Deluje sasvim OK još kada dođe GUI…

Novija verzija:
Index of /tiw

Yad sam spakovao sa najnovijim sorsom (0.31.3), radi lepo, isprobano na metalu sa trios-uefi-test3 iso, usb detekcija je ok…

Screenshot - 11012015 - 11:53:49 PM.png Screenshot - 11012015 - 11:54:09 PM.png Screenshot - 11012015 - 11:54:32 PM.png Screenshot - 11012015 - 11:54:49 PM.png Screenshot - 11012015 - 11:55:15 PM.png Screenshot - 11012015 - 11:55:33 PM.png Screenshot - 11012015 - 11:59:17 PM.png Screenshot - 11022015 - 12:00:28 AM.png Screenshot - 11022015 - 12:27:17 AM.png

Čist bash + YAD (Gtk dialog/GUI za shell ). :slight_smile:

Samo napred bravo! :up:

@Filip Evo par mojih predloga.
Opcija za selekciju usb-a.

Obična lista

#!/bin/bash
dev=$(ls -l /dev/disk/by-path/*usb* | grep -v "part" | awk '{print $NF}' | awk -F "/" '{print $NF}' | sort)
USB=$(for dev in $dev; do
printf "%s\n" "/dev/`lsblk /dev/$dev -n -d -o NAME`"
printf "%s\n" "`lsblk /dev/$dev -n -d -o MODEL`"
printf "%s\n" "`lsblk /dev/$dev -n -d -o SIZE`"
done | yad --width=300 --height=200 --list --text="Pick a device" --column="dev" --column="model" --column="size")
OIFS=$IFS
IFS='|'
SELECTION=$(echo $USB | awk '{print $1}')
IFS=$OIFS
echo "Izabrali ste $SELECTION"

Radiolist

#!/bin/bash dev=$(ls -l /dev/disk/by-path/*usb* | grep -v "part" | awk '{print $NF}' | awk -F "/" '{print $NF}' | sort) USB=$(for dev in $dev; do printf "%s\n" "FALSE" printf "%s\n" "/dev/`lsblk /dev/$dev -n -d -o NAME`" printf "%s\n" "`lsblk /dev/$dev -n -d -o MODEL`" printf "%s\n" "`lsblk /dev/$dev -n -d -o SIZE`" done | yad --width=300 --height=200 --list --text="Pick a device" --radiolist --column="Pick" --column="device" --column="model" --column="size") OIFS=$IFS IFS='|' SELECTION=$(echo $USB | awk '{print $2}') IFS=$OIFS echo "Izabrali ste $SELECTION"

Cheklist (više USB Flash memorija može da se selektuje)

#!/bin/bash dev=$(ls -l /dev/disk/by-path/*usb* | grep -v "part" | awk '{print $NF}' | awk -F "/" '{print $NF}' | sort) USB=$(for dev in $dev; do printf "%s\n" "FALSE" printf "%s\n" "/dev/`lsblk /dev/$dev -n -d -o NAME`" printf "%s\n" "`lsblk /dev/$dev -n -d -o MODEL`" printf "%s\n" "`lsblk /dev/$dev -n -d -o SIZE`" done | yad --width=300 --height=200 --list --text="Pick a device" --checklist --column="pick" --column="dev" --column="model" --column="size") OIFS=$IFS IFS='|' array=() for dev in $USB; do array+=($dev); done IFS=$OIFS echo "Izabrali ste:" for usb in ${array[*]}; do echo "$usb" ; done

Dijalog za selekciju slike diska može da se ograniči samo na iso i img fajlove.
Primer:

file="$(zenity  --title='Select a disk image to write:' --file-selection --file-filter='Disk Image (iso,img) | *.iso *.ISO *.img *.IMG' --file-filter='All files | *')"
if [ $? -ne 0 ]; then
  exit
fi

@Misko_2083

:up:

Obična lista je najbolja za sad.

Checklista je takođe odlična ideja, samo će trebati dosta izmena u backend-u da bi paralelno snimanje na više USB-a radilo kako treba, i što je najbitnije, bezbedno.
Ne bih sada eksperimentisao, nek ostane za kasnije.

Usput, do jaja je što YAD poseduje “multi-progress” dialog, tako da će oba progress bar-a moći da idu u jedan prozor. :slight_smile:

Screenshot - 11032015 - 11:07:19 AM.png

#!/bin/bash

for i in {1..100}; do
   printf "1:$i\n"
   ((i+=5))
   printf "2:$i\n"
   sleep 0.2; done | yad --multi-progress --bar="Progress 1":NORM --bar="Progress 2":NORM

@Fajl filter:

:up: Dodato. :slight_smile: Add file type filtering to ISO selection dialog. (4ac1a129) | Commits | TRIOS Linux / trios-image-writer | GitLab

@lista: yad je elastičniji od zenitija. Uglavnom sam koristio zenity do sada i često sam nailazio na neka ograničenja zbog samog dizajna a i zbog nekih bagova na ubuntu.
1ESuzPs.jpg

dev=$(ls -l /dev/disk/by-path/*usb* | grep -v "part" | awk '{print $NF}' | awk -F "/" '{print $NF}' | sort)
USB=$(for dev in $dev; do printf "%s\n" "drive-removable-media-usb"
printf "%s\n" "/dev/$dev"
printf "%s\n" "`lsblk /dev/$dev -n -d -o MODEL`"
printf "%sB\n" "`lsblk /dev/$dev -n -d -o SIZE`"
done | yad --width=600 --height=400 --text="Pick a device\n\nbla,bla..." --list --column=:IMG --column=Device:TEXT --column=Model:TEXT --column=Size --buttons-layout=spread --image=drive-removable-media-usb)
OIFS=$IFS
IFS='|'
SELECTION=$(echo $USB | awk '{print $1}')
IFS=$OIFS
echo "Izabrali ste $SELECTION"

@multi-progress: dobra stvar :up:
Izgleda da radi slično kao zen
kada se pošalje string koji počinje šibengom ispisuje text po sredini progress bar-a.

for i in {1..100} do printf "1:$i\n1:#$i\n" ((i+=5)) printf "2:$i\n2:#$i\n" sleep 0.2 done | yad --multi-progress --bar="Progress 1":NORM --bar="Progress 2":NORM

Cool, nisam znao da može! :up: :up: :up:

Može da posluži ponekada. :smiley:
KrIGfl.gif

gagiD - systemD… još se i rimuje :smiley:

Govorilo se vec o tome :smiley:
Ja sam njihov covjek, a mozda je i systemD moj :smiley: :smiley:

Prebačen glavni dijalog za izbor USB-a u formu liste. Prethodni je sada alternativna varijanta koja lista sve uređaje, omogućava ručni unos i pisanje u /dev/null.
Takođe, šetanje između njih je moguće ( “List all drives” i “Go back” dugmad ).

Screenshot - 11132015 - 08:24:21 PM.png - Screenshot - 11132015 - 08:23:53 PM.png - Screenshot - 11132015 - 08:24:04 PM.png

:slight_smile:

[GTK] Device selection improvements… (609dd688) | Commits | TRIOS Linux / trios-image-writer | GitLab

Hvala još jednom @Misko_2083 za kod. :up:

Testirajte, pa ako ne bude problema da prebacim u “master” i da objavimo stabilno izdanje. :slight_smile:

EDIT:
Update:

  1. Omogućeno vraćanje nazad iz “Safety check” dijaloga.
    Vraća nazad na prethodni dijalog ( za odabir uređaja ), ili ukoliko je uređaj prosleđen kao argument, vraća na glavni dijalog za odabir.

Screenshot - 11132015 - 09:13:37 PM.png

  1. Ispravljene ( na pojedinim temama nedostajuće ) ikonice na “Ok” dugmadima u dijalozima za odabir uređaja.

  2. “Finish” dialog ulepšan ( “Done” tekst + navodnici oko ISO-a i uređaja + slička ):

Screenshot - 11132015 - 09:43:56 PM.png

Odlično Fićo :up:
Igrao sam se sa --form dijalogom pošto ima --scroll opciju. lsblk može da ima dug ispis kao u tvom slučaju
screenshot-11132015-08-24-04-pm-png.8112.jpg
Izgleda da scroll stavlja sva polja u jedan Gtk.ScrolledWindow.

yad --width=800 --height=600 --form --text="$(echo "<b>Selected image is:</b>\nISO\n")" --field="Select Device":CBE '/dev/null!' --field="Select Image":FL " " --field="$(lsblk)\n\n<b>The End</b>":LBL "" --scroll --image=drive-removable-media-usb --file-filter="Disk Image (iso,img) | *.iso *.ISO *.img *.IMG" --file-filter="All Files | *"

Ovako se može prikazati procenat dok se računa sha:

(pv -n -i 0.5 "TRIOS-Mia-RC1-Build_2015-01-08.iso" | sha512sum > /tmp/sum) 2>&1 | awk '{print $1, "\n#", $1, " %"; fflush(stdout)}' | yad --progress --auto-close --percentage=1 yad --text-info --width=800 --height=600 </tmp/sum rm -f /tmp/sum
Samo ideja… :slight_smile:

Spojena testing grana sa master-om, update-ovan /debian i README:

Merge testing branch, update debian and README.md… (ca50c2bd) | Commits | TRIOS Linux / trios-image-writer | GitLab

Nova verzija i paket: v0.5 | Tags | TRIOS Linux / trios-image-writer | GitLab

YAD takođe osvežen: New upstream release, v0.32 (06715abf) | Commits | TRIOS Mia backports / yad | GitLab
Paket: v0.32 | Tags | TRIOS Mia backports / yad | GitLab

:slight_smile:

Mini update:

  • Sada je moguće nastaviti bez unošenja checksum-a iz dialoga za isti na dialog za odabir uređaja ( do sada je praktično bio nephodan restart ).
  • Izbačen “Exiting” dialog viška pri izlasku iz checksum dialoga (Quit).

:slight_smile:

Screenshot - 12182015 - 09:02:47 PM.png

Tags · TRIOS Linux / trios-image-writer · GitLab

Definitivno najbolji USB Image Writer program! Upravo sam posetio TRIOS repo da svučem deb. i da instaliram na deepin. Inače stalno posećujem repo jer ima mnogo kul debova kojih nema nigde drugde. :smiley: @Filip Svaka čast!