Literally 1984
“We are now confirming once again that playing with fire—and they are like small children playing with matches—is a very dangerous thing for grown-up uncles and aunts who are entrusted with nuclear weapons in one or another Western country.”
So countries with nuclear capabilities should be more responsible and perhaps not invade their neighboring countries? 🤔
My brain does not like. It’s stunlocked asking “why is this bold?” over and over again even though I already answered.
This is a very goofy workaround for you that doesn’t actually check what the device is. Only checks if /dev/sr0 exists and if yes, use that if no then use /dev/sr1. Better solution below this block. But leaving it because I kind of like it’s jankiness.
if [ -e /dev/sr0]; then
DEVICE="/dev/sr0"
else
DEVICE="/dev/sr1"
fi
Not elegant and a little janky but works.
This will work better. We are taking the output of -checkdrive, searching for “Detected” and sending that to awk. We are telling awk to split that line into columns based on this character “:” and to print the second column. That should give you an output of " /dev/sr0" with a space in front.
DEVICE=$(cdrecord -checkdrive | grep Detected | awk -F ":" '{print $2}')
That should work. But if you absolutely must kill the whitespace for some reason we can add trim to the end like so
DEVICE=$(cdrecord -checkdrive | grep Detected | awk -F ":" '{print $2}' | tr -d ' ')
There might be a more elegant solution by using the output of “cdrecord -scanbus” instead. No clue though since I don’t have the hardware to verify from here. Hope that helps!
Ahhh, so apparently in the man page for cdrecord it mentions it needs to be ran as root since it uses “real time scheduling” to write. So even if you have proper permissions to use the cd burner, you still need root to run it. I made a bad assumption that you were having to use root since you didn’t have permissions as your use to write to it.
If you don’t need to parse the output of “cdrecord -checkdrive” then setting that var is pretty trivial.
CDROM=$(cdrecord -checkdrive)
If that outputs more than just the string you need, that gets a little headachey. Grep/awk/sed/sort/uniq/regex are all very powerful and esoteric.
That being said, the man page also mentions that most users will not have to specify “dev” at all as it should figure it out automatically. So you might be ok with axing the “dev” part of the command instead of feeding it the device path.
My bad thought it was printed as “user:group” and not “user group”.
When you add yourself to a group you need to either log out and log back in or reboot in order for it to take effect. So maybe next time you log in try it without sudo again.
I think Ideally you should be able to run it as you instead of root or sudo. I’m assuming you are needing sudo since you don’t have access to the burner as your user.
Do an “ls -lah” on your cd burner. I think you said it was /dev/sr0 so “ls -lah /dev/sr0” and see if it is owned by root:root or hopefully root:disk or something like that. The format is “user:group” so I’m hoping it is owned by a group that you can simply add your user to.
If it is owned by another group, you can just run “sudo usermod -aG disk user” replace disk with the group that shows on the ls command and user with your user.
If that burner is owned by root:root, there is a way to change that. But that gets very complicated. And I’m not sure its worth the effort for you unless you are wanting to learn more. Point 4.3 here: https://wiki.archlinux.org/title/Udev
In which case to directly answer your question, I’d personally prefer to sudo the script instead of adding sudo in the script. But at the end of the day, I don’t think it matters too much for this specific use case.
Tell me what you found out!?
You should write a script to touch all the files before their script runs.
Kim Jong definitely too ill
It’s bussin