```
$ git clone https://github.com/xf0r3m/immudex
$ cd immudex
- $ ./immudex-build --<amd64/i386> --<testing/stable/oldstable>
+ $ ./immudex-build --<amd64/i386> --<testing/stable/oldstable> [nazwa_obrazu] [wersja_obrazu]
```
### Zastrzeżenia i uznanie autorstwa:
--- /dev/null
+#!/bin/bash
+
+set -e
+
+if [ ! -d /boot ]; then
+ mkdir /boot;
+ apt purge linux-image* --purge -y;
+ apt install linux-image-amd64;
+fi
+
+cp -vv /etc/apt/sources.list /etc/apt/sources.list.d/atheros.list;
+sed -e 's/main/contrib non-free non-free-firmware/g' -i /etc/apt/sources.list.d/atheros.list;
+
+apt update;
+apt install firmware-atheros -y;
+rm /etc/apt/sources.list.d/atheros.list;
+apt update;
+
+apt-get autoclean;
+apt-get autoremove;
+apt-get clean;
--- /dev/null
+#!/bin/bash
+
+cd /tmp
+mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.old
+#wget https://archive.chirpmyradio.com/chirp_next/next-20240319/chirp-20240319-py3-none-any.whl
+chirpURL="https://ftp.morketsmerke.org/chirp/chirp-20240419-py3-none-any.whl"
+wget ${chirpURL};
+pip3 install $(basename $chirpURL);
+apt install -y python-wxtools
+
+wget https://ftp.morketsmerke.org/chirp/chirp.desktop -O /usr/share/applications/chirp.desktop;
+wget https://ftp.morketsmerke.org/chirp/chirp.png -O /usr/share/pixmaps/chirp.png;
--- /dev/null
+#!/bin/bash
+
+if [ $(uname -m) = "x86_64" ]; then
+ INSTALLED_KERNEL_VERSION="$(apt-cache policy linux-image-amd64 | sed -n '2p' | awk '{printf $2}')";
+ RUNNING_KERNEL_VERSION="$(uname -v | awk '{printf $5}')";
+
+ if [ ! "$INSTALLED_KERNEL_VERSION" = "$RUNNING_KERNEL_VERSION" ]; then
+ echo "You need up to date your kernel first.";
+ exit 1;
+ else
+ if $(mount > /dev/null 2>&1); then
+ mkdir /tmp/displaylink;
+ cd /tmp/displaylink;
+ wget "https://ftp.morketsmerke.org/displaylink/DisplayLink%20USB%20Graphics%20Software%20for%20Ubuntu6.0-EXE.zip";
+ unzip "DisplayLink USB Graphics Software for Ubuntu6.0-EXE.zip"
+ chmod 775 displaylink-driver-6.0.0-24.run;
+ ./displaylink-driver-6.0.0-24.run;
+ else
+ echo "Compilation requires primary system interfaces as /dev /dev/pts /proc /run and /sys";
+ exit 1;
+ fi
+ fi
+fi
sed -e 's/main/contrib non-free non-free-firmware/g' -i /etc/apt/sources.list.d/iwlwifi.list;
apt update;
-apt install firmware-iwlwifi;
+apt install firmware-iwlwifi -y;
rm /etc/apt/sources.list.d/iwlwifi.list;
apt update;
#!/bin/bash
-apt install -y qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager;
+apt install -y qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager libosinfo-bin;
+
+cp -vv ~/immudex/tools/bin/immudex-kvm /usr/local/bin;
u=$(grep '1000' /etc/passwd | cut -d ":" -f 1)
usermod -aG libvirt,libvirt-qemu $u;
+
+if [ "$DEBVER" = "stable" ]; then
+ sed -i '554i dynamic_ownership = 0' /etc/libvirt/qemu.conf;
+fi
#!/bin/bash
-#Anti-Frankenstein policy - 13.05.2024
+#Polityka antyfrankenstainowa - 13.05.2024
if [ "$DEBVER" != "testing" ]; then
#baseVersion=$(head -1 /etc/apt/sources.list | awk '{print $3}')
rm mysql-apt-config_0.8.29-1_all.deb;
else
echo "Lampstack installation is not supported for Debian testing.";
- exit 1;
fi
#!/bin/bash
set -e
-#Anti-Frankenstein policy - 13.05.2024
-#if [ "$DEBVER" = "stable" ]; then
+#Polityka antyfrankenstainowa - 13.05.2024
+if [ "$DEBVER" != "testing" ]; then
if [ "$(uname -m)" != "x86_64" ]; then
echo "Other architectures than x86_64 (amd64) is not supported by this script";
- exit 1;
- fi
+ fi
- wget https://deb.librewolf.net/pool/bookworm/ -O /tmp/index.html;
+ if [ "$DEBVER" = "stable" ]; then
+ LibreWolfRepo="https://deb.librewolf.net/pool/bookworm/";
+ else
+ LibreWolfRepo="https://deb.librewolf.net/pool/bullseye/";
+ fi
+
+ wget $LibreWolfRepo -O /tmp/index.html;
latestLink=$(grep -o '<a href=".*">' /tmp/index.html | sed 's/>/ /g' | cut -d " " -f 2 | sed -n '2,$p' | sed 's/"/ /g' | cut -d " " -f 2 | tail -1);
filename=$(basename $latestLink);
wget https://deb.librewolf.net${latestLink} -O /tmp/${filename};
apt install -y lsb-release libgdk-pixbuf2.0-0;
dpkg -i /tmp/${filename};
-#else
-# exit 1;
-#fi
+else
+ echo "LibreWolf installation is not supported for Debian testing.";
+fi
#!/bin/bash
-
-#Anti-Frankenstein policy - 13.05.2024
-#if [ "$DEBVER" = "stable" ]; then
- wget https://github.com/hrkfdn/ncspot/releases.atom
- ver=$(grep 'title' releases.atom | sed -n '2p' | sed -e 's,<title>,,g' -e 's,</title>,,g' -e 's,^[[:space:]]*,,g')
- sourceURL="https://github.com/hrkfdn/ncspot/archive/refs/tags/v${ver}.tar.gz";
- wget $sourceURL
- tar -xf $(basename $sourceURL)
- cd ncspot-${ver}
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- sudo apt install libdbus-1-dev libncursesw5-dev libpulse-dev libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev pkg-config build-essential -y
- $HOME/.cargo/bin/cargo build --release
- mv target/release/ncspot /usr/local/bin/
- echo "0.0.0.0 apresolve.spotify.com" | sudo tee -a /etc/hosts;
- if [ $? -eq 0 ]; then
- cd ..;
- rm -rf ncspot-${ver};
- rm $(basename $sourceURL);
- rm releases.atom;
- fi
-#else
-# exit 1;
-#fi
+wget https://github.com/hrkfdn/ncspot/releases.atom
+ver=$(grep 'title' releases.atom | sed -n '2p' | sed -e 's,<title>,,g' -e 's,</title>,,g' -e 's,^[[:space:]]*,,g')
+sourceURL="https://github.com/hrkfdn/ncspot/archive/refs/tags/v${ver}.tar.gz";
+wget $sourceURL
+tar -xf $(basename $sourceURL)
+cd ncspot-${ver}
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+sudo apt install libdbus-1-dev libncursesw5-dev libpulse-dev libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev pkg-config build-essential -y
+$HOME/.cargo/bin/cargo build --release
+mv target/release/ncspot /usr/local/bin/
+echo "0.0.0.0 apresolve.spotify.com" | sudo tee -a /etc/hosts
+if [ $? -eq 0 ]; then
+ cd ..;
+ rm -rf ncspot-${ver};
+ rm $(basename $sourceURL);
+ rm releases.atom;
+fi
#!/bin/bash
-
-#Anti-Frankenstein policy - 13.05.2024
-#if [ "$DEBVER" = "stable" ]; then
- wget https://github.com/nushell/nushell/releases.atom
- ver=$(grep 'title' releases.atom | sed -n '2p' | sed -e 's,<title>,,g' -e 's,</title>,,g' -e 's,^[[:space:]]*,,g')
- sourceURL="https://github.com/nushell/nushell/archive/refs/tags/${ver}.tar.gz";
- wget $sourceURL
- tar -xf $(basename $sourceURL)
- cd nushell-${ver}
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- sudo apt install libssl-dev pkg-config build-essential -y
- $HOME/.cargo/bin/cargo build --release
- mv target/release/nu /usr/local/bin/
- if [ $? -eq 0 ]; then
+wget https://github.com/nushell/nushell/releases.atom
+ver=$(grep 'title' releases.atom | sed -n '2p' | sed -e 's,<title>,,g' -e 's,</title>,,g' -e 's,^[[:space:]]*,,g')
+sourceURL="https://github.com/nushell/nushell/archive/refs/tags/${ver}.tar.gz";
+wget $sourceURL
+tar -xf $(basename $sourceURL)
+cd nushell-${ver}
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+sudo apt install libssl-dev pkg-config build-essential -y
+$HOME/.cargo/bin/cargo build --release
+mv target/release/nu /usr/local/bin/
+if [ $? -eq 0 ]; then
cd ..;
rm -rf nushell-${ver};
rm $(basename $sourceURL);
rm releases.atom;
- fi
-#else
-# exit 1;
-#fi
+fi
--- /dev/null
+#!/bin/bash
+
+set -e
+
+if [ ! -d /boot ]; then
+ mkdir /boot;
+ apt purge linux-image* --purge -y;
+ apt install linux-image-amd64;
+fi
+
+cp -vv /etc/apt/sources.list /etc/apt/sources.list.d/realtek.list;
+sed -e 's/main/contrib non-free non-free-firmware/g' -i /etc/apt/sources.list.d/realtek.list;
+
+apt update;
+apt install firmware-realtek -y;
+rm /etc/apt/sources.list.d/realtek.list;
+apt update;
+
+apt-get autoclean;
+apt-get autoremove;
+apt-get clean;
#!/bin/bash
apt install -y --no-install-recommends virt-manager;
+apt install -y libosinfo-bin
+
+cp -vv ~/immudex/tools/bin/immudex-kvm /usr/local/bin;
+++ /dev/null
-[Desktop Entry]
-Encoding=UTF-8
-Version=0.9.4
-Type=Application
-Name=autostart-x4notes
-Comment=Uruchamianie xfce4-notes w cryptfs
-Exec=/usr/local/bin/immudex-autostart-x4notes
-OnlyShowIn=XFCE;
-RunHook=0
-StartupNotify=false
-Terminal=false
-Hidden=false
-
+++ /dev/null
-servers = (
- { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
- {
- address = "ssl.efnet.org";
- chatnet = "EFNet";
- port = "9999";
- use_tls = "yes";
- },
- {
- address = "irc.esper.net";
- chatnet = "EsperNet";
- port = "6697";
- use_tls = "yes";
- tls_verify = "yes";
- },
- {
- address = "chat.freenode.net";
- chatnet = "Freenode";
- port = "6697";
- use_tls = "yes";
- tls_verify = "yes";
- },
- {
- address = "irc.gamesurge.net";
- chatnet = "GameSurge";
- port = "6667";
- },
- {
- address = "eu.irc6.net";
- chatnet = "IRCnet";
- port = "6667";
- use_tls = "yes";
- },
- { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; },
- {
- address = "irc.ircsource.net";
- chatnet = "IRCSource";
- port = "6667";
- },
- { address = "irc.netfuze.net"; chatnet = "NetFuze"; port = "6667"; },
- {
- address = "irc.oftc.net";
- chatnet = "OFTC";
- port = "6697";
- use_tls = "yes";
- tls_verify = "yes";
- },
- {
- address = "irc.quakenet.org";
- chatnet = "QuakeNet";
- port = "6667";
- },
- {
- address = "irc.rizon.net";
- chatnet = "Rizon";
- port = "6697";
- use_tls = "yes";
- tls_verify = "yes";
- },
- { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; },
- {
- address = "irc.undernet.org";
- chatnet = "Undernet";
- port = "6667";
- },
- {
- address = "irc.morketsmerke.org";
- chatnet = "morketsmerke.org";
- port = "6697";
- use_tls = "yes";
- tls_verify = "yes";
- tls_capath = "/etc/ssl/certs";
- autoconnect = "yes";
- }
-);
-
-chatnets = {
- DALnet = {
- type = "IRC";
- max_kicks = "4";
- max_msgs = "20";
- max_whois = "30";
- };
- EFNet = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "4";
- max_whois = "1";
- };
- EsperNet = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "4";
- max_whois = "1";
- };
- Freenode = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "4";
- max_whois = "1";
- };
- GameSurge = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "1";
- max_whois = "1";
- };
- IRCnet = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "1";
- max_whois = "1";
- };
- IRCSource = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "4";
- max_whois = "1";
- };
- NetFuze = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "1";
- max_whois = "1";
- };
- OFTC = { type = "IRC"; max_kicks = "1"; max_msgs = "1"; max_whois = "1"; };
- QuakeNet = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "1";
- max_whois = "1";
- };
- Rizon = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "1";
- max_whois = "1";
- };
- SILC = { type = "SILC"; };
- Undernet = {
- type = "IRC";
- max_kicks = "1";
- max_msgs = "1";
- max_whois = "1";
- };
- "morketsmerke.net" = { type = "IRC"; };
- "morketsmerke.org" = { type = "IRC"; };
-};
-
-channels = (
- { name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; },
- { name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; },
- { name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; },
- { name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; },
- { name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; },
- { name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; },
- { name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; },
- { name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; },
- { name = "silc"; chatnet = "SILC"; autojoin = "No"; },
- {
- name = "#general";
- chatnet = "morketsmerke.net";
- autojoin = "yes";
- }
-);
-
-aliases = {
- ATAG = "WINDOW SERVER";
- ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{visible_name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
- B = "BAN";
- BACK = "AWAY";
- BANS = "BAN";
- BYE = "QUIT";
- C = "CLEAR";
- CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi";
- CHAT = "DCC CHAT";
- DATE = "TIME";
- DEHIGHLIGHT = "DEHILIGHT";
- DESCRIBE = "ACTION";
- DHL = "DEHILIGHT";
- EXEMPTLIST = "MODE $C +e";
- EXIT = "QUIT";
- GOTO = "SCROLLBACK GOTO";
- HIGHLIGHT = "HILIGHT";
- HL = "HILIGHT";
- HOST = "USERHOST";
- INVITELIST = "MODE $C +I";
- J = "JOIN";
- K = "KICK";
- KB = "KICKBAN";
- KN = "KNOCKOUT";
- LAST = "LASTLOG";
- LEAVE = "PART";
- M = "MSG";
- MUB = "UNBAN *";
- N = "NAMES";
- NMSG = "^MSG";
- P = "PART";
- Q = "QUERY";
- RESET = "SET -default";
- RUN = "SCRIPT LOAD";
- SAY = "MSG *";
- SB = "SCROLLBACK";
- SBAR = "STATUSBAR";
- SIGNOFF = "QUIT";
- SV = "MSG * Irssi $J ($V) - https://irssi.org";
- T = "TOPIC";
- UB = "UNBAN";
- UMODE = "MODE $N";
- UNSET = "SET -clear";
- W = "WHO";
- WC = "WINDOW CLOSE";
- WG = "WINDOW GOTO";
- WJOIN = "JOIN -window";
- WI = "WHOIS";
- WII = "WHOIS $0 $0";
- WL = "WINDOW LIST";
- WN = "WINDOW NEW HIDDEN";
- WQUERY = "QUERY -window";
- WW = "WHOWAS";
-};
-
-statusbar = {
-
- items = {
-
- barstart = "{sbstart}";
- barend = "{sbend}";
-
- topicbarstart = "{topicsbstart}";
- topicbarend = "{topicsbend}";
-
- time = "{sb $Z}";
- user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
-
- window = "{sb $winref:$tag/$itemname{sbmode $M}}";
- window_empty = "{sb $winref{sbservertag $tag}}";
-
- prompt = "{prompt $[.15]itemname}";
- prompt_empty = "{prompt $winname}";
-
- topic = " $topic";
- topic_empty = " Irssi v$J - https://irssi.org";
-
- lag = "{sb Lag: $0-}";
- act = "{sb Act: $0-}";
- more = "-- more --";
- };
-
- default = {
-
- window = {
-
- disabled = "no";
- type = "window";
- placement = "bottom";
- position = "1";
- visible = "active";
-
- items = {
- barstart = { priority = "100"; };
- time = { };
- user = { };
- window = { };
- window_empty = { };
- lag = { priority = "-1"; };
- act = { priority = "10"; };
- more = { priority = "-1"; alignment = "right"; };
- barend = { priority = "100"; alignment = "right"; };
- };
- };
-
- window_inact = {
-
- type = "window";
- placement = "bottom";
- position = "1";
- visible = "inactive";
-
- items = {
- barstart = { priority = "100"; };
- window = { };
- window_empty = { };
- more = { priority = "-1"; alignment = "right"; };
- barend = { priority = "100"; alignment = "right"; };
- };
- };
-
- prompt = {
-
- type = "root";
- placement = "bottom";
- position = "100";
- visible = "always";
-
- items = {
- prompt = { priority = "-1"; };
- prompt_empty = { priority = "-1"; };
- input = { priority = "10"; };
- };
- };
-
- topic = {
-
- type = "root";
- placement = "top";
- position = "1";
- visible = "always";
-
- items = {
- topicbarstart = { priority = "100"; };
- topic = { };
- topic_empty = { };
- topicbarend = { priority = "100"; alignment = "right"; };
- };
- };
- };
-};
-settings = {
- core = { real_name = "Unknown"; user_name = "xf0r3m"; nick = "xf0r3m"; };
- "fe-text" = { actlist_sort = "refnum"; };
-};
+++ /dev/null
-# When testing changes, the easiest way to reload the theme is with /RELOAD.
-# This reloads the configuration file too, so if you did any changes remember
-# to /SAVE it first. Remember also that /SAVE overwrites the theme file with
-# old data so keep backups :)
-
-# TEMPLATES:
-
-# The real text formats that irssi uses are the ones you can find with
-# /FORMAT command. Back in the old days all the colors and texts were mixed
-# up in those formats, and it was really hard to change the colors since you
-# might have had to change them in tens of different places. So, then came
-# this templating system.
-
-# Now the /FORMATs don't have any colors in them, and they also have very
-# little other styling. Most of the stuff you need to change is in this
-# theme file. If you can't change something here, you can always go back
-# to change the /FORMATs directly, they're also saved in these .theme files.
-
-# So .. the templates. They're those {blahblah} parts you see all over the
-# /FORMATs and here. Their usage is simply {name parameter1 parameter2}.
-# When irssi sees this kind of text, it goes to find "name" from abstracts
-# block below and sets "parameter1" into $0 and "parameter2" into $1 (you
-# can have more parameters of course). Templates can have subtemplates.
-# Here's a small example:
-# /FORMAT format hello {colorify {underline world}}
-# abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; }
-# When irssi expands the templates in "format", the final string would be:
-# hello %G%Uworld%U%n
-# ie. underlined bright green "world" text.
-# and why "$0-", why not "$0"? $0 would only mean the first parameter,
-# $0- means all the parameters. With {underline hello world} you'd really
-# want to underline both of the words, not just the hello (and world would
-# actually be removed entirely).
-
-# COLORS:
-
-# You can find definitions for the color format codes in docs/formats.txt.
-
-# There's one difference here though. %n format. Normally it means the
-# default color of the terminal (white mostly), but here it means the
-# "reset color back to the one it was in higher template". For example
-# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would
-# print yellow "foo" (as set with %Y) but "bar" would be green, which was
-# set at the beginning before the {foo} template. If there wasn't the %g
-# at start, the normal behaviour of %n would occur. If you _really_ want
-# to use the terminal's default color, use %N.
-
-#############################################################################
-
-# default foreground color (%N) - -1 is the "default terminal color"
-default_color = "-1";
-
-# print timestamp/servertag at the end of line, not at beginning
-info_eol = "false";
-
-# these characters are automatically replaced with specified color
-# (dark grey by default)
-replaces = { "[]=" = "%K$*%n"; };
-
-abstracts = {
- ##
- ## generic
- ##
-
- # text to insert at the beginning of each non-message line
- line_start = "%B-%n!%B-%n ";
-
- # timestamp styling, nothing by default
- timestamp = "$*";
-
- # any kind of text that needs hilighting, default is to bold
- hilight = "%_$*%_";
-
- # any kind of error message, default is bright red
- error = "%R$*%n";
-
- # channel name is printed
- channel = "%_$*%_";
-
- # nick is printed
- nick = "%_$*%_";
-
- # nick host is printed
- nickhost = "[$*]";
-
- # server name is printed
- server = "%_$*%_";
-
- # some kind of comment is printed
- comment = "[$*]";
-
- # reason for something is printed (part, quit, kick, ..)
- reason = "{comment $*}";
-
- # mode change is printed ([+o nick])
- mode = "{comment $*}";
-
- ##
- ## channel specific messages
- ##
-
- # highlighted nick/host is printed (joins)
- channick_hilight = "%C$*%n";
- chanhost_hilight = "{nickhost %c$*%n}";
-
- # nick/host is printed (parts, quits, etc.)
- channick = "%c$*%n";
- chanhost = "{nickhost $*}";
-
- # highlighted channel name is printed
- channelhilight = "%c$*%n";
-
- # ban/ban exception/invite list mask is printed
- ban = "%c$*%n";
-
- ##
- ## messages
- ##
-
- # the basic styling of how to print message, $0 = nick mode, $1 = nick
- msgnick = "%K<%n$0$1-%K>%n %|";
-
- # message from you is printed. "ownnick" specifies the styling of the
- # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
- # whole line.
-
- # Example1: You want the message text to be green:
- # ownmsgnick = "{msgnick $0 $1-}%g";
- # Example2.1: You want < and > chars to be yellow:
- # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n";
- # (you'll also have to remove <> from replaces list above)
- # Example2.2: But you still want to keep <> grey for other messages:
- # pubmsgnick = "%K{msgnick $0 $1-%K}%n";
- # pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
- # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
- # ownprivmsgnick = "%K{msgnick $*%K}%n";
- # privmsgnick = "%K{msgnick %R$*%K}%n";
-
- # $0 = nick mode, $1 = nick
- ownmsgnick = "{msgnick $0 $1-}";
- ownnick = "%_$*%n";
-
- # public message in channel, $0 = nick mode, $1 = nick
- pubmsgnick = "{msgnick $0 $1-}";
- pubnick = "%N$*%n";
-
- # public message in channel meant for me, $0 = nick mode, $1 = nick
- pubmsgmenick = "{msgnick $0 $1-}";
- menick = "%Y$*%n";
-
- # public highlighted message in channel
- # $0 = highlight color, $1 = nick mode, $2 = nick
- pubmsghinick = "{msgnick $1 $0$2-%n}";
-
- # channel name is printed with message
- msgchannel = "%K:%c$*%n";
-
- # private message, $0 = nick, $1 = host
- privmsg = "[%R$0%K(%r$1-%K)%n] ";
-
- # private message from you, $0 = "msg", $1 = target nick
- ownprivmsg = "[%r$0%K(%R$1-%K)%n] ";
-
- # own private message in query
- ownprivmsgnick = "{msgnick $*}";
- ownprivnick = "%_$*%n";
-
- # private message in query
- privmsgnick = "{msgnick %R$*%n}";
-
- ##
- ## Actions (/ME stuff)
- ##
-
- # used internally by this theme
- action_core = "%_ * $*%n";
-
- # generic one that's used by most actions
- action = "{action_core $*} ";
-
- # own action, both private/public
- ownaction = "{action $*}";
-
- # own action with target, both private/public
- ownaction_target = "{action_core $0}%K:%c$1%n ";
-
- # private action sent by others
- pvtaction = "%_ (*) $*%n ";
- pvtaction_query = "{action $*}";
-
- # public action sent by others
- pubaction = "{action $*}";
-
-
- ##
- ## other IRC events
- ##
-
- # whois
- whois = "%# $[8]0 : $1-";
-
- # notices
- ownnotice = "[%r$0%K(%R$1-%K)]%n ";
- notice = "%K-%M$*%K-%n ";
- pubnotice_channel = "%K:%m$*";
- pvtnotice_host = "%K(%m$*%K)";
- servernotice = "%g!$*%n ";
-
- # CTCPs
- ownctcp = "[%r$0%K(%R$1-%K)] ";
- ctcp = "%g$*%n";
-
- # wallops
- wallop = "%_$*%n: ";
- wallop_nick = "%n$*";
- wallop_action = "%_ * $*%n ";
-
- # netsplits
- netsplit = "%R$*%n";
- netjoin = "%C$*%n";
-
- # /names list
- names_prefix = "";
- names_nick = "[%_$0%_$1-] ";
- names_nick_op = "{names_nick $*}";
- names_nick_halfop = "{names_nick $*}";
- names_nick_voice = "{names_nick $*}";
- names_users = "[%g$*%n]";
- names_channel = "%G$*%n";
-
- # DCC
- dcc = "%g$*%n";
- dccfile = "%_$*%_";
-
- # DCC chat, own msg/action
- dccownmsg = "[%r$0%K($1-%K)%n] ";
- dccownnick = "%R$*%n";
- dccownquerynick = "%_$*%n";
- dccownaction = "{action $*}";
- dccownaction_target = "{action_core $0}%K:%c$1%n ";
-
- # DCC chat, others
- dccmsg = "[%G$1-%K(%g$0%K)%n] ";
- dccquerynick = "%G$*%n";
- dccaction = "%_ (*dcc*) $*%n %|";
-
- ##
- ## statusbar
- ##
-
- # default background for all statusbars. You can also give
- # the default foreground color for statusbar items.
- sb_background = "%4%w";
- window_border = "%4%w";
-
- # default backround for "default" statusbar group
- #sb_default_bg = "%4";
- # background for prompt / input line
- sb_prompt_bg = "%n";
- # background for info statusbar
- sb_info_bg = "%8";
- # background for topicbar (same default)
- #sb_topic_bg = "%4";
-
- # text at the beginning of statusbars. "sb" already puts a space there,
- # so we don't use anything by default.
- sbstart = "";
- # text at the end of statusbars. Use space so that it's never
- # used for anything.
- sbend = " ";
-
- topicsbstart = "{sbstart $*}";
- topicsbend = "{sbend $*}";
-
- prompt = "[$*] ";
-
- sb = " %c[%n$*%c]%n";
- sbmode = "(%c+%n$*)";
- sbaway = " (%GzZzZ%n)";
- sbservertag = ":$0 (change with ^X)";
- sbnickmode = "$0";
-
- # activity in statusbar
-
- # ',' separator
- sb_act_sep = "%c$*";
- # normal text
- sb_act_text = "%c$*";
- # public message
- sb_act_msg = "%W$*";
- # hilight
- sb_act_hilight = "%M$*";
- # hilight with specified color, $0 = color, $1 = text
- sb_act_hilight_color = "$0$1-%n";
-};
+++ /dev/null
-@define-color notes_bg_color #343434;
-@define-color theme_base_color #343434;
-@define-color theme_text_color #eeeeec;
-@define-color theme_bg_color @theme_base_color;
-@define-color theme_fg_color shade (@theme_base_color, 0.3);
-@define-color theme_selected_bg_color shade (@theme_base_color, 0.8);
-@define-color theme_selected_fg_color shade (@theme_base_color, 1.4);
-@define-color insensitive_bg_color shade (@theme_bg_color, 1.1);
-@define-color insensitive_fg_color shade (@theme_fg_color, 1.8);
-
-@define-color borders shade (@theme_base_color, 0.8);
-@define-color frame_color shade (@theme_base_color, 0.7);
-@define-color notebook_active_tab_border shade (@theme_base_color, 1.1);
-@define-color notebook_selected_tab_color shade (@theme_base_color, 0.9);
-
-* {
- border-width: 0px;
-}
-
-/* window and frame */
-window {
- /*
- background-image: linear-gradient(to bottom,
- shade (@theme_base_color, 0.8),
- shade (@theme_base_color, 0.95) 87px);
- */
-}
-
-window frame {
- padding: 1px 2px 4px 2px;
- border: 1px solid shade (@theme_base_color, 0.7);
-}
-
-/* icon buttons in window title bar */
-window widget#notes-icon-button {
- color: #eeeeec;
- background-color: transparent;
-}
-/*
-window widget#notes-icon-button:active {
- color: lighter (@theme_fg_color);
- text-shadow: 1px 1px darker (@theme_bg_color);
-}
-*/
-window widget#notes-icon-button:disabled {
- color: shade (#343434, 1.2);
-}
-window widget#notes-icon-button:hover {
- color: shade (#eeeeec, 1.4);
-}
-
-/* notebook */
-notebook > header {
- background: transparent;
-}
-notebook > header.top {
- border-bottom: 2px solid @theme_selected_bg_color;
-}
-notebook > header.bottom {
- border-top: 2px solid @theme_selected_bg_color;
-}
-notebook > header.left {
- border-right: 2px solid @theme_selected_bg_color;
-}
-notebook > header.right {
- border-left: 2px solid @theme_selected_bg_color;
-}
-
-/* notebook tab style */
-notebook > header.top tab, notebook > header.bottom tab {
- padding: 0px 4px;
-}
-notebook > header.right tab, notebook > header.left tab {
- padding: 4px 0px;
-}
-
-notebook > header tab {
- box-shadow: none;
- color: @insensitive_fg_color;
- background: transparent;
-}
-notebook > header tab:checked {
- color: shade (@theme_text_color, 0.8);
-}
-notebook > header tab.dnd {
- background: @theme_selected_bg_color;
-}
-
-notebook > header.top > tabs > tab:checked {
- box-shadow: inset 0px -3px shade (@theme_selected_bg_color, 1.3), 0px 2px 3px @theme_selected_bg_color;
-}
-notebook > header.top > tabs > tab:checked:hover {
- box-shadow: inset 0px -2px shade (@theme_selected_bg_color, 1.3), 0px 2px 3px @theme_selected_bg_color;
- background: @theme_selected_bg_color; /* NOTE: must be set before .dnd */
-}
-notebook > header.top > tabs > tab:hover {
- box-shadow: inset 0px -2px shade (@theme_selected_bg_color, 1.3);
-}
-
-notebook > header.bottom > tabs > tab:checked {
- box-shadow: inset 0px 3px shade (@theme_selected_bg_color, 1.3), 0px -2px 3px @theme_selected_bg_color;
-}
-notebook > header.bottom > tabs > tab:checked:hover {
- box-shadow: inset 0px 2px shade (@theme_selected_bg_color, 1.3), 0px -2px 3px @theme_selected_bg_color;
- background: @theme_selected_bg_color;
-}
-notebook > header.bottom > tabs > tab:hover {
- box-shadow: inset 0px 2px shade (@theme_selected_bg_color, 1.3);
-}
-
-notebook > header.left > tabs > tab:checked {
- box-shadow: inset -3px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
-}
-notebook > header.left > tabs > tab:checked:hover {
- box-shadow: inset -2px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
- background: @theme_selected_bg_color;
-}
-notebook > header.left > tabs > tab:hover {
- box-shadow: inset -2px 0px shade (@theme_selected_bg_color, 1.3);
-}
-
-notebook > header.right > tabs > tab:checked {
- box-shadow: inset 3px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
-}
-notebook > header.right > tabs > tab:checked:hover {
- box-shadow: inset 2px 0px shade (@theme_selected_bg_color, 1.3), 0px 0px 3px @theme_selected_bg_color;
- background: @theme_selected_bg_color;
-}
-notebook > header.right > tabs > tab:hover {
- box-shadow: inset 2px 0px shade (@theme_selected_bg_color, 1.3);
-}
-
-textview > text {
- color: @theme_text_color;
-
- background-image: linear-gradient(to bottom,
- shade (@theme_bg_color, 1.2),
- shade (@theme_bg_color, 1.3) 20em);
- background-size: cover;
- font-weight: bold;
-}
-
-textview > text > selection {
- color: #343434;
- background-color: #eeeeec;
-}
-
-scrollbar {
- background-color: transparent;
-}
-scrollbar slider {
- background-color: shade (@theme_bg_color, 0.55);
- min-width: 8px;
-}
-scrollbar slider:hover {
- background-color: shade (@theme_bg_color, 0.7);
- transition: 400ms;
-}
-scrollbar slider:hover:active {
- background-color: shade (@theme_bg_color, 0.55);
- transition: 200ms;
-}
-
-tooltip, tooltip * {
- margin: 0px;
- padding: 0px;
-}
-
+++ /dev/null
-[Unit]
-Description=Refresh Debian packages list
-After=network-online.target
-Wants=network-online.target
-Before=display-manager.service
-[Service]
-Type=OneShot
-ExecStart=/usr/local/sbin/immudex-packages-update
-RemainAfterExit=yes
-[Install]
-WantedBy=multi-user.target
#!/bin/bash
+RED="\e[31m";
GREEN="\e[32m";
+YELLOW="\e[33m";
ENDCOLOR="\e[0m";
set -e
*) help; exit 1;;
esac
+if [ "$3" ]; then export cname=$3; fi
+if [ "$4" ]; then export version=$4; fi
+
if [ ! -f /sbin/debootstrap ]; then
create_enviroment
fi
#Removing old immudex build directory structure:
if [ -d ${HOME}/build/immudex-${debver}/${arch} ]; then
+ #Unmounting potentialy mounted system interfaces:
+ echo "Unmount system interfaces...";
+ for i in /dev/pts /proc /run /sys /dev; do
+ if [ "$i" = "/run" ]; then
+ #number of Elements
+ if [ "$debver" = "oldstable" ]; then
+ noE=8;
+ else
+ noE=9;
+ fi
+ elif [ "$i" = "/dev" ]; then
+ noE=14;
+ else
+ noE=0;
+ fi
+ if [ $(ls ${HOME}/build/immudex-${debver}/${arch}/chroot$i | wc -w ) -gt $noE ]; then
+ sudo umount ${HOME}/build/immudex-${debver}/${arch}/chroot$i >> /dev/null 2>&1;
+ echo -e "Umount system interface: ${i} [ ${YELLOW}Unmounted${ENDCOLOR} ]";
+ else
+ echo -e "System interface: ${i} [ ${GREEN}Not mounted${ENDCOLOR} ]";
+ fi
+ done
+ echo -e "Unmount system interfaces...[ ${GREEN}OK${ENDCOLOR} ]";
echo -n "Removing old immudex build directory structure...";
sudo rm -rvf ${HOME}/build/immudex-${debver}/${arch} >> immudex_build.log 2>&1;
if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
sudo cp -vv ${HOME}/immudex/versions/base.sh ${HOME}/build/immudex-${debver}/${arch}/chroot >> immudex_build.log 2>&1;
if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
+#Mount system interfaces - required for build some addons.
+for i in /dev /dev/pts /proc /run /sys; do
+ sudo mount -B $i ${HOME}/build/immudex-${debver}/${arch}/chroot$i;
+done
+
#Executing chroot script, at least i trying:
sudo chroot ${HOME}/build/immudex-${debver}/${arch}/chroot /bin/bash /base.sh $debver;
+#Try to umount system interfaces it may fail.
+for i in /dev/pts /proc /run /sys /dev; do
+ sudo umount ${HOME}/build/immudex-${debver}/${arch}/chroot$i;
+done
+
#Removing chroot script.
echo -n "Remove chroot script...";
sudo rm -vf ${HOME}/build/immudex-${debver}/${arch}/chroot/base.sh >> immudex_build.log 2>&1;
cp -v $(ls -v ${HOME}/build/immudex-${debver}/${arch}/chroot/boot/initrd.img-* | tail -1) ${HOME}/build/immudex-${debver}/${arch}/staging/live/initrd >> immudex_build.log 2>&1;
if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
-#Setting version for this image:
-echo "-==Setting version for immudex image: $(date)==-" >> immudex_build.log;
-echo -n "Setting version for this immudex image...";
-(cd ${HOME}/immudex && git log --pretty=oneline) | head -1 | awk '{printf $1}' | tee ${HOME}/build/immudex-${debver}/${arch}/staging/live/version >> immudex_build.log 2>&1;
-echo >> immudex_build.log;
-versionShort=$(cut -c 1-7 ${HOME}/build/immudex-${debver}/${arch}/staging/live/version);
-if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
+export FILE="${HOME}/build/immudex-${debver}/${arch}/staging/live/changelog";
+export arch2=$(echo $1 | sed 's/-//g');
-#Setting compilation date for this image:
-echo "-==Setting compilaztion date for immudex image: $(date)==-" >> immudex_build.log;
-echo -n "Setting compilation date for this immudex image...";
-date | tee ${HOME}/build/immudex-${debver}/${arch}/staging/live/compilation_date >> immudex_build.log 2>&1;
+#Setting changelog file for this image:
+echo "-==Setting changelog file for this image: $(date)==-" >> immudex_build.log;
+echo -n "Setting changelog file for this image...";
+(source ${HOME}/immudex/versions/template.sh; make_changelog_file $arch2;)
if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
+eval $(grep '^COMMIT' $FILE);
+versionShort=$(echo $COMMIT | awk '{printf $1}' | cut -c 1-7);
+
#Getting and copying bootloader files
echo "-==Getting and copying bootloader files: $(date)==-" >> immudex_build.log;
echo -n "Copying bootloader files...";
-arch2=$(echo $1 | sed 's/-//g');
cp -v ${HOME}/immudex/isolinux/${arch2}/* ${HOME}/build/immudex-${debver}/${arch}/staging/isolinux >> immudex_build.log 2>&1;
cp -v ${HOME}/immudex/grub/${arch2}/* ${HOME}/build/immudex-${debver}/${arch}/staging/boot/grub >> immudex_build.log 2>&1;
if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
sudo mcopy -vi efiboot.img ${HOME}/build/immudex-${debver}/${arch}/staging/EFI/boot/bootx64.efi ::efi/boot >> ${oldcwd}/immudex_build.log 2>&1;
if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
+if [ "$cname" ] && [ "$version" ]; then
+ isofilename="immudex-${debver}${arch}_${cname}_${version}.iso";
+elif [ "$cname" ]; then
+ isofilename="immudex-${debver}${arch}_${cname}.iso";
+else
+ isofilename="immudex-${debver}${arch}_${versionShort}.iso";
+fi
+volid="$(basename $isofilename .iso)";
#Create iso image:
cd $oldcwd;
echo -n "Creating iso image...";
-xorriso as mkisofs -iso-level 3 -o "immudex-${debver}${arch}_${versionShort}.iso" -full-iso9660-filenames -volid "immudex-${debver}${arch}_${versionShort}" -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -eltorito-boot isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table --eltorito-catalog isolinux/isolinux.cat -eltorito-alt-boot -e /boot/grub/efiboot.img -no-emul-boot -isohybrid-gpt-basdat -append_partition 2 0xef ${HOME}/build/immudex-${debver}/${arch}/staging/boot/grub/efiboot.img ${HOME}/build/immudex-${debver}/${arch}/staging >> immudex_build.log 2>&1;
+xorriso as mkisofs -iso-level 3 -o "${isofilename}" -full-iso9660-filenames -volid "${volid}" -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -eltorito-boot isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table --eltorito-catalog isolinux/isolinux.cat -eltorito-alt-boot -e /boot/grub/efiboot.img -no-emul-boot -isohybrid-gpt-basdat -append_partition 2 0xef ${HOME}/build/immudex-${debver}/${arch}/staging/boot/grub/efiboot.img ${HOME}/build/immudex-${debver}/${arch}/staging >> immudex_build.log 2>&1;
if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
#!/bin/bash
-if grep -q 'trixie' /etc/os-release; then
+if grep -q 'forky' /etc/os-release; then
echo -n '-testing';
-elif grep -q 'bookworm' /etc/os-release; then
+elif grep -q 'trixie' /etc/os-release; then
echo -n '-stable';
else
echo -n '-oldstable';
--- /dev/null
+#!/bin/bash
+
+function XMLScrap() {
+ echo -n $(grep -o "<${1}>.*</${1}>" $2 \
+ | sed "s,<${1}>,," \
+ | sed "s,</${1}>,," \
+ | sed 's,&,and,g');
+}
+
+function help() {
+ echo "immudex-cdrip - bash script for collection audio tracks from Audio CD.";
+ echo "morketsmerke.org @ 2025";
+ echo;
+ echo "Usage:";
+ echo " $ immudex-cdrip --rip-n-rename";
+ echo;
+ echo "Options:";
+ echo " --rip-only - Rips audio tracks from Audio CD, without quering CDIndex";
+ echo " (MusicBrainz) database.";
+ echo;
+ echo " --get-disc-info - Getting info from CDIndex (MusicBrainz) database";
+ echo " about Audio CD without ripping.";
+ echo;
+ echo " --rip-n-rename - Rips audio tracks from Audio CD, create Artist/Album folders";
+ echo " and rename tracks according to data get CDIndex (MusicBrainz)";
+ echo " database (normal usage).";
+ echo;
+ echo "Script using CDDA2WAV tool from icedax package and libparanoia library (GNU/Linux Debian).";
+}
+
+function multipleArtistDisc() {
+
+ FILE="$1";
+ ARTIST="VA";
+ ALBUM=$(XMLScrap "Title" $FILE);
+ NUMTRACKS=$(XMLScrap "NumTracks" $FILE);
+ TRACKPATH="${ARTIST} - ${ALBUM}";
+
+ mkdir -vp "${TRACKPATH}";
+
+ i=1;
+ while [ $i -le $NUMTRACKS ]; do
+ artist=$(grep -o "<Artist>.*</Artist>" $FILE \
+ | sed -n "${i}p" \
+ | sed 's,<Artist>,,' \
+ | sed 's,</Artist>,,');
+
+ trackName=$(grep -o "<Name>.*</Name>" $FILE \
+ | sed -n "${i}p" \
+ | sed 's,<Name>,,' \
+ | sed 's,</Name>,,');
+
+ if [ $i -lt 10 ]; then
+ trackNumber="0${i}";
+ else
+ trackNumber=${i};
+ fi
+
+ audioFilename="audio_${trackNumber}.wav";
+ infFilename=$(echo $audioFilename | sed 's/wav/inf/');
+
+ mv -v $audioFilename "${TRACKPATH}/${trackNumber}. ${artist} - ${trackName}.wav";
+ rm -v ${infFilename};
+ i=$(expr $i + 1);
+ done
+
+ rm -v audio.cddb;
+ rm -v ${FILE};
+}
+
+if [ ! -x /usr/bin/cdda2wav ]; then
+ sudo apt-get install icedax cdparanoia -y;
+fi
+
+if [ "$1" ] && [ "$1" = "--rip-only" ]; then
+ cdda2wav -vall cddb=-1 speed=4 -paranoia paraopts=no-verify -B -D /dev/sr0;
+ exit 0;
+fi
+
+if [ "$1" ] && [ "$1" = "--get-disc-info" ]; then
+ cdda2wav -J -D /dev/sr0;
+ exit 0;
+fi
+
+if [ "$1" ] && [ "$1" = "--rip-n-rename" ]; then
+ cdda2wav -vall cddb=1 speed=4 -paranoia paraopts=no-verify -B -D /dev/sr0;
+
+ FILE="audio.cdindex";
+
+ if $(grep -q '<MultipleArtistCD>' $FILE); then
+ multipleArtistDisc $FILE;
+ else
+ ARTIST=$(XMLScrap "Artist" $FILE);
+ ALBUM=$(XMLScrap "Title" $FILE);
+ NUMTRACKS=$(XMLScrap "NumTracks" $FILE);
+ TRACKPATH="${ARTIST}/${ALBUM}";
+
+ mkdir -vp "${TRACKPATH}";
+
+ i=1;
+ while [ $i -le $NUMTRACKS ]; do
+ trackName=$(grep -o "<Name>.*</Name>" $FILE \
+ | sed -n "${i}p" \
+ | sed 's,<Name>,,' \
+ | sed 's,</Name>,,');
+
+ if [ $i -lt 10 ]; then
+ audioFilename="audio_0${i}.wav";
+ trackNumber="0${i}";
+ else
+ audioFilename="audio_${i}.wav";
+ trackNumber="${i}";
+ fi
+ infFilename=$(echo "$audioFilename" | sed 's/wav/inf/');
+ mv -v $audioFilename "${TRACKPATH}/${trackNumber}. ${ARTIST} - ${trackName}.wav";
+ rm -v $infFilename;
+ i=$(expr $i + 1);
+ done
+
+ rm -v audio.cddb;
+ rm -v audio.cdindex;
+ fi
+ exit 0;
+fi
+
+help;
#!/bin/bash
+function help() {
+ echo "immudex-import-sshkeys - script for copying ssh keys into user native home directory.";
+ echo "@ 2025 morketsmerke.org";
+ echo;
+ echo "Usage:";
+ echo "$ immudex-import-sshkeys"
+ echo "This comman should be run in other home directory, where ssh keys are stored.";
+ echo;
+ echo "Options:";
+ echo " --help - print this message.";
+ echo " --import-hosts - import hostnames and adresses to /etc/host file (sudo required)";
+ echo " from SSH config file if exist.";
+}
+
+if [ "$1" ] && [ "$1" = "--help" ]; then
+ help;
+ exit 1;
+fi
+
if $(ls $HOME | grep -q '.*_rsa.*'); then
if [ -d /home/$USER/.ssh ]; then
- cp -v ~/*_rsa* /home/$USER/.ssh;
+ cp -v ~/*_rsa* /home/$USER/.ssh;
else
mkdir /home/$USER/.ssh;
chmod 700 /home/$USER/.ssh;
cp -v ~/*_rsa* /home/$USER/.ssh;
fi
fi
-
+if $(ls -w1 $HOME | grep -q '^config$'); then
+ cp -v ~/config /home/$USER/.ssh;
+ if [ "$1" ] && [ "$1" = "--import-hosts" ]; then
+ i=1;
+ hostsCount=$(grep -o "Host .*" ~/config | wc -l);
+ while [ $i -le $hostsCount ]; do
+ host=$(grep -o "Host .*" ~/config | sed -n "${i}p" | awk '{printf $2}');
+ hostName=$(grep -o "HostName .*" ~/config | sed -n "${i}p" | awk '{printf $2}');
+ echo -e "${host}\t${hostName}" | sudo tee -a /etc/hosts;
+ i=$(expr $i + 1);
+ done
+ fi
+ chmod 600 /home/$USER/.ssh/config;
+fi
else
echo -e " \tCRYPT_PART: N/A";
fi
+echo -e " \tIP: $(ip addr show $(sed -n '2p' /proc/net/route | awk '{printf $1}') | grep 'inet\ ' | awk '{printf $2"\n"}')";
echo -e " \tPROCESSES: $(ps -aux | wc -l | awk '{printf $1}')";
if $(uptime | grep -q 'day'); then
utime=$(uptime | awk '{printf $3" "$4" "$5}' | sed -e 's/\,$//' -e 's,:,h ,');
echo -e " \tUPTIME: 0h ${utime}m";
fi
fi
-echo -e " \t$(uptime | grep -o "load.*$" | tr [a-z] [A-Z])";
+echo -e " \t$(uptime | grep -o "load.*$" | tr '[a-z]' '[A-Z]')";
echo;
-echo -e "morketsmerke.org @ 2023 https://github.com/xf0r3m/immudex";
+echo -e "morketsmerke.org @ 2025 https://github.com/xf0r3m/immudex";
echo;
echo "====================================================================";
#!/bin/bash
-source /usr/local/bin/library.sh;
-
launcher="/home/${USER}/.config/xfce4/panel/launcher-14/16844255236.desktop";
function main_unlock() {
if [ "$mapperDeviceList" ]; then
for dmDevice in $mapperDeviceList; do
if sudo cryptsetup status /dev/mapper/${dmDevice} > /dev/null 2>&1; then
- mountPoint=$(df --output=source,target /media/${USER}/${dmDevice} | tail -n 1 | awk '{printf $2}');
+ mountPoint=$(df --output=source,target /dev/mapper/${dmDevice} | tail -n 1 | awk '{printf $2}');
if [ "$mountPoint" ]; then
if $(sudo lsof $mountPoint > /dev/null 2>&1); then
notify-send "Padlock" "The /dev/mapper/${dmDevice} cannot be unmount, because there are opened file or running proceses." --icon=dialog-error;
sudo umount $mountPoint;
if [ $? -ne 0 ]; then
notify-send "Padlock" "The /dev/mapper/${dmDevice} cannot be unmount, because there are other filesystem is mounted in." --icon=dialog-error;
- else
- deactivate_lvm_w_swap $dmDevice;
- sudo cryptsetup close /dev/mapper/${dmDevice};
fi
+ sudo cryptsetup close /dev/mapper/${dmDevice};
fi
else
- deactivate_lvm_w_swap $dmDevice;
sudo cryptsetup close /dev/mapper/${dmDevice};
fi
fi
--- /dev/null
+#!/bin/bash
+
+function help() {
+ echo "immudex-run - execute external apps which require home dir configuration";
+ echo "@ 2025 morketsmerke.org";
+ echo;
+ echo "Database and its configuration: ";
+ echo "By default immudex-run database is shell script file, containing 4 variables";
+ echo "NATIVE_HOME_DIR - pointing normal user home dirs - /home/USER";
+ echo "WORKING_HOME_DIR - pointing first immudex-crypt device - /ic0";
+ echo "APPS - array, containing apps commands configured to execute via immudex-run";
+ echo "CONFIG_DIRS - array, with app configuration path, usually stored in user home dir";
+ echo;
+ echo "Usage: ";
+ echo "$ immudex-run <app_command>";
+}
+
+if [ "$1" ]; then
+ EXE_APP=$1;
+ source /usr/local/share/immudex-run/immudex-run.base;
+ i=0;
+ for a in ${APPS[@]}; do
+ if [ "$a" = "$EXE_APP" ]; then
+ index=$i;
+ configDirsList=$(echo ${CONFIG_DIRS[$index]} | sed 's/,/\ /g');
+ for configDir in $configDirsList; do
+ cp -prvv ${WORKING_HOME_DIR}/$configDir ${NATIVE_HOME_DIR}/${configDir};
+ done
+ export HOME=$WORKING_HOME_DIR;
+ $EXE_APP;
+ fi
+ i=$(expr $i + 1);
+ done
+ if [ ! "$index" ]; then
+ echo "Application doesn't appear in database.";
+ echo "Configure /usr/local/share/immudex-run/immudex-run.base file";
+ exit 1;
+ fi
+ #echo "index: $index";
+else
+ help;
+ exit 1;
+fi
--- /dev/null
+#!/bin/bash
+
+if [ ! -d /tmp/${USER} ]; then
+ mkdir /tmp/${USER}
+ cp -prvv /home/${USER}/.librewolf /tmp/${USER}
+fi
+
+eth0=$(ip route show | grep 'default' | awk '{printf $5}');
+firejail --private=/tmp/${USER} --net=$eth0 /usr/lib/librewolf/librewolf
#!/bin/bash
-cat /run/live/medium/live/version | cut -c 1-7
+eval $(grep '^COMMIT' /run/live/medium/live/changelog)
+echo $COMMIT | awk '{printf $1}' | cut -c 1-7
--- /dev/null
+#!/usr/bin/env python3
+
+import sys
+import subprocess
+from youtube_search import YoutubeSearch
+
+def usage():
+
+ print(
+ '''
+ immudex-ytplay - script which could play a video or audio track from youtube
+ @ 2023 (original bash script), 2025 (python script) morketsmerke.org
+ Options:
+ -s - search given keyword on youtube.
+ -v - play youtube video.
+ -a - play only youtube video audiotrack
+ Ommiting -s option, assume you are give a yt video link.
+ You have to put -v or -a before you paste a yt video link
+ When you put keywords in -s option, you need to choose
+ that you want listening an audiotrack (-a) oraz watch video (-v)
+ Usage:
+ $ immudex-ytplay -s -a [-f ytdl-format] 'lofi'
+ $ immudex-ytplay -v https://youtube.com/watch?v=... [-f ytdl-format]
+ $ immudex-ytplay -a https://youtube.com/watch?v=... [-f ytdl-format]
+ You can search again the same keywords puting 'r' or 'R' instead
+ of video numer
+ ''')
+
+def ytSearch(keywords, maxResults=15):
+
+ i = "r"
+ while isinstance(i, str) and (i == "r" or i == "R"):
+ subprocess.run('clear')
+ results = YoutubeSearch(keywords, max_results=maxResults).to_dict()
+
+ index = 1
+ for video in results:
+ print(f"\033[1m\033[91m{index}\033[0m. Title: \033[92m{video['title']}\033[0m")
+ print(f" Channel: \033[93m{video['channel']}\033[0m, Duration: \033[94m{video['duration']}\033[0m, PubDate: \033[95m{video['publish_time']}\033[0m")
+ index += 1
+
+ i = input("Put number of video you wanna watch or put 'r' to reload search result: ")
+
+ i = int(i) - 1
+ return(results[i]['id'], results[i]['title'], results[i]['channel'], results[i]['duration'], results[i]['publish_time']);
+
+if sys.argv[1] == '-s':
+ if len(sys.argv) > 2:
+ if sys.argv[2] == '-v':
+ mode = "video"
+ elif sys.argv[2] == '-a':
+ mode = "audio"
+ else:
+ usage()
+ sys.exit(2)
+ if len(sys.argv) > 3:
+ if sys.argv[3][0:5] == "best[":
+ ytFormat=sys.argv[3]
+ else:
+ ytFormat = "best"
+ keywords=sys.argv[3]
+ if len(sys.argv) > 4:
+ keywords = sys.argv[4]
+
+ #link = f"https://youtube.com/watch?v={ytSearch(keywords)}"
+ video = ytSearch(keywords)
+ #print(video)
+ subprocess.run('clear')
+ print(f"\033[91m1\033[0m. Title: \033[92m{video[1]}\033[0m")
+ print(f" Channel: \033[93m{video[2]}\033[0m, Duration: \033[94m{video[3]}\033[0m, PubDate: \033[95m{video[4]}\033[0m")
+ print("===================================================================")
+ if mode == 'audio':
+ ytFormat = "--no-video"
+ else:
+ ytFormat = "--ytdl-format=" + ytFormat
+
+ subprocess.run(['mpv', ytFormat, 'ytdl://' + video[0]])
+
+elif sys.argv[1] == '-a':
+ if len(sys.argv) > 2:
+ link=sys.argv[2]
+ ytFormat="--no-video"
+ subprocess.run(['mpv', ytFormat, 'ytdl://' + link])
+ else:
+ usage()
+ sys.exit(2)
+
+elif sys.argv[1] == '-v':
+ if len(sys.argv) > 2:
+ link=sys.argv[2]
+ if len(sys.argv) > 3:
+ ytFormat="--ytdl-format=" + sys.argv[3]
+ else:
+ ytFormat="--ytdl-format=best"
+ subprocess.run(['mpv', ytFormat, 'ytdl://' + link])
+ else:
+ usage()
+ sys.exit(2)
echo -e "${ENDCOLOR}";
}
-
-function deactivate_lvm_w_swap() {
- if $(sudo blkid | grep "$1" | grep -q 'LVM2_member'); then
- vgName=$(sudo pvs | grep "$1" | awk '{printf $2}' | sed 's/-/--/g');
- swapFile=$(cat /proc/swaps | sed -n 2p | awk '{printf $1}');
- if [ "$swapFile" ]; then
- if $(ls -l /dev/mapper | grep "$(basename $swapFile)" | grep -q "$vgName"); then
- sudo swapoff $swapFile;
- fi
- fi
- sudo vgchange -a n;
- fi
-}
-
-function deactivate_lvm() {
- if $(sudo blkid | grep "$1" | grep -q 'LVM2_member'); then
- sudo vgchange -a n;
- fi
-}
if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
echo -n "Umounting all mounted filesystems...";
- umount /mnt/* > /dev/null 2>&1;
+ umount /mnt/usb /mnt/iso > /dev/null 2>&1;
if [ $? -eq 0 ]; then echo -e "[${GREEN}OK${ENDCOLOR}]"; fi
elif [ "$target" = "nuke" ]; then
echo "# immudex-crypt create <disk partition>";
echo "# immudex-crypt open <crypt_LUKS device>";
echo "# immudex-crypt close immudex-crypt[0-9] | ic[0-9] | [0-9]";
- echo "LVM prep:";
- echo "It's possible to mount EXT4 LV with your data, behind LUKS. For now";
- echo "only open function works, so you need prepare whole LVM structure on";
- echo "your disk or partition even with file system instalation. If there is";
- echo "only one EXT4 LV it will be mounted automaticly, but if there is more";
- echo "than one, you will be asked to choose which one shoud be mounted.";
- echo "LVM behind LUKS, can be used for swap. Turning on swap partition is up";
- echo "to you, but close function check is there any swap partition in use";
- echo "and turn off swap before deactivating volume group and close LUKS.";
}
function list() {
if [ "$mountPoint" ] && [ "$mountPoint" != "/dev" ]; then
echo -e "$device\t /dev/mapper/${dmDevice}\t$mountPoint";
else
- if $(sudo blkid | grep "${dmDevice}" | grep -q "LVM2_member"); then
- echo -e "$device\t /dev/mapper/${dmDevice}\tNot mounted (LVM2_member)";
- else
- echo -e "$device\t /dev/mapper/${dmDevice}\tNot mounted";
- fi
+ echo -e "$device\t /dev/mapper/${dmDevice}\tNot mounted";
fi
fi
done
lastField=$(ls -l /dev/mapper/immudex-crypt${index} | grep -o ' ' | wc -l);
dmDevice=$(ls -al /dev/mapper/immudex-crypt${index} | cut -d " " -f ${lastField}- | cut -d "/" -f2);
if ! $(sudo file -s /dev/${dmDevice} | grep -q 'ext4'); then
- if $(sudo file -s /dev/${dmDevice} | grep -q 'LVM'); then
- lvm_member=0;
- else
- echo "Could not determine filesystem of unlocked device.";
- echo -n "Format this device to ext4? (y/n): "
- read format;
- if [ "$format" = "y" ]; then
- mkfs.ext4 /dev/mapper/immudex-crypt${index};
- else
- echo "Refuse to mount.";
- cryptsetup close immudex-crypt${index};
- exit 1;
- fi
- fi
- fi
- if [ "$lvm_member" ]; then
- luksDeviceName="immudex-crypt${index}";
- vgName=$(sudo pvs | grep "$luksDeviceName" | awk '{printf $2}');
- extLVS=$(sudo blkid | grep "$(echo "$vgName" | sed 's,-,--,g')" | grep 'ext4' | sed 's/://g' | awk '{printf $1" "}');
- if [ $(echo $extLVS | wc -w) -gt 0 ]; then
- if [ $(echo $extLVS | wc -w) -gt 1 ]; then
- select extLV in $extLVS; do
- break;
- done
- mount $extLV /media/${USER}/immudex-crypt${index};
- else
- mount $extLVS /media/${USER}/immudex-crypt${index};
- fi
+ echo "Could not determine filesystem of unlocked device.";
+ echo -n "Format this device to ext4? (y/n): "
+ read format;
+ if [ "$format" = "y" ]; then
+ mkfs.ext4 /dev/mapper/immudex-crypt${index};
else
echo "Refuse to mount.";
cryptsetup close immudex-crypt${index};
exit 1;
- fi
- else
- mount /dev/mapper/immudex-crypt${index} /media/${USER}/immudex-crypt${index};
+ fi
fi
+ mount /dev/mapper/immudex-crypt${index} /media/${USER}/immudex-crypt${index};
if [ ! -e /ic${index} ]; then
ln -s /media/${USER}/immudex-crypt${index} /ic${index};
fi
cryptfsName=$1;
fi
if cryptsetup status /dev/mapper/${cryptfsName} > /dev/null 2>&1; then
- mountPoint=$(df --output=source,target /media/${USER}/${cryptfsName} | tail -1 | awk '{printf $2}');
+ mountPoint=$(df --output=source,target /dev/mapper/${cryptfsName} | tail -1 | awk '{printf $2}');
if [ "$mountPoint" ] && [ "$mountPoint" != "/dev" ]; then
umount -R $mountPoint;
- if $(sudo blkid | grep "$cryptfsName" | grep -q 'LVM2_member'); then
- vgName=$(sudo pvs | grep "$cryptfsName" | awk '{printf $2}' | sed 's/-/--/g');
- swapFile=$(cat /proc/swaps | sed -n 2p | awk '{printf $1}');
- if [ "$swapFile" ]; then
- if $(ls -l /dev/mapper | grep "$(basename $swapFile)" | grep -q "$vgName"); then
- sudo swapoff $swapFile;
- fi
- fi
- sudo vgchange -a n;
- fi
cryptsetup close ${cryptfsName};
else
- if $(sudo blkid | grep "${cryptfsName}" | grep -q 'LVM2_member'); then
- sudo vgchange -a n;
- fi
cryptsetup close ${cryptfsName};
fi
else
+++ /dev/null
-#!/bin/bash
-
-if [ ! -d ${1}/containers ]; then
- sudo cp -prvv /var/lib/containers ${1};
-fi
-
-sudo mount -B ${1}/containers /var/lib/containers;
+++ /dev/null
-#!/bin/bash
-
-sudo systemctl stop docker.socket
-sudo systemctl stop docker.service
-sudo systemctl stop containerd.service
-
-sudo sed -i "s,dockerd,dockerd --data-root=${1}/docker," /lib/systemd/system/docker.service
-
-if [ ! -d ${1}/docker ]; then sudo cp -prvv /var/lib/docker ${1}; fi
-
-sudo systemctl daemon-reload
-
-sudo systemctl start containerd.service
-sudo systemctl start docker.socket
-sudo systemctl start docker.service
--- /dev/null
+#!/bin/bash
+
+RED="\e[31m";
+GREEN="\e[32m";
+YELLOW="\e[33m";
+ENDCOLOR="\e[0m";
+
+function fillTo8bits() {
+ OCT_BITS=$2;
+ FLAG=0;
+ if [ $OCT_BITS -lt 8 ]; then
+ while [ $OCT_BITS -lt 8 ]; do
+ if [ $FLAG -eq 1 ]; then
+ OCT="0${OCT}";
+ else
+ OCT="0${1}";
+ fi
+ OCT_BITS=$(echo -n $OCT | wc -c | awk '{printf $1}');
+ FLAG=1;
+ done
+ echo "$OCT";
+ else
+ echo "$OCT";
+ fi
+}
+
+function getBinaryOCT() {
+ OCT=$(echo "obase=2;${1}" | bc);
+ OCT_BITS=$(echo -n $OCT | wc -c | awk '{printf $1}');
+ echo "$(fillTo8bits $OCT $OCT_BITS)";
+}
+
+function printHelp() {
+ echo "immudex-nf - script to search host in network by IP or MAC address";
+ echo "morketsmerke.org @ 2025";
+ echo;
+ echo "Options: ";
+ echo " --is-free <host_ip_address> - SYN and UDP scan for check is given IP address is free and useable";
+ echo;
+ echo "Usage: ";
+ echo "# immudex-nf <IP or MAC address>";
+}
+
+if [ "$1" ]; then
+
+ if [ "$1" = "--is-free" ]; then
+ echo "Scanning...";
+ sudo nmap -sS $2 | sudo tee /tmp/immudex-nf_syn.txt > /dev/null 2>&1;
+ if [ $? -eq 0 ]; then echo -e "SYN Scanning...[ ${GREEN}OK${ENDCOLOR} ]"; fi
+ sudo nmap -sU $2 | sudo tee /tmp/immudex-nf-udp.txt > /dev/null 2>&1;
+ if [ $? -eq 0 ]; then echo -e "UDP Scanning...[ ${GREEN}OK${ENDCOLOR} ]"; fi
+ cat /tmp/immudex-nf_syn.txt /tmp/immudex-nf-udp.txt;
+ else
+ IFACE=$(cat /proc/net/route | sed -n '2p' | awk '{printf $1}');
+ IP=$(ip addr show dev ${IFACE} | grep 'inet\ ' | awk '{printf $2}' | cut -d "/" -f 1);
+ CIDR=$(ip addr show dev ${IFACE} | grep 'inet\ ' | awk '{printf $2}' | cut -d "/" -f 2);
+
+ OCT1=$(getBinaryOCT $(echo $IP | grep -o '[0-9]*' | sed -n '1p'));
+ OCT2=$(getBinaryOCT $(echo $IP | grep -o '[0-9]*' | sed -n '2p'));
+ OCT3=$(getBinaryOCT $(echo $IP | grep -o '[0-9]*' | sed -n '3p'));
+ OCT4=$(getBinaryOCT $(echo $IP | grep -o '[0-9]*' | sed -n '4p'));
+
+ binIP="${OCT1}${OCT2}${OCT3}${OCT4}";
+ ipAfterCut=$(echo -n $binIP | cut -c 1-$CIDR);
+ netBinIPBits=$CIDR;
+
+ netBinIP=$ipAfterCut;
+ while [ $netBinIPBits -lt 32 ]; do
+ netBinIP="${netBinIP}0";
+ netBinIPBits=$(echo -n $netBinIP | wc -c | awk '{printf $1}');
+ done
+
+ netOCT1=$(echo -n $netBinIP | cut -c 1-8);
+ netOCT2=$(echo -n $netBinIP | cut -c 9-16);
+ netOCT3=$(echo -n $netBinIP | cut -c 17-24);
+ netOCT4=$(echo -n $netBinIP | cut -c 25-32);
+
+ networkBinIP="${netOCT1}.${netOCT2}.${netOCT3}.${netOCT4}";
+ #echo $networkBinIP;
+
+ netDecOCT1=$(echo "ibase=2;${netOCT1}" | bc);
+ netDecOCT2=$(echo "ibase=2;${netOCT2}" | bc);
+ netDecOCT3=$(echo "ibase=2;${netOCT3}" | bc);
+ netDecOCT4=$(echo "ibase=2;${netOCT4}" | bc);
+
+ networkIP="${netDecOCT1}.${netDecOCT2}.${netDecOCT3}.${netDecOCT4}";
+ echo "Network IP: $networkIP";
+ echo "Scanning...";
+ file="/tmp/immudex-nf_result.txt";
+ sudo nmap -sP "${networkIP}/${CIDR}" | sudo tee ${file} >> /dev/null;
+ if [ $? -eq 0 ]; then echo -e "Scanning...[ ${GREEN}OK${ENDCOLOR} ]"; fi
+ query=$1;
+ if $(echo $query | grep -q '\:'); then
+ offset="- 2";
+ field=5;
+ else
+ offset="+ 2";
+ field="3-";
+ fi
+
+ foundLine=$(grep -n $query $file | cut -d ":" -f 1);
+ lineNumber=$(expr $foundLine $offset);
+ result=$(sed -n "${lineNumber}p" $file | cut -d " " -f ${field});
+ echo "Result: $result";
+ fi
+else
+ printHelp;
+fi
+++ /dev/null
-#!/bin/bash
-
-apt-get update;
YELLOW="\e[33m";
ENDCOLOR="\e[0m";
+#FILE="/tmp/immudex-updates.txt";
+
function getVerFromRSSFeed() {
URL=$1;
echo $(curl $URL 2> /dev/null | grep '<title>' | sed -n '2p' | sed -e 's/<title>//g' -e 's,</title>,,g' | awk '{printf $1}')
if [ -x /usr/bin/librewolf ]; then
URL="https://codeberg.org/librewolf/source/releases.rss";
newLibrewolfVer=$(getVerFromRSSFeed $URL);
- currentLibrewolfVer=$(librewolf -V | awk '{printf $3}');
+ currentLibrewolfVer=$(apt list --installed 2>/dev/null | grep 'librewolf' | awk '{printf $2}');
if ! [ "$currentLibrewolfVer" = "$newLibrewolfVer" ]; then
echo -e " \`- New Librewolf version (${GREEN}${newLibrewolfVer}${ENDCOLOR}) is available.";
echo " |";
fi
fi
+if [ -x /usr/local/bin/nextcloud ]; then
+ currentNextcloudVersion=$(/usr/local/bin/nextcloud -v 2> /dev/null | grep '^Nextcloud version' | awk '{printf $3}');
+ URL="https://github.com/nextcloud-releases/desktop/releases.atom";
+ newNextcloudVersion=$(curl $URL 2> /dev/null | grep -o '<title>.*</title>' | grep -v 'rc' | sed -n '2p' | sed -e 's,<title>,,' -e 's,</title>,,' | awk '{printf $2}');
+ if ! [ "$currentNextcloudVersion" = "$newNextcloudVersion" ]; then
+ echo -e " \`- New Nextcloud version (${GREEN}${newNextcloudVersion}${ENDCOLOR}) is available.";
+ echo " |";
+ fi
+fi
+
debianVersion=$(cut -d "." -f 1 /etc/debian_version);
URL="https://micronews.debian.org/feeds/feed.rss";
newDebianVersion=$(curl $URL 2>/dev/null | grep -o "Updated Debian ${debianVersion}: ${debianVersion}.[0-9]*" | sed -n '1p' | awk '{printf $4}');
-if ! [ "$newDebianVersion" = "$(cat /etc/debian_version)" ]; then
- echo -e " \`- New Debian version (${YELLOW}${newDebianVersion}${ENDCOLOR}).";
- echo " |";
+if [ "$newDebianVersion" ]; then
+ if ! [ "$newDebianVersion" = "$(cat /etc/debian_version)" ]; then
+ echo -e " \`- New Debian version (${YELLOW}${newDebianVersion}${ENDCOLOR}).";
+ echo " |";
+ fi
fi
+sudo apt update > /dev/null 2>&1;
packagesToUpdate=$(expr $(apt list --upgradable 2> /dev/null | wc -l) - 1);
if [ $packagesToUpdate -lt 0 ]; then packagesToUpdate=0; fi
echo "Options:";
echo " --check - check there are upgrades for immudex";
echo " --upgrade - upgrade immudex from given source";
- echo " --myversion - prints images current commit message";
+ #echo " --myversion - prints images current commit message";
+ echo " --myversion - prints image details";
echo " --compilation-date - prints date of image creation";
echo " --packages-upgradable [--security] - updates apt (packages) list and";
echo " prints available to upgrade packages, with --security modificator";
fi
fi
elif [ "$1" ] && [ "$1" = "--myversion" ]; then
- if [ -d /tmp/immudex ]; then
- (cd /tmp/immudex && git pull > /dev/null 2>&1)
- else
- git clone https://github.com/xf0r3m/immudex /tmp/immudex;
- fi
- (cd /tmp/immudex && git show $(cat /run/live/medium/live/version))
+ #if [ -d /tmp/immudex ]; then
+ # (cd /tmp/immudex && git pull > /dev/null 2>&1)
+ #else
+ # git clone https://github.com/xf0r3m/immudex /tmp/immudex;
+ #fi
+ #(cd /tmp/immudex && git show $(cat /run/live/medium/live/version))
+ cat /run/live/medium/live/changelog;
elif [ "$1" ] && [ "$1" = "--packages-upgradable" ]; then
apt update;
if [ "$2" ] && [ "$2" = "--security" ]; then
apt list --upgradable;
fi
elif [ "$1" ] && [ "$1" = "--compilation-date" ]; then
- echo "Image was created: $(cat /run/live/medium/live/compilation_date)";
+ eval $(grep '^COMPILATION_DATE' /run/live/medium/live/changelog);
+ echo "Image was created: $COMPILATION_DATE";
else
help;
exit 1;
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-source library.sh
-
-RED="\e[31m";
-GREEN="\e[32m";
-YELLOW="\e[33m";
-ENDCOLOR="\e[0m";
-root="/run/live/medium";
-
-function help() {
- echo "immudex-upgrade - script for searching upgrades and upgrade immudex";
- echo "@ 2025 morketsmerke.org";
- echo "Superuser (root) privileges are required.";
- echo "Options:";
- #echo " --check - check there are upgrades for immudex";
- echo " --upgrade - upgrade immudex from given source";
- #echo " --myversion - prints images current commit message";
- #echo " --myversion - prints image details";
- #echo " --compilation-date - prints date of image creation";
- #echo " --packages-upgradable [--security] - updates apt (packages) list and";
- #echo " prints available to upgrade packages, with --security modificator";
- #echo " prints only pacakages from security repository branch";
-}
-
-if [ $UID -ne 0 ]; then
- echo "Permission denied!";
- help;
- exit 1;
-fi
-
-if [ "$1" ]; then
- if [ "$1" ] && [ "$1" = "--check" ]; then
- if check_distro_commit; then
- echo -e "${GREEN}This${ENDCOLOR} is the latest version of immudex";
- else
- echo -e "There is a ${RED}new${ENDCOLOR} version of immudex:";
- echo "===================================================";
- check_distro_commit --print;
- fi
- elif [ "$1" ] && [ "$1" = "--upgrade" ]; then
- echo "Upgrading immudex...";
- part=$(blkid | grep 'LABEL="immudex"' | awk '{printf $1}' | cut -d ":" -f 1);
- if mount | grep -q "$part"; then
- echo -n " Mounting iso image...";
- mount $2 /mnt > /dev/null 2>&1;
- if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
- mountPointList=$(mount | grep "$part" | awk '{printf $3" "}');
- for mountPoint in $mountPointList; do
- echo -n " Unlocking $mountPoint ...";
- mount $part $mountPoint -o remount,rw > /dev/null 2>&1;
- if [ $? -eq 0 ]; then
- echo -e "[ ${GREEN}OK${ENDCOLOR} ]";
- else
- echo -e "[ ${RED}FAIL${ENDCOLOR} ]";
- fi
- done
- echo " Copying immudex files to the disk...";
- cp -vv /mnt/live/* ${mountPoint}/live;
- if [ $? -eq 0 ]; then
- echo -e " Copying immudex files to the disk...[ ${GREEN}OK${ENDCOLOR} ]";
- else
- echo -e " Copying immudex files to the disk...[ ${RED}FAIL${ENDCOLOR} ]";
- fi
- else
- echo -n " Mounting immudex partition...";
- mount $part /mnt >> /dev/null 2>&1;
- if [ $? -eq 0 ]; then echo -e "[ ${GREEN}OK${ENDCOLOR} ]"; fi
- if [ "$2" ] && $(echo "$2" | grep -q '^http'); then
- URL="$2";
- wget ${URL}/live/vmlinuz -O /mnt/live/vmlinuz 2>/dev/null;
- if [ $? -eq 0 ]; then echo -e " Copying immudex kernel to the disk...[ ${GREEN}OK${ENDCOLOR} ]"; fi
- wget ${URL}/live/initrd -O /mnt/live/initrd 2>/dev/null;
- if [ $? -eq 0 ]; then echo -e " Copying immudex initrd to the disk...[ ${GREEN}OK${ENDCOLOR} ]"; fi
- wget ${URL}/live/filesystem.squashfs -O /mnt/live/filesystem.squashfs 2>/dev/null;
- if [ $? -eq 0 ]; then echo -e " Copying immudex filesystem.squashfs to the disk...[ ${GREEN}OK${ENDCOLOR} ]"; fi
- wget ${URL}/live/changelog -O /mnt/live/changelog 2>/dev/null;
- if [ $? -eq 0 ]; then echo -e " Copying immudex changelog file to the disk...[ ${GREEN}OK${ENDCOLOR} ]"; fi
- else
- echo " Copying immudex files to the disk...";
- cp -vv /run/live/medium/live/* /mnt/live;
- if [ $? -eq 0 ]; then
- echo -e " Copying immudex files to the disk...[ ${GREEN}OK${ENDCOLOR} ]";
- else
- echo -e " Copying immudex files to the disk...[ ${RED}FAIL${ENDCOLOR} ]";
- fi
- fi
- fi
- if $(sudo efibootmgr > /dev/null 2>&1); then
- echo " Copying grub config to the disk...";
- if [ "$mountPoint" ]; then
- cp -vv /mnt/boot/grub/grub.cfg ${mountPoint}/boot/grub/grub.cfg;
- if [ $? -eq 0 ]; then
- echo -e " Copying grub config to the disk...[ ${GREEN}OK${ENDCOLOR} ]";
- sed -i '/set\ timeout=/ s/30/5/' ${mountPoint}/boot/grub/grub.cfg;
- sed -i 's/bootfrom=removable //g' ${mountPoint}/boot/grub/grub.cfg;
- else
- echo -e " Copying grub config to the disk...[ ${RED}FAIL${ENDCOLOR} ]";
- fi
- else
- if [ "$2" ] && $(echo "$2" | grep -q '^http'); then
- wget ${URL}/live/grub.cfg -O /mnt/boot/grub/grub.cfg 2>/dev/null;
- if [ $? -eq 0 ]; then echo -e " Downloading immudex GRUB config...[ ${GREEN}OK${ENDCOLOR} ]"; fi
- echo -e " Copying grub config to the disk...[ ${GREEN}OK${ENDCOLOR} ]";
- else
- cp -vv /run/live/medium/boot/grub/grub.cfg /mnt/boot/grub/grub.cfg;
- if [ $? -eq 0 ]; then
- echo -e " Copying grub config to the disk...[ ${GREEN}OK${ENDCOLOR} ]";
- else
- echo -e " Copying grub config to the disk...[ ${RED}FAIL${ENDCOLOR} ]";
- fi
- fi
- sed -i '/set\ timeout=/ s/30/5/' /mnt/boot/grub/grub.cfg;
- sed -i 's/bootfrom=removable //g' /mnt/boot/grub/grub.cfg;
- fi
- fi
- umount -R /mnt;
- if [ $? -eq 0 ]; then echo -e " Unmount immudex partition...[ ${GREEN}OK${ENDCOLOR} ]"; fi
- echo -e "Upgrading immudex...[ ${GREEN}OK${ENDCOLOR} ]";
- elif [ "$1" ] && [ "$1" = "--myversion" ]; then
- #if [ -d /tmp/immudex ]; then
- # (cd /tmp/immudex && git pull > /dev/null 2>&1)
- #else
- # git clone https://github.com/xf0r3m/immudex /tmp/immudex;
- #fi
- #(cd /tmp/immudex && git show $(cat /run/live/medium/live/version))
- cat /run/live/medium/live/changelog;
- elif [ "$1" ] && [ "$1" = "--packages-upgradable" ]; then
- apt update;
- if [ "$2" ] && [ "$2" = "--security" ]; then
- apt list --upgradable | grep 'security';
- else
- apt list --upgradable;
- fi
- elif [ "$1" ] && [ "$1" = "--compilation-date" ]; then
- eval $(grep '^COMPILATION_DATE' /run/live/medium/live/changelog);
- echo "Image was created: $COMPILATION_DATE";
- else
- help;
- exit 1;
- fi
-else
- help;
- exit 1;
-fi
fi
cd;
-if [ -x /usr/bin/git ]; then git clone https://git.morketsmerke.org/git/immudex;
-else apt install git -y && git clone https://git.morketsmerke.org/git/immudex;
+if [ -x /usr/bin/git ]; then git clone https://github.com/xf0r3m/immudex;
+else apt install git -y && git clone https://github.com/xf0r3m/immudex;
fi
source ~/immudex/versions/template.sh;
install_packages task-desktop task-xfce-desktop;
-install_packages firejail ufw cryptsetup lsof extlinux grub-efi-amd64 efibootmgr bash-completion etherwake wakeonlan cifs-utils wget figlet mpv vim-gtk3 redshift irssi nmap nfs-common remmina python3-pip ffmpeg debootstrap squashfs-tools xorriso syslinux-efi grub-pc-bin grub-efi-amd64-bin mtools dosfstools chrony python3-venv isolinux rsync mutt gimp openvpn netselect-apt gvfs-backends dnsutils lolcat make;
-
-#Missing packages
-#Anti-Frankenstein policy - 13.05.2024;
-if [ "$DEBVER" = "testing" ]; then
- install_packages xfce4-notes-plugin yt-dlp;
-
- #head -1 /etc/apt/sources.list | sed "s/${DEBVER}/stable/" > /etc/apt/sources.list.d/stable.list;
- #apt update;
- #install_packages newsboat;
- #rm /etc/apt/sources.list.d/stable.list;
- #apt update;
-else
- install_packages newsboat;
+#Usunięcie pakietów make oraz gimp - 22.11.2025;
+install_packages firejail ufw cryptsetup lsof extlinux grub-efi-amd64 efibootmgr bash-completion etherwake wakeonlan cifs-utils wget figlet vim-gtk3 redshift irssi nmap nfs-common remmina python3-pip ffmpeg debootstrap squashfs-tools xorriso syslinux-efi grub-pc-bin grub-efi-amd64-bin mtools dosfstools chrony python3-venv isolinux rsync mutt openvpn netselect-apt gvfs-backends dnsutils lolcat cdparanoia icedax;
- #head -1 /etc/apt/sources.list | sed "s/${DEBVER}/testing/" > /etc/apt/sources.list.d/testing.list;
- #apt update;
- #install_packages xfce4-notes-plugin yt-dlp;
- #rm /etc/apt/sources.list.d/testing.list;
- #apt update;
-fi
if [ -f /usr/bin/youtube-dl ]; then rm /usr/bin/youtube-dl; fi
ytdlpVer=$(curl https://github.com/yt-dlp/yt-dlp/releases.atom 2>/dev/null | grep '<title>.*</title>$' | sed -n '2p' | sed 's/\ /\n/g' | tail -1 | sed 's,</title>,,');
wget https://github.com/yt-dlp/yt-dlp/releases/download/${ytdlpVer}/yt-dlp -O /usr/bin/yt-dlp
-#Anti-Frankenstein policy - 13.05.2024;
+#Polityka antyfrankensteinowa - 13.05.2024
ln -s /usr/bin/yt-dlp /usr/bin/youtube-dl;
cd;
-git clone https://git.morketsmerke.org/git/xfcedebian-d13;
-cd xfcedebian-d13;
-bash install.sh;
+git clone https://github.com/xf0r3m/xfcedebian;
+cd xfcedebian;
+bash install.sh --immudex;
cd;
-cp -vv ~/immudex/tools/bin/immudex-autostart-x4notes /usr/local/bin;
+#Wyłączenie narzędzia immudex-autostart-x4notes - 22.11.2025
cp -vv ~/immudex/tools/bin/immudex-branch /usr/local/bin;
cp -vv ~/immudex/tools/bin/immudex-import-gpgkeys /usr/local/bin;
cp -vv ~/immudex/tools/bin/immudex-import-sshkeys /usr/local/bin;
cp -vv ~/immudex/tools/bin/immudex-padlock /usr/local/bin;
cp -vv ~/immudex/tools/bin/immudex-pl /usr/local/bin;
cp -vv ~/immudex/tools/bin/immudex-secured-firefox /usr/local/bin;
-cp -vv ~/immudex/tools/bin/immudex-protected /usr/local/bin;
-cp -vv ~/immudex/tools/bin/immudex-protected-firefox /usr/local/bin;
+#Wyłączenie narzędzia immudex-protected - 22.11.2025
cp -vv ~/immudex/tools/bin/immudex-shoutcasts /usr/local/bin;
cp -vv ~/immudex/tools/bin/immudex-version /usr/local/bin;
-
-#Anti-Frankenstein policy - 14.05.2024
-if [ "$DEBVER" != "oldstable" ]; then
- install_packages fzf jq ueberzug;
- git clone https://github.com/pystardust/ytfzf /tmp/ytfzf;
- (cd /tmp/ytfzf && make install doc)
-else
- cp -vv ~/immudex/tools/bin/immudex-ytplay /usr/local/bin;
-fi
+#Nowe narzędzie immudex-cdrip - 27.08.2025;
+cp -vv ~/immudex/tools/bin/immudex-cdrip /usr/local/bin;
+#Wyłaczenie immudex-run - 22.11.2025
+
+#Właczenie nowej wersji immudex-ytplay (immudex-ytplay2) - 13.09.2025
+pythonVersion=$(python3 -V | awk '{printf $2}' | cut -d "." -f 1-2);
+mv /usr/lib/python${pythonVersion}/EXTERNALLY-MANAGED /usr/lib/python${pythonVersion}/EXTERNALLY-MANAGED.old;
+wget https://ftp.morketsmerke.org/youtube-search/youtube_search-2.1.2-py3-none-any.whl -O /tmp/youtube_search-2.1.2-py3-none-any.whl;
+pip install /tmp/youtube_search-2.1.2-py3-none-any.whl;
+mv /usr/lib/python${pythonVersion}/EXTERNALLY-MANAGED.old /usr/lib/python${pythonVersion}/EXTERNALLY-MANAGED;
+cp -vv ~/immudex/tools/bin/immudex-ytplay2 /usr/local/bin;
+ln -s /usr/local/bin/immudex-ytplay2 /usr/local/bin/immudex-ytplay;
cp -vv ~/immudex/tools/bin/library.sh /usr/local/bin;
cp -vv ~/immudex/tools/bin/idle-clic /usr/local/bin;
cp -vv ~/immudex/tools/sbin/immudex-hostname /usr/local/sbin;
cp -vv ~/immudex/tools/sbin/immudex-install /usr/local/sbin;
cp -vv ~/immudex/tools/sbin/immudex-upgrade /usr/local/sbin;
+#Wyłączenie narzędzi immudex-update i immudex-nf - 22.11.2025
chown root:root /usr/local/sbin/*;
chmod 544 /usr/local/sbin/*;
-mkdir /etc/skel/.irssi
-
-cp -vv ~/immudex/files/config /etc/skel/.irssi;
-cp -vv ~/immudex/files/default.theme /etc/skel/.irssi;
cp -rvv ~/immudex/files/libreoffice /etc/skel/.config;
cp -vv ~/immudex/files/firejail.config /etc/firejail;
cp -vv ~/immudex/files/redshift.conf /etc/skel/.config;
cp -rvv ~/immudex/files/sync.sh /usr/share;
-#Anti-Frankenstein policy - 13.05.2024
-if [ "$DEBVER" = "testing" ]; then
+#Polityka antyfrankensteinowa - 13.05.2024
+if [ "$DEBVER" = "testing" ]; then
cp -vv ~/immudex/files/gtk-main.css /usr/share/xfce4/notes/gtk-3.0/gtk.css;
fi
fi
cp -vv ~/immudex/files/immudex_hostname.service /etc/systemd/system;
-tar -xf ~/immudex/files/mozilla.tgz -C /etc/skel;
-
cp -vv ~/immudex/launchers/16844254192.desktop /etc/skel/.config/xfce4/panel/launcher-5;
-update-alternatives --remove x-www-browser /usr/bin/firefox-esr
-
-mv /usr/bin/firefox /usr/bin/firefox.old
-chmod -x /usr/bin/firefox.old
-rm /usr/bin/firefox-esr
-ln -s /usr/local/bin/immudex-protected-firefox /usr/bin/firefox-esr
-sed -i "s,Exec=/usr/lib/firefox-esr/firefox-esr %u,Exec=/usr/local/bin/immudex-protected /usr/lib/firefox-esr/firefox-esr," /usr/share/applications/firefox-esr.desktop
-sed -i "s,Exec=exo-open --launch WebBrowser %u,Exec=/usr/local/bin/immudex-protected /usr/lib/firefox-esr/firefox-esr,g" /usr/share/applications/xfce4-web-browser.desktop
-update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/local/bin/immudex-protected-firefox 70
-
+#tar -xzvf ~/immudex/files/mozilla.tgz -C /etc/skel;
systemctl enable immudex_hostname.service;
echo "alias immudex-chhome='export HOME=\$(pwd)'" >> /etc/bash.bashrc;
echo "alias immudex-changelogs='immudex-upgrade --check --print'" >> /etc/bash.bashrc;
-echo "alias immudex-version='immudex-upgrade --myversion'" >> /etc/bash.bashrc;
+echo "alias immudex-version='cat /run/live/medium/live/changelog'" >> /etc/bash.bashrc;
chmod u+s /usr/bin/ping;
ln -s /usr/share/images/desktop-base/$1 /usr/share/images/desktop-base/default;
}
+function make_changelog_file() {
+ ARCH=$1;
+ DEBVER=$debver;
+ COMPILATION_DATE=$(date);
+ COMMIT=$(cd ${HOME}/immudex && git log --pretty=oneline | head -1);
+ ADDONS=$(grep 'bash ~/immudex/addons' ${HOME}/immudex/versions/base.sh | grep -v '^#' | cut -d "/" -f4 | sed 's/;//g' | awk '{printf $1" "}');
+
+ echo "ARCH=\"${ARCH}\"" > $FILE;
+ echo "DEBVER=\"${DEBVER}\"" >> $FILE;
+ if [ "$cname" ]; then
+ echo "CANONICAL_NAME=\"${cname}\"" >> $FILE;
+ fi
+ if [ "$version" ]; then
+ echo "VERSION=\"${version}\"" >> $FILE;
+ fi
+ echo "COMPILATION_DATE=\"${COMPILATION_DATE}\"" >> $FILE;
+ echo "COMMIT=\"${COMMIT}\"" >> $FILE;
+ echo "ADDONS=\"${ADDONS}\"" >> $FILE;
+ echo "-== Diffrences in version file ==-" >> $FILE;
+ (cd ${HOME}/immudex; git diff versions/base.sh) >> $FILE;
+}