[build.sh] Rewritten to build help menus

[help/conditions] [help/general] [help/info] Initial version
[parser] Added support for help
This commit is contained in:
ayakael 2018-04-07 21:02:31 -04:00
parent dc6464ab54
commit 342d7d7eed
No known key found for this signature in database
GPG key ID: 575626A4AE5F4026
5 changed files with 80 additions and 6 deletions

View file

@ -1,11 +1,40 @@
#!/bin/bash
EXEC=dam
gen_help() {
for file in $(find help/ -type f -printf "%P\n"); do
echo -e "
# ${file} help
help_${file}() {
echo -e \""
cat help/${file}
echo -e "\"
}"
done
echo -e "#!/bin/bash\n" > ${EXEC}
}
for file in src/env $(find bunc/src -type f) $(find src/ -type f -not -name env -not -name parser) src/parser; do
awk '!/^ *#/ && NF' ${file} >> ${EXEC}
done
gen_env() {
echo -e "#!/bin/bash\n"
echo "VERSION=$(git describe --tags)"
awk '!/^ *#/ && NF' src/env
}
gen_function() {
functionList=(${@})
for function in ${functionList[@]}; do
awk '!/^ *#/ && NF' ${function}
done
}
gen_parser() {
awk '!/^ *#/ && NF' src/parser
}
gen_env > ${EXEC}
gen_help >> ${EXEC}
gen_function $(find src/ -type f -not -name env -not -name parser) >> ${EXEC}
gen_function $(find bunc/src/ -type f) >> ${EXEC}
gen_parser >> ${EXEC}
chmod +x ${EXEC}

17
help/conditions Normal file
View file

@ -0,0 +1,17 @@
Conditions
Note
Conditions are defined using the following format:
<metadatafield>=<value>
The metadta field can be anything that can be injected as metadta in a Vorbis tag.
Example
You want to exclude everything from "GENRE" "Pop":
dam exclude "GENRE=Pop"
...but want to keep Lady Gaga, just because
dam include "ARTIST=Lady Gaga"
...but not THAT album
dam exclude "ALBUM=THAT"

19
help/general Normal file
View file

@ -0,0 +1,19 @@
Usage: dam [--help] [--info] [<options>] <command> <args>
Options
--git-dir=</path/to/git/dir>
Defines path to git directory that contains the music collection. Defaults to current directory when not set.
Commands
update </path/to/target>
Populates database present in target folder with new images.
deploy </path/to/target>
Deploys tracks to target folder, with applies metadata and cover image
exclude </path/to/target> <condition> [<additional condition>]
Exclude tracks based on conditions (see dam --help conditions for more information)
include </path/to/target> <condition> [<additional condition>]
Include tracks based on conditions (see dam --help conditions for more information)
du </path/to/target>
Prints total projected disk usage of currently selected tracks
fsck </path/to/target>
Does a series of tests on target's database file

6
help/info Normal file
View file

@ -0,0 +1,6 @@
dam ${VERSION}
Copyright (c) 2018 Antoine Martin <antoine.martin@protonmail.com>
Distributed under the GNU Affero General Public License (AGPL v3)
See LICENSE or http://www.gnu.org/licenses/agpl.html

View file

@ -10,12 +10,15 @@ GIT_DIR="./"
while true; do
case ${1} in
--help)
help
shift
HELP="${1}"
[[ -z "${HELP}" ]] && HELP=general
eval help_${HELP}
exit
;;
--info)
help info
help_info
exit
;;