summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
7 daysmerge tree.sh into mkLeah Rowe
mk is so tiny now, and will likely never get bigger. tree.sh is effectively the main script now, so let's treat it as such. i'll start splitting tree.sh instead. e.g. move gcc setup to its own file. Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daysuse -mindepth alongside -maxdepth in findLeah Rowe
use of maxdepth 1 does not exclude the main directory, which is undesired in these contexts, though excluded in practise due to how find is actually used. technically, mindepth should be used, just in case, as a defensive measure. the context here is files and directories within a main directory, used as arguments in other commands. Signed-off-by: Leah Rowe <leah@libreboot.org>
7 daystree.sh: fix globbing in multi-tree command argsLeah Rowe
this solves a bug that does not yet manifest, because this bug *can't* currently trigger any error due to lbmk's design. this is therefore a preventative fix, for reasons that will become clear. we previously put arguments in a variable, in a way that didn't handle globbing. now we avoid a variable and use "$@" instead, which solves the problem. this also means that the main logic in mk can be cleaner, as trees-specific control logic is now placed entirely in tree.sh's main. this means that we can now also wrap x_ around trees() this was never a problem in the past, because all of the arguments for trees commands never have globbing; config names are always e.g. foo_bar, not foo bar in commands where globbing did need to be handled, those commands were never trees commands. e.g. you had ./mk inject filename yes, this is a design improvement, or a preventative bug fix. pick your poison. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysmk: clean up printf commandLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysmk: put all includes in one placeLeah Rowe
the previous design flaw was fixed by recent refactors, such that i can now . include all of lbmk at once, and have control logic right after that. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysmk: simplified command handlingLeah Rowe
just do includes in mk again. common.sh was stupidly small, just pointless. replace the entire command dispatcher with eval, printf and awk, because i can, and it further reduces sloccount. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 dayscommon.h: re-order includesLeah Rowe
the new order more reliably indicates which order everything is executed in, by virtue of the functions provided in each file. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 days79 linesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysuse awk insteadLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysinit.sh: tidy up main loopLeah Rowe
the new loop is incredibly novel in nature, and will break if anyone but me ever touches it. it also reduces sloccount by two lines. i did it because i can, and it's perfectly safe. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 dayssplit up include/Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysmore build system cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysinit.sh: remove unnecessary directory checkLeah Rowe
literally the point of -p in mkdir is to, you know, check whether the directory already exists unclear thinking = unclear code Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysfix regression in version checkLeah Rowe
it occured to me that this style of check was bad. it only works when checking if both variables are set my bad Signed-off-by: Leah Rowe <leah@libreboot.org>
8 daysxbmk: remove xbmkdir()Leah Rowe
pointless function. literally pointless. it is literally the most pointless function ever written in the history of functions. literally pointless in every possible way. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 dayslib.sh: always sanitize xbmkver before writingLeah Rowe
this removed the need to check it in xbmk_set_version as it calls update_xbmkver, which in turn performs the same check. this increases the general reliability and safety of xbmk when recording its own version after update. Signed-off-by: Leah Rowe <leah@libreboot.org>
8 dayslib.sh: simplify update_xbmkverLeah Rowe
sanitization can be done with a single sed command Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysmore cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysget.sh: remove redundant checkLeah Rowe
we don't pull anything from supermicro's site. we did briefly, in an earlier port for that one supermicro board. don't maintain dead code. dead code has one purpose: be deleted. Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysget.sh: add try_fetch_copy functionLeah Rowe
just a skeleton that calls the curl function Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysmore cleanupLeah Rowe
this will be the last time, i promise Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysget.sh: even more cleanup (simplified fetch)Leah Rowe
fetch_submodule now contains just the right amount of eval, which means all of the eval. Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysget.sh: further cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysget.sh: simplify xbgetLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysmore variable cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysmk: export locales much earlierLeah Rowe
also simplify the way it works (eval and awk) Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysremove include/chromebook.sh import script (not needed)Leah Rowe
i will be adding chromebooks, but not using this script, which is why i never finished the script. i previously had the plan to patch upstream coreboot, by importing patches from mrchromebox, but that results in an extreme number of patches. several hundred patches, in fact. more efficient is to add multi-upstream support in include/get.sh, for using different upstreams including forks, on a given multi-tree project. i haven't done this yet, but this is what will be done, and then adding each chromebook will be a matter of importing configs from mrchromebox alongside edk2 integration. a script will still need to be written, for the initial import, and imported chromebooks will be set release=n until and when each target is fully tested. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysmore cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daystree.sh: remove redundant TODOLeah Rowe
infinite loop detection was here before. i removed it because it was bloat. we don't take general user input here, so careful configuration is all we need. infinite loops are harmless to the user. they are merely annoying. they would never be introduced to the user, because configs are always tested before release. before commit, even. we can save the user a few watts of electricity, or we can Keep It Simple. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysrom.sh: remove another TODOLeah Rowe
this one is unnecessary, because we're not taking general input from the user. we mitigate this carefully by being, you know, careful. implementing the TODO would have bloated the code, in ways that might only introduce other serious bugs. the current logic is fine, and great care will always be taken by me to keep the code safe, while i'm in charge. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysrom.sh: remove redundant TODOLeah Rowe
the code is correct. no TODO needed here. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysinit.sh: universally set git commit/auth dateLeah Rowe
do it as an export. to avoid pollution elsewhere, do it inside a subshell. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysinit.sh: set git committer date as wellLeah Rowe
only the author date was being set before with this change, at least on my system, i now get the same commit ID and date each time on the following test: NOTE: . is lbmk (main work directory) NOTE: here, we are copying the current clone git clone . lbmktest cd lbmktest ./mk version rm -Rf .git ./mk version git log same output each time. we have thus eliminated timestamps as a variable. this is but a part of in a series of changes that will eventually lead to libreboot being built reproducibly. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysinit.sh: portable date on git-initLeah Rowe
don't even call the date util at all, to fix the portability issues. now we don't need GNU date anymore. git itself can just take an epoch, and it will do whatever it will do. yes. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysinit.sh: don't check PATH on startupLeah Rowe
even if i unset PATH before running lbmk, it is reinitialised because of the shebang. if no PATH exists, then it's either a broken system and you have bigger problems, or you have some weird system that uses something else. our job is not to fix the world. there was no scenario in which this check would even trigger an error or fallback, so just remove it. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysxbmk: re-introduce condensed if statementsLeah Rowe
i've been careful to makely only use it on AND operations, not onse that use OR. a lot of blocks are not condensed, unlike previously when this design was used. i removed the condensed design because it made the code allegedly easier to read, but i found it harder to read and found the code looked dirty. this change makes it clean again, but i've done it in a way where the shorthand conditional statements are easy to understand for most people. this strikes a compromise; i would go further. Signed-off-by: Leah Rowe <leah@libreboot.org>
10 daysxbmk: reintroduce setvar as newvar (init only)Leah Rowe
use the simpler logic recently introduced, generalised but it only sets variables to empty. this is safer than the previous design, and brings the same reduction in sloccount overall since i wasn't doing anything other than emptying variables anyway, when it was used before. i didn't like the long list of variables inside files, so this makes everything more readable. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysinject.sh: simplify xbmkcheck initialisationLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysinject.sh: re-order variablesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysmk: add error exitLeah Rowe
not needed at the moment, since we ensure that the functions always exit with error under fault condition. they always return zero. nevertheless, this might catch some unexpected behaviour in the future. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysmk: remove redundant xrval variableLeah Rowe
not needed. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysmk: remove redundant set commandLeah Rowe
we exit immediately afterward, so there's no point in putting this here. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysmk: major code cleanupLeah Rowe
we don't need a main here. it's so generic that we can just leave it really small like it is now. now it's much clearer what it actually does. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysmk: simplified command checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysxbmk: use proper shebangLeah Rowe
env isn't that useful these days. better just use the standard declaration. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysinit.sh: much more thorough locale initialisationLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysupdate header againLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysxbmk: remove setvars functionLeah Rowe
only one file used it. i've replaced its use with a simple awk call alongside eval. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysmk: make it completely genericLeah Rowe
commands now fed from a file, include/common.sh which in turn also includes other lib files this makes mk completely generic, and means that changes will now be completely in sync with cbmk, ensuring a lack of merge conflicts, though the file was already pretty small anyway. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 daysmk: make xbcddir usage clearerLeah Rowe
it's always a directory, so filter it first Signed-off-by: Leah Rowe <leah@libreboot.org>