180 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			180 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# fallback to no config
 | 
						|
if [ -z "$HOME/.lenv" ]
 | 
						|
then
 | 
						|
    echo "_env=dev" > $HOME/.lenv
 | 
						|
    echo "_dir=$HOME/src/luakit-dev" >> $HOME/.lenv
 | 
						|
fi
 | 
						|
 | 
						|
# load config
 | 
						|
. $HOME/.lenv
 | 
						|
_action="$1"
 | 
						|
shift
 | 
						|
 | 
						|
# validation
 | 
						|
if [ -z "$_env" ] || [ -z "$_dir" ]
 | 
						|
then
 | 
						|
    echo "Incomplete environment"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
if [ -z "$_action" ]
 | 
						|
then
 | 
						|
    echo "No action provided"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# now we can start...
 | 
						|
echo "luakit-$_env: perform $_action $@ (in $_dir)" | xargs
 | 
						|
 | 
						|
# change into environment
 | 
						|
mkdir -p "$_dir"
 | 
						|
_oldpwd="$PWD"
 | 
						|
cd "$_dir"
 | 
						|
 | 
						|
# perform actions
 | 
						|
if [ "$_action" == "help" ] || [ "$_action" == "h" ]
 | 
						|
then
 | 
						|
    echo "usage: l action [args]"
 | 
						|
    echo "  actions:"
 | 
						|
    echo "      make                    - build luakit"
 | 
						|
    echo "      remake                  - make with -j1 (for debugging)"
 | 
						|
    echo "      test [test]             - run luakit test suite [specific test]"
 | 
						|
    echo "      debug [luakit args]     - start in gdb, stop in main"
 | 
						|
    echo "      pr [numbers]            - show [pull] PR from luakit/luakit repo"
 | 
						|
    echo "      update                  - update/rebase repository"
 | 
						|
    echo "      reset                   - recreate environment ($_dir)"
 | 
						|
    echo "      diff file env           - diff file with other environment"
 | 
						|
    echo "      update-port             - update openbsd port from last commit"
 | 
						|
    echo
 | 
						|
    echo " other commands:"
 | 
						|
    echo "      ledit                   - edit this script"
 | 
						|
    echo "      ldev                    - switch to dev environment (c0dev0id/luakit)"
 | 
						|
    echo "      ltest                   - switch to test environment (luakit/luakit)"
 | 
						|
    echo "      ltemp                   - switch to temp environment (luakit/luakit)"
 | 
						|
    echo
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
if [ "$_action" == "test" ]
 | 
						|
then
 | 
						|
    export G_ENABLE_DIAGNOSTIC=1;
 | 
						|
    luajit tests/run_test.lua $@;
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "make" ]
 | 
						|
then
 | 
						|
    set -x
 | 
						|
    gmake clean
 | 
						|
    gmake options
 | 
						|
    gmake -j 8 luakit
 | 
						|
    gmake tests/util.so
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "remake" ]
 | 
						|
then
 | 
						|
    gmake -j1 luakit
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "debug" ]
 | 
						|
then
 | 
						|
    egdb -ex "break luakit.c:main" -ex "run $@" ./luakit
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "reset" ]
 | 
						|
then
 | 
						|
    if [ "$_env" == "dev" ]
 | 
						|
    then
 | 
						|
        cd /tmp
 | 
						|
        rm -rf "$_dir"
 | 
						|
        git clone git@github.com:c0dev0id/luakit "$_dir"
 | 
						|
        cd "$_dir"
 | 
						|
        set -xe
 | 
						|
        git remote add upstream git@github.com:luakit/luakit
 | 
						|
        git fetch upstream
 | 
						|
        git checkout develop
 | 
						|
        git rebase upstream/develop
 | 
						|
        git switch -c patch
 | 
						|
        set +xe
 | 
						|
    else
 | 
						|
        cd /tmp
 | 
						|
        rm -rf "$_dir"
 | 
						|
        git clone git@github.com:luakit/luakit "$_dir"
 | 
						|
        cd "$_dir"
 | 
						|
    fi
 | 
						|
fi
 | 
						|
if [ "$_action" == "update" ]
 | 
						|
then
 | 
						|
    set -xe
 | 
						|
    if [ "$_env" == "dev" ]
 | 
						|
    then
 | 
						|
        git fetch --all
 | 
						|
        git checkout develop
 | 
						|
        git rebase upstream/develop --autostash
 | 
						|
        git checkout -
 | 
						|
    else
 | 
						|
        git checkout develop
 | 
						|
        git fetch --all
 | 
						|
        git rebase origin/develop
 | 
						|
    fi
 | 
						|
    set +xe
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "diff" ]
 | 
						|
then
 | 
						|
    if test -z "$1" || test -z "$2"
 | 
						|
    then
 | 
						|
        echo "args: <file> <env>"
 | 
						|
        exit 1
 | 
						|
    fi
 | 
						|
    set -x
 | 
						|
    f="$(readlink -f $_oldpwd/$1)"
 | 
						|
    f="${f#$_dir}"
 | 
						|
    vimdiff "$_dir/$f" "${_dir%$_env}$2/$f"
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "diffdir" ]
 | 
						|
then
 | 
						|
    if test -z "$1" || test -z "$2"
 | 
						|
    then
 | 
						|
        echo "args: <commits> <env>"
 | 
						|
        exit 1
 | 
						|
    fi
 | 
						|
    flist="$(git --no-pager whatchanged \
 | 
						|
                           --oneline \
 | 
						|
                           --pretty=format:'' ...HEAD~$1 \
 | 
						|
                               | cut -d"M" -f2- \
 | 
						|
                               | sort -u \
 | 
						|
                               | xargs)"
 | 
						|
    for file in $flist
 | 
						|
    do
 | 
						|
        f="$(readlink -f $_oldpwd/$file)"
 | 
						|
        f="${file#$_dir}"
 | 
						|
        vimdiff "$_dir/$f" "${_dir%$_env}$2/$f"
 | 
						|
    done
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "pr" ]
 | 
						|
then
 | 
						|
    if [ -n "$1" ]
 | 
						|
    then
 | 
						|
        for pr in $@
 | 
						|
            do gh pr checkout $pr
 | 
						|
        done
 | 
						|
    else
 | 
						|
        gh pr --repo luakit/luakit list $@ | cat
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$_action" == "update-port" ]
 | 
						|
then
 | 
						|
    cd /usr/ports/mystuff/www/luakit
 | 
						|
    commit="$(basename $(gh browse --repo luakit/luakit -c -n))"
 | 
						|
    sed -i "s/^COMMIT =.*/COMMIT = $commit/" Makefile
 | 
						|
    make clean=all
 | 
						|
    portbump
 | 
						|
    make makesum
 | 
						|
    make reinstall
 | 
						|
fi
 | 
						|
 |