Browse Source

Added support for options

master
mid-kid 9 years ago
parent
commit
6282893862
  1. 52
      astronaut/astronaut
  2. 8
      astronaut/hello.sat

52
astronaut/astronaut

@ -9,7 +9,8 @@ dir_prefix="$dir_sysroot/usr" # Prefix directory (Should always contain $dir_sy
cmd_download="curl -# -L -o {dst} {src}" # Command to execute to download files cmd_download="curl -# -L -o {dst} {src}" # Command to execute to download files
cmd_extract="tar -x -C {dst} -f {src}" # Command to execute to extract files cmd_extract="tar -x -C {dst} -f {src}" # Command to execute to extract files
enable_check=true # Run the test suite of packages enable_check=true # Run the test suite of packages
unset dir_satellites # Directory where the satellite files are placed. unset _dir_satellites # Directory where the satellite files are placed.
unset _options
[ -f /etc/astronaut.conf ] && . /etc/astronaut.conf [ -f /etc/astronaut.conf ] && . /etc/astronaut.conf
[ -f "$HOME/.astronaut.conf" ] && . "$HOME/.astronaut.conf" [ -f "$HOME/.astronaut.conf" ] && . "$HOME/.astronaut.conf"
@ -23,7 +24,7 @@ vcs_compile=false
_show_help() { _show_help() {
echo "This astronaut will help you build some satellites. echo "This astronaut will help you build some satellites.
Just describe what he's got to do in a satellite file. Just describe what he's got to do in a satellite file.
Usage: $0 [-sbip <dir>] [-IcCd] <satellite> Usage: $0 [-sbip <dir>] [-IcCd] [-o <options>] <satellite>
-h/? Show this message -h/? Show this message
-b Set build directory [WARNING: Will be deleted before build] -b Set build directory [WARNING: Will be deleted before build]
@ -34,7 +35,8 @@ Usage: $0 [-sbip <dir>] [-IcCd] <satellite>
-I Nuke install directory before build -I Nuke install directory before build
-c/C Enable/Disable package checking -c/C Enable/Disable package checking
-d Only download package files -d Only download package files
-v Only build vcs package if any updates have been made to it" -v Only build vcs package if any updates have been made to it
-o Set package options (comma-separated)"
} }
_msg() { _msg() {
@ -47,7 +49,7 @@ _exiterr() {
} }
# Gather info # Gather info
while getopts "h?s:b:i:p:IcCdv" opt; do while getopts "h?s:b:i:p:IcCdvo:" opt; do
case "$opt" in case "$opt" in
h|\?) h|\?)
_show_help _show_help
@ -83,6 +85,9 @@ while getopts "h?s:b:i:p:IcCdv" opt; do
v) v)
_vcs_only=true _vcs_only=true
;; ;;
o)
_options="$_options "$(printf "$OPTARG" | sed -e 's/,/ /g')""
;;
esac esac
done done
@ -148,11 +153,40 @@ dlfile() {
do_check() { do_check() {
if [ "$1" ]; then if [ "$1" ]; then
[ "$enable_check" = true ] && $@ [ "$enable_check" = true ] && eval $@ || true
else else
[ "$enable_check" = true ] return $([ "$enable_check" = true ])
return $? fi
}
option() {
local check=$1
shift
local negate=false
case "$check" in
!*)
local negate=true
local check="$(printf "$check" | cut -c 2-)"
;;
esac
local enabled=false
local option
for option in $_options; do
if [ "$option" = "$check" ]; then
local enabled=true
break
fi
done
if [ "$negate" = true ]; then
# Shitty way to do a simple "NOT" operation (come on, it's just one operation on most cpus).
[ "$enabled" = true ] && local enabled=false || local enabled=true
fi fi
local enable_check=$enabled
do_check $@ # Reuse the code from do_check
} }
import() { import() {
@ -183,8 +217,8 @@ _satname="$(basename "$_satellite" .sat)"
# Try to find the satellite file if it can't be found. # Try to find the satellite file if it can't be found.
if [ ! -f "$_satellite" ]; then if [ ! -f "$_satellite" ]; then
if [ -d "$dir_satellites" ]; then if [ -d "$_dir_satellites" ]; then
file="$(find "$dir_satellites" -type f \( -name "$_satname.sat" -o -name "$_satname" \) -print -quit)" file="$(find "$_dir_satellites" -type f \( -name "$_satname.sat" -o -name "$_satname" \) -print -quit)"
if [ -f "$file" ]; then if [ -f "$file" ]; then
_satellite="$(realpath "$file")" _satellite="$(realpath "$file")"
_satname="$(basename "$_satellite" .sat)" _satname="$(basename "$_satellite" .sat)"

8
astronaut/hello.sat

@ -87,6 +87,14 @@ fi
make DESTDIR="$dir_install" install make DESTDIR="$dir_install" install
rm "$dir_install/$dir_prefix/share/info/dir" # This file collides with some other packages. rm "$dir_install/$dir_prefix/share/info/dir" # This file collides with some other packages.
# Check if an option is enabled
if option test; then
echo "Test option enabled"
fi
# Abbreviation of the above
#option !test echo "Test option disabled"
# You can use bangs ("!") to negate the operation.
# Call the function we imported. For more info see the top of the file, and functions/say_hello.sh # Call the function we imported. For more info see the top of the file, and functions/say_hello.sh
say_hello say_hello

Loading…
Cancel
Save