Scripts to make setting up a new system easier.. hopefully.
Note: Please take a look at the issues before running.
Most things are working fine, and I am working hard to fix the remaining
problems, but please take a look at what could go wrong before you run this.
More documentation coming soon!
To use, run the following:
sudo apt-get update && sudo apt-get install git -y \
&& git clone https://github.com/TangentFoxy/os-setup --depth=1 \
&& cd os-setup && ./run.sh
Every key is optional.
Metadata:
ask
: Set tofalse
to prevent the user from being asked about whether or not they want to install this package. (Useful for dependencies that are never installed only on their own.)ignore
: If truthy, will be entirely ignored. (Useful for broken/incomplete packages.)hardware
: Specifies hardware dependencies. Packages with missing hardware dependencies are automatically ignored. Recognized values:NVIDIA
: NVIDIA graphics card.AMD
: AMD/ATI graphics card.integrated_graphics
: integrated (CPU) graphics.software_graphics
: No graphics hardware present. Software rendering only.virtual_machine
: Running inside a VM.
hardware_exclude
: Opposite ofhardware
. If this hardware is detected, the package will be ignored. Seehardware
for recognized values.description
: A name and brief description of what the package is. Will be turned into aprompt
question. (prompt
cannot be used withdescription
.)prompt
: For packages that aren't directly installing something, a custom prompt can be used. Incompatible withdescription
.priority
: Higher numbers go first. (Everything defaults to 0.) (I've been organizing these in part by how much I want different things, and how slow some things are. I prioritize faster and more important things.)notes
: Extra notes/warnings about the package. (description
is only meant to have what it is.)binary
: If awhich
command can be run to verify installation, the name of the binary should be here.name
: Do not set this. (Automatically added for internal functionality.)unprivileged
: If the package can be installer for the current user only / without access to sudo.
Functions that will be run (in the order shown here):
prerequisites
: Package(s) required to be installed before this package.optional_prerequisites
: Package(s) that must be installed before this package if both are being installed.conditions
/condition
: Can be a function, which must return a truthy value for installation to proceed, or a string containing a command which must exit 0 to continue. Critically, these checks are done during an attempted install, not when deciding what to install. (Used to make complex checks that can't be handled another way.)browse_to
: Tuples of URLs and file descriptions that must be opened for the user to download file(s). Defaults to instructing to download a Debian (.deb) file.ppa
: A PPA that must be added to APT-GET.apt
: Packages that must be installed via APT-GET.flatpak
: Packages that must be installed via Flatpak.brew
: Packages that must be installed via brew.execute
: A shell script to run.desktop
: Creates a.desktop
file to put a program in the menu. Must containname
,path
,exec
,icon
, andcategories
.- See Recognized desktop entry keys for what these values should have.
- See Registered Categories for what categories are valid.
cronjobs
: Creates cron jobs. Jobs are tuples containing a schedule, script, and whether or not it needs to be run as root.
Note: Using luarocks/argparse. Other implementations are inferior.