Version 0.3: support projects through rudimentary "plugins"
- Allows to add a project by just adding custom definitions to projects/<project>.sh - Except for cases that haven't been anticipated yet, modifying common code should no longer be needed Signed-off-by: Michael Opdenacker <michael.opdenacker@free-electrons.com>
This commit is contained in:
parent
40f8e8073d
commit
e732c6a295
8 changed files with 230 additions and 144 deletions
19
projects/barebox.sh
Normal file
19
projects/barebox.sh
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Elixir definitions for Barebox
|
||||||
|
|
||||||
|
list_tags_h()
|
||||||
|
{
|
||||||
|
echo "$tags" |
|
||||||
|
grep '^v20' |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^(v20..)(.*)$/new \1 \1\2/'
|
||||||
|
|
||||||
|
echo "$tags" |
|
||||||
|
grep '^v2\.0' |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^(v2\.0)(.*)$/old \1 \1\2/'
|
||||||
|
|
||||||
|
echo "$tags" |
|
||||||
|
grep '^freescale' |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^(freescale)(.*)$/old \1 \1\2/'
|
||||||
|
}
|
||||||
19
projects/busybox.sh
Normal file
19
projects/busybox.sh
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Elixir definitions for BusyBox
|
||||||
|
|
||||||
|
version_dir()
|
||||||
|
{
|
||||||
|
tr '_.' '._';
|
||||||
|
}
|
||||||
|
|
||||||
|
version_rev()
|
||||||
|
{
|
||||||
|
tr '._' '_.';
|
||||||
|
}
|
||||||
|
|
||||||
|
list_tags_h()
|
||||||
|
{
|
||||||
|
echo "$tags" |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^([0-9])\.([0-9]*)(.*)$/v\1 \1.\2 \1.\2\3/'
|
||||||
|
}
|
||||||
|
|
||||||
8
projects/linux.sh
Normal file
8
projects/linux.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Elixir definitions for Linux
|
||||||
|
|
||||||
|
list_tags_h()
|
||||||
|
{
|
||||||
|
echo "$tags" |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^(((v2.6)\.([0-9]*)(.*))|(v[0-9])\.([0-9]*)(.*))$/\3\6 \3\6.\4\7 \3\6.\4\7\5\8/'
|
||||||
|
}
|
||||||
9
projects/musl.sh
Normal file
9
projects/musl.sh
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Elixir definitions for Musl
|
||||||
|
|
||||||
|
list_tags_h()
|
||||||
|
{
|
||||||
|
echo "$tags" |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^(v[0-9])\.([0-9]*)(.*)$/\1 \1.\2 \1.\2\3/'
|
||||||
|
}
|
||||||
|
|
||||||
19
projects/u-boot.sh
Normal file
19
projects/u-boot.sh
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Elixir definitions for U-Boot
|
||||||
|
|
||||||
|
list_tags_h()
|
||||||
|
{
|
||||||
|
echo "$tags" |
|
||||||
|
grep '^v20' |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^(v20..)(.*)$/new \1 \1\2/'
|
||||||
|
|
||||||
|
echo "$tags" |
|
||||||
|
grep -E '^(v1|U)' |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^/old by-version /'
|
||||||
|
|
||||||
|
echo "$tags" |
|
||||||
|
grep -E '^(LABEL|DENX)' |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^/old by-date /'
|
||||||
|
}
|
||||||
20
projects/zephyr.sh
Normal file
20
projects/zephyr.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Elixir definitions for Zephyr
|
||||||
|
|
||||||
|
list_tags()
|
||||||
|
{
|
||||||
|
echo "$tags" |
|
||||||
|
grep -v '^zephyr-v'
|
||||||
|
}
|
||||||
|
|
||||||
|
list_tags_h()
|
||||||
|
{
|
||||||
|
echo "$tags" |
|
||||||
|
grep -v '^zephyr-v' |
|
||||||
|
tac |
|
||||||
|
sed -r 's/^(v[0-9])\.([0-9]*)(.*)$/\1 \1.\2 \1.\2\3/'
|
||||||
|
}
|
||||||
|
|
||||||
|
get_latest()
|
||||||
|
{
|
||||||
|
git tag | grep -v '^zephyr-v' | version_dir | grep -v '\-rc' | sort -V | tail -n 1
|
||||||
|
}
|
||||||
278
script.sh
278
script.sh
|
|
@ -23,11 +23,133 @@ if [ ! -d "$LXR_REPO_DIR" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
version_dir()
|
||||||
|
{
|
||||||
|
cat;
|
||||||
|
}
|
||||||
|
|
||||||
|
version_rev()
|
||||||
|
{
|
||||||
|
cat;
|
||||||
|
}
|
||||||
|
|
||||||
|
get_tags()
|
||||||
|
{
|
||||||
|
git tag |
|
||||||
|
version_dir |
|
||||||
|
sed 's/$/.0/' |
|
||||||
|
sort -V |
|
||||||
|
sed 's/\.0$//'
|
||||||
|
}
|
||||||
|
|
||||||
|
list_tags()
|
||||||
|
{
|
||||||
|
echo "$tags"
|
||||||
|
}
|
||||||
|
|
||||||
|
list_tags_h()
|
||||||
|
{
|
||||||
|
tac |
|
||||||
|
sed -r 's/^/XXX XXX /';
|
||||||
|
}
|
||||||
|
|
||||||
|
get_latest()
|
||||||
|
{
|
||||||
|
git tag | version_dir | grep -v '\-rc' | sort -V | tail -n 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get_type()
|
||||||
|
{
|
||||||
|
v=`echo $opt1 | version_rev`
|
||||||
|
git cat-file -t "$v:`denormalize $opt2`" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
get_blob()
|
||||||
|
{
|
||||||
|
git cat-file blob $opt1
|
||||||
|
}
|
||||||
|
|
||||||
|
get_file()
|
||||||
|
{
|
||||||
|
v=`echo $opt1 | version_rev`
|
||||||
|
git cat-file blob "$v:`denormalize $opt2`" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
get_dir()
|
||||||
|
{
|
||||||
|
v=`echo $opt1 | version_rev`
|
||||||
|
git ls-tree -l "$v:`denormalize $opt2`" 2>/dev/null |
|
||||||
|
awk '{print $2" "$5" "$4}' |
|
||||||
|
grep -v ' \.' |
|
||||||
|
sort -t ' ' -k 1,1r -k 2,2
|
||||||
|
}
|
||||||
|
|
||||||
|
tokenize_file()
|
||||||
|
{
|
||||||
|
if [ "$opt1" = -b ]; then
|
||||||
|
ref=$opt2
|
||||||
|
else
|
||||||
|
v=`echo $opt1 | version_rev`
|
||||||
|
ref="$v:`denormalize $opt2`"
|
||||||
|
fi
|
||||||
|
|
||||||
|
git cat-file blob $ref 2>/dev/null |
|
||||||
|
tr '\n' '\1' |
|
||||||
|
perl -pe 's%((/\*.*?\*/|//.*?\001|"(\\.|.)*?"|# *include *<.*?>|\W)+)(\w+)?%\1\n\4\n%g' |
|
||||||
|
head -n -1
|
||||||
|
}
|
||||||
|
|
||||||
|
list_blobs()
|
||||||
|
{
|
||||||
|
v=`echo $opt2 | version_rev`
|
||||||
|
|
||||||
|
if [ "$opt1" = '-p' ]; then
|
||||||
|
format='\1 \2'
|
||||||
|
elif [ "$opt1" = '-f' ]; then
|
||||||
|
format='\1 \4'
|
||||||
|
else
|
||||||
|
format='\1'
|
||||||
|
v=`echo $opt1 | version_rev`
|
||||||
|
fi
|
||||||
|
|
||||||
|
git ls-tree -r "$v" |
|
||||||
|
sed -r "s/^\S* blob (\S*)\t(([^/]*\/)*(.*))$/$format/; /^\S* commit .*$/d"
|
||||||
|
}
|
||||||
|
|
||||||
|
untokenize()
|
||||||
|
{
|
||||||
|
tr -d '\n' |
|
||||||
|
sed 's/>/\*\//g' |
|
||||||
|
sed 's/</\/\*/g' |
|
||||||
|
tr '\1\2\3' '\n<>'
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_defs()
|
||||||
|
{
|
||||||
|
tmp=`mktemp -d`
|
||||||
|
full_path=$tmp/$opt2
|
||||||
|
git cat-file blob "$opt1" > "$full_path"
|
||||||
|
ctags -x --c-kinds=+p-m "$full_path" |
|
||||||
|
grep -av "^operator " |
|
||||||
|
awk '{print $1" "$2" "$3}'
|
||||||
|
rm "$full_path"
|
||||||
|
rmdir $tmp
|
||||||
|
}
|
||||||
|
|
||||||
|
project=$(basename `dirname $LXR_REPO_DIR`)
|
||||||
|
|
||||||
|
plugin=projects/$project.sh
|
||||||
|
if [ -f "$plugin" ] ; then
|
||||||
|
. $plugin
|
||||||
|
fi
|
||||||
|
|
||||||
cd "$LXR_REPO_DIR"
|
cd "$LXR_REPO_DIR"
|
||||||
|
|
||||||
test $# -gt 0 || set help
|
test $# -gt 0 || set help
|
||||||
|
|
||||||
cmd=$1
|
cmd=$1
|
||||||
|
opt1=$2
|
||||||
|
opt2=$3
|
||||||
shift
|
shift
|
||||||
|
|
||||||
denormalize()
|
denormalize()
|
||||||
|
|
@ -35,181 +157,51 @@ denormalize()
|
||||||
echo $1 | cut -c 2-
|
echo $1 | cut -c 2-
|
||||||
}
|
}
|
||||||
|
|
||||||
project=$(basename `dirname $LXR_REPO_DIR`)
|
|
||||||
|
|
||||||
case $project in
|
|
||||||
busybox)
|
|
||||||
version_dir() { tr '_.' '._'; }
|
|
||||||
version_rev() { tr '._' '_.'; }
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
version_dir() { cat; }
|
|
||||||
version_rev() { cat; }
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $cmd in
|
case $cmd in
|
||||||
list-tags)
|
list-tags)
|
||||||
tags=$(
|
tags=`get_tags`
|
||||||
git tag |
|
|
||||||
version_dir |
|
|
||||||
sed 's/$/.0/' |
|
|
||||||
sort -V |
|
|
||||||
sed 's/\.0$//'
|
|
||||||
)
|
|
||||||
if [ "$1" = '-h' ]; then
|
|
||||||
case $project in
|
|
||||||
linux)
|
|
||||||
echo "$tags" |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^(((v2.6)\.([0-9]*)(.*))|(v[0-9])\.([0-9]*)(.*))$/\3\6 \3\6.\4\7 \3\6.\4\7\5\8/'
|
|
||||||
;;
|
|
||||||
u-boot)
|
|
||||||
echo "$tags" |
|
|
||||||
grep '^v20' |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^(v20..)(.*)$/new \1 \1\2/'
|
|
||||||
|
|
||||||
echo "$tags" |
|
if [ "$opt1" = '-h' ]; then
|
||||||
grep -E '^(v1|U)' |
|
list_tags_h
|
||||||
tac |
|
|
||||||
sed -r 's/^/old by-version /'
|
|
||||||
|
|
||||||
echo "$tags" |
|
|
||||||
grep -E '^(LABEL|DENX)' |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^/old by-date /'
|
|
||||||
;;
|
|
||||||
barebox)
|
|
||||||
echo "$tags" |
|
|
||||||
grep '^v20' |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^(v20..)(.*)$/new \1 \1\2/'
|
|
||||||
|
|
||||||
echo "$tags" |
|
|
||||||
grep '^v2\.0' |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^(v2\.0)(.*)$/old \1 \1\2/'
|
|
||||||
|
|
||||||
echo "$tags" |
|
|
||||||
grep '^freescale' |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^(freescale)(.*)$/old \1 \1\2/'
|
|
||||||
;;
|
|
||||||
busybox)
|
|
||||||
echo "$tags" |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^([0-9])\.([0-9]*)(.*)$/v\1 \1.\2 \1.\2\3/'
|
|
||||||
;;
|
|
||||||
zephyr)
|
|
||||||
echo "$tags" |
|
|
||||||
grep -v '^zephyr-v' |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^(v[0-9])\.([0-9]*)(.*)$/\1 \1.\2 \1.\2\3/'
|
|
||||||
;;
|
|
||||||
musl)
|
|
||||||
echo "$tags" |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^(v[0-9])\.([0-9]*)(.*)$/\1 \1.\2 \1.\2\3/'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "$tags" |
|
|
||||||
tac |
|
|
||||||
sed -r 's/^/XXX XXX /'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
else
|
||||||
case $project in
|
list_tags
|
||||||
zephyr)
|
|
||||||
echo "$tags" |
|
|
||||||
grep -v '^zephyr-v'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "$tags"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
get-latest)
|
get-latest)
|
||||||
case $project in
|
get_latest
|
||||||
zephyr)
|
|
||||||
git tag | grep -v '^zephyr-v' | version_dir | grep -v '\-rc' | sort -V | tail -n 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
git tag | version_dir | grep -v '\-rc' | sort -V | tail -n 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
get-type)
|
get-type)
|
||||||
v=`echo $1 | version_rev`
|
get_type
|
||||||
git cat-file -t "$v:`denormalize $2`" 2>/dev/null
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
get-blob)
|
get-blob)
|
||||||
git cat-file blob $1
|
get_blob
|
||||||
;;
|
;;
|
||||||
|
|
||||||
get-file)
|
get-file)
|
||||||
v=`echo $1 | version_rev`
|
get_file
|
||||||
git cat-file blob "$v:`denormalize $2`" 2>/dev/null
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
get-dir)
|
get-dir)
|
||||||
v=`echo $1 | version_rev`
|
get_dir
|
||||||
git ls-tree -l "$v:`denormalize $2`" 2>/dev/null |
|
|
||||||
awk '{print $2" "$5" "$4}' |
|
|
||||||
grep -v ' \.' |
|
|
||||||
sort -t ' ' -k 1,1r -k 2,2
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
list-blobs)
|
list-blobs)
|
||||||
if [ "$1" = '-p' ]; then
|
list_blobs
|
||||||
format='\1 \2'
|
|
||||||
shift
|
|
||||||
elif [ "$1" = '-f' ]; then
|
|
||||||
format='\1 \4'
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
format='\1'
|
|
||||||
fi
|
|
||||||
|
|
||||||
v=`echo $1 | version_rev`
|
|
||||||
git ls-tree -r "$v" |
|
|
||||||
sed -r "s/^\S* blob (\S*)\t(([^/]*\/)*(.*))$/$format/; /^\S* commit .*$/d"
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
tokenize-file)
|
tokenize-file)
|
||||||
if [ "$1" = -b ]; then
|
tokenize_file
|
||||||
ref=$2
|
|
||||||
else
|
|
||||||
v=`echo $1 | version_rev`
|
|
||||||
ref="$v:`denormalize $2`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
git cat-file blob $ref 2>/dev/null |
|
|
||||||
tr '\n' '\1' |
|
|
||||||
perl -pe 's%((/\*.*?\*/|//.*?\001|"(\\.|.)*?"|# *include *<.*?>|\W)+)(\w+)?%\1\n\4\n%g' |
|
|
||||||
head -n -1
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
untokenize)
|
untokenize)
|
||||||
tr -d '\n' |
|
untokenize
|
||||||
sed 's/>/\*\//g' |
|
|
||||||
sed 's/</\/\*/g' |
|
|
||||||
tr '\1\2\3' '\n<>'
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
parse-defs)
|
parse-defs)
|
||||||
tmp=`mktemp -d`
|
parse_defs
|
||||||
full_path=$tmp/$2
|
|
||||||
git cat-file blob "$1" > "$full_path"
|
|
||||||
ctags -x --c-kinds=+p-m "$full_path" |
|
|
||||||
grep -av "^operator " |
|
|
||||||
awk '{print $1" "$2" "$3}'
|
|
||||||
rm "$full_path"
|
|
||||||
rmdir $tmp
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
help)
|
help)
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<span class="version"><a href="{{version}}/source">{{project}}</a> <em class="icon-tag">{{tag}}</em></span>
|
<span class="version"><a href="{{version}}/source">{{project}}</a> <em class="icon-tag">{{tag}}</em></span>
|
||||||
<a title="Go to top of the page" class="go-top icon-up screenreader" href="{{version}}/{{url}}#">Top</a>
|
<a title="Go to top of the page" class="go-top icon-up screenreader" href="{{version}}/{{url}}#">Top</a>
|
||||||
<span class="poweredby">powered by <a target="_blank" href="https://github.com/free-electrons/elixir">Elixir 0.2</a></span>
|
<span class="poweredby">powered by <a target="_blank" href="https://github.com/free-electrons/elixir">Elixir 0.3</a></span>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
<script src="/script.js?v=3"></script>
|
<script src="/script.js?v=3"></script>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue