1 contributor
Files with name endind by .hangar are sourced (bash syntax).
Please have a look into the two provided to check how it is done
Each file must contains:
- variable `hangar` definition as an associative array with at least the
following keys:
name: the human identifier of the hangar
url: the url of the remote repository this is the unique identifier for
each hangar, can't be the same in more than one hangar)
type: the type of repo (git, svn, ...) at the moment, only git and svn
repos are known and verified by installation status routine
path: the local path in which the remote repo (or part of it) is cloned
active: is the hangar active (1) or not (0)
- function `parse_repo_history` which describes how to get the hangar content
(initial import and updates)
- function `getfromrepo` which describes how to get
- optional function `on_exit` to describe what to do when exiting the hangar
Some functions are provided by the main script to ease the database management:
- add_record <key> <value>
this function record the key with the value, these
keys are intended to be information for aircraft.
Mandatory keys are:
name : the name of the aircraft
revision : the revision from the repo
date : date of the last update
author : author of the commit
- get_record [key]
returns the value recorded for the key if no key is
provided, prints all the recorded keys in the form:
key1 = value1
key2 = value2
... (maybe useful for debugging)
- add_aircraft
adds aircraft in the database in a buffer table, ready to be
integrated into the main aircrafts table by using `apply_revision` function.
If one or more of the mandatory keys as decribed in `add_record` is or are
missing, the function may exit as an error and the the whole script exits
- add_setxml_for_aircraft <aircraft> <-set.xml file>
add in special buffer table the -set.xml entry for aircraft
the trailing "-set.xml" is removed if found
- xmlgetnext
in a while loop to read the XML content of a file, export $TAG
(formatted) and $VALUE (not formatted) By design the first couple TAG/VALUE is
always empty, some files have an unidentified issue that make enter teh while
loop in an infinite loop. To avoid this, please use the following syntax:
unset xmlgetnext_empty_tag
while xmlgetnext; do
# PUT HERE YOUR STUFF
done < /your/xml/file
- sqlite_request <SQLite request>
perform the request on database (actually in
a copied database which will be dumped into the original at the end of
the script).
Don't touch the original database, and always use this
wrapper, unless you will lose your changes at the end.
Moreover this wrapper write in a file /dev/shm/sqlite_request all the
requests, so it is useful to debug, or just watch what is doing
- apply_revision
use the buffered tables to feed the main tables with all the
information it will find by parsing the new or updated aircrafts config files
Some variables are available
- $latest_revision the revision to starts the history remote retrieving,
defaults to 1
- $tempid a single identifer to create temporary files (useful to get all the
files generated by the script ending with the same ID)
Enjoy adding your preferred hangar :)