____ ___ ____ ____ ____ ___ _____ __ __
/ __ \/ | / __ \/ __ \ / __ )/ | / ___// / / /
/ /_/ / /| | / / / / /_/ / / __ / /| | \__ \/ /_/ /
/ _, _/ ___ |/ /_/ / ____/ / /_/ / ___ |___/ / __ /
/_/ |_/_/ |_/_____/_/ /_____/_/ |_/____/_/ /_/
After installing, load the framework entrypoint in your shell:
source "$(radp-bf --print-run)"You can place that command in your shell profile (e.g. ~/.bashrc) for automatic loading.
curl -fsSL https://raw.githubusercontent.com/xooooooooox/radp-bash-framework/main/tools/install.sh | bashOr:
wget -qO- https://raw.githubusercontent.com/xooooooooox/radp-bash-framework/main/tools/install.sh | bash
fetch -qo- https://raw.githubusercontent.com/xooooooooox/radp-bash-framework/main/tools/install.sh | bashOptional variables:
RADP_BF_VERSION=vX.Y.Z \
RADP_BF_REF=main \
RADP_BF_INSTALL_DIR="$HOME/.local/lib/radp-bash-framework" \
RADP_BF_BIN_DIR="$HOME/.local/bin" \
RADP_BF_ALLOW_ANY_DIR=1 \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/xooooooooox/radp-bash-framework/main/tools/install.sh)"RADP_BF_REF can be a branch, tag, or commit and takes precedence over RADP_BF_VERSION.
If you set a custom install dir that does not end with radp-bash-framework, also set RADP_BF_ALLOW_ANY_DIR=1.
Defaults: ~/.local/lib/radp-bash-framework and ~/.local/bin.
Re-run the script to upgrade.
Click here see details.
brew tap xooooooooox/radp
brew install radp-bash-framework# dnf
sudo dnf install -y dnf-plugins-core
sudo dnf copr enable -y xooooooooox/radp
sudo dnf install -y radp-bash-framework
# yum
sudo yum install -y epel-release
sudo yum install -y yum-plugin-copr
sudo yum copr enable -y xooooooooox/radp
sudo yum install -y radp-bash-frameworkOBS provides multi-distro builds. Replace <DISTRO> with the target path (e.g. CentOS_7, openSUSE_Tumbleweed, xUbuntu_24.04).
# CentOS/RHEL (yum)
sudo yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/xooooooooox:/radp/<DISTRO>/radp.repo
sudo yum install -y radp-bash-framework
# Debian/Ubuntu (apt)
echo 'deb http://download.opensuse.org/repositories/home:/xooooooooox:/radp/<DISTRO>/ /' | sudo tee /etc/apt/sources.list.d/home:xooooooooox:radp.list
curl -fsSL https://download.opensuse.org/repositories/home:xooooooooox:radp/<DISTRO>/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_xooooooooox_radp.gpg > /dev/null
sudo apt update
sudo apt install radp-bash-framework
# Fedora/RHEL/CentOS (dnf)
sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/home:/xooooooooox:/radp/<DISTRO>/radp.repo
sudo dnf install -y radp-bash-frameworkPrebuilt installable packages are attached to each release: https://github.com/xooooooooox/radp-bash-framework/releases/latest
Download the .rpm or .deb asset (prefixed with obs- or copr-) and install:
# RPM (Fedora/RHEL/CentOS)
sudo rpm -Uvh ./obs-radp-bash-framework-<version>-<release>.noarch.rpm
# or
sudo dnf install ./obs-radp-bash-framework-<version>-<release>.noarch.rpm
# DEB (Debian/Ubuntu)
sudo dpkg -i ./obs-radp-bash-framework_<version>-<release>_all.deb
sudo apt-get -f installOr run directly from source:
source /path/to/framework/run.shbrew upgrade radp-bash-framework# dnf
sudo dnf clean metadata
sudo dnf upgrade --refresh -y radp-bash-framework
# yum
sudo yum clean expire-cache
sudo yum update -y radp-bash-framework# CentOS/RHEL (yum)
sudo yum update -y radp-bash-framework
# Debian/Ubuntu(apt)
sudo apt update
sudo apt install -y radp-bash-framework
# Fedora/RHEL/CentOS (dnf)
sudo dnf upgrade -y radp-bash-frameworkDownload the new .rpm/.deb from the latest release and install it:
# RPM
sudo rpm -Uvh ./obs-radp-bash-framework-<version>-<release>.noarch.rpm
# DEB
sudo dpkg -i ./obs-radp-bash-framework_<version>-<release>_all.deb
sudo apt-get -f install- Trigger
release-prepwith abump_type(patch/minor/major/manual, default patch). For manual, providevX.Y.Z. This updatesgr_fw_version, syncs spec versions, and adds a changelog entry (branchworkflow/vX.Y.Z+ PR). - Review/edit the changelog in the PR and merge to
main. create-version-tagruns automatically on merge (or trigger it manually) to validate the version/changelog/spec and create/push the tag.- Tag workflows run:
update-homebrew-tapupdates the Homebrew formula.
update-spec-versionruns aftercreate-version-tag(or manually if needed).build-copr-packagetriggers afterupdate-spec-versioncompletes onmain(only when the release tag points to the workflow run commit).build-obs-packagesyncs sources to OBS and triggers the build (only when the release tag points to the workflow run commit).attach-release-packagespulls built packages from COPR/OBS and the Homebrew formula and uploads them to the GitHub Release for manual installs.
- Trigger: Manual (
workflow_dispatch) onmain. - Purpose: Create a release branch (
workflow/vX.Y.Z) from the resolved version (patch/minor/major bump, or manualvX.Y.Z), updategr_fw_version, sync spec versions, insert a changelog entry with a TODO list of commits, and open a PR for review.
- Trigger: Manual (
workflow_dispatch) onmain, or merge of aworkflow/vX.Y.ZPR. - Purpose: Read
gr_fw_version, validatevx.y.z, the changelog entry, and spec versions, then create/push the Git tag if it does not already exist.
- Trigger: Successful completion of the
create-version-tagworkflow onmain, or manual (workflow_dispatch). - Purpose: Validate
gr_fw_versionfollowsvx.y.z, update specVersiontox.y.zwhen the version changes.
- Trigger: Successful completion of the
update-spec-versionworkflow onmain. - Purpose: Trigger a COPR SCM build using the updated spec at
packaging/copr/radp-bash-framework.spec, skipping the build when the release tag is missing (the SCM source is generated from the tag).
- Trigger: On push of a version tag (
v*), successful completion of thecreate-version-tagworkflow onmain, or manual (workflow_dispatch). - Purpose: Validate the tag matches
gr_fw_version, build release metadata from the tag, update the Homebrew tap formula, and push the changes to the tap repository.
- Trigger: Successful completion of the
update-spec-versionworkflow onmain, or manual (workflow_dispatch). - Purpose: Sync the release tarball, spec, and Debian packaging metadata to OBS and trigger the build, skipping the build when the release tag is missing (the tarball is created from the tag).
- Trigger: Published GitHub Release, or manual (
workflow_dispatchwith optional tag). - Purpose: Download built packages from COPR/OBS and the Homebrew tap formula, then upload them as Release assets for manual installation.
