pacstall-programs icon indicating copy to clipboard operation
pacstall-programs copied to clipboard

ci(srcinfo.sh): fix `.SRCINFO` fmting

Open oklopfer opened this issue 8 months ago • 0 comments

this script is damn slow

don't merge yet

required for https://github.com/pacstall/pacstall/pull/1153's full pkgbase usage to be useful


.SRCINFO generation is now required to be done before packagelist generation. Both are handled by ./scripts/srcinfo.sh:

./scripts/srcinfo.sh write packages/pkgname/pkgname.pacscript
# generates .SRCINFO to packages/pkgname/.SRCINFO

# OR

list=($(ls packages/*/*.pacscript))
./scripts/srcinfo.sh write "${list[@]}"
# does it for the whole repo

./scripts/srcinfo.sh check
# checks if SRCINFOs exists for files and is tracked by git, for preventing merges without one
# can be run on individual files or array of files, assumes every file if none passed

./scripts/srcinfo.sh packagelist
# must be run from the head of the repository, updates the packagelist
  • All .SRCINFO files now declare pkgbase at the top
  • If a pacscript does not include pkgbase
    • pkgbase in .SRCINFO will default to the pkgname
    • packagelist entry is same as before
  • If a pacscript does include pkgbase, then the packagelist entries are split up like:
${pkgbase}:pkgbase
${pkgbase}:${pkgname}

so for the example in https://github.com/pacstall/pacstall/pull/1153, our entries become:

rhino-pkg-git:pkgbase
rhino-pkg-git:rpk-git
rhino-pkg-git:rhino-pkg-git

This can of course also be done by hand, but either way is required for pacstall to handle pkgbase split packages. They can then be called to install with any of the following:

pacstall -I rhino-pkg-git # same as with :pkgbase
pacstall -I rhino-pkg-git:pkgbase # prompts which to install
pacstall -I rhino-pkg-git:rpk-git # auto-selects only rpk-git split package
pacstall -I rhino-pkg-git:rhino-pkg-git # auto-selects only rhino-pkg-git split package

if using -Qa, this must be done without any :extensions:

pacstall -Qa "${pkgbase}#6143" # prompts which to install, will do all if none selected
pacstall -Qa rhino-pkg-git#1153 # as an example

Once installed on the system, you call split packages without their parent:

pacstall -Qi rpk-git
pacstall -R rpk-git

oklopfer avatar Jun 19 '24 07:06 oklopfer