hy/make.bat
Bob Tolbert df7bb1d29a Provide bin scripts for both Windows and *nix
Summary: This update does away with the scripts in bin and changes
setup.py to use entry_points in cmdline.py for the scripts 'hy' and
'hyc'.

This fixes installing and running on Windows.

The tests are updated to run the 'hy' script produced by setup.py
and not from bin/hy. This is more correct and makes the tox tests
run on both Window and *nix.

For running hy or nosetests directly in the source tree, you do have
to run 'python setup.py develop' first. But since tox runs and builds
dists, all tox tests pass on all platforms.

Also, since there is no built-in readline on Windows, the setup.py
only on Windows requires 'pyreadline' as a replacement.

Switched from optparse to argparse in cmdline.py

Instead of trying to manually separate args meant for
hy from args meant for a hy script, this switches from
optparse to argparse for the CLI.

argparse automatically peels out args meant for hy and leaves
the rest, including the user hy script in options.args.

This fixes the issue @paultag found running "hy foo" where
foo is not a real file. Also added a test that makes sure
trying to run a non-existent script exits instead of dropping
the user into the REPL.

Added argparse as setup.py resource (and removed from tox.ini) as well as removed uses of deprecated setf
2013-07-14 09:06:42 -06:00

116 lines
1.5 KiB
Batchfile

@ECHO OFF
REM Make batch file for Hy development
if "%1" == "" goto help
if "%1" == "help" (
:help
echo. No default step. Use setup.py
echo.
echo. Other targets:
echo.
echo. - docs
echo. - full
echo.
echo. - dev "test & flake"
echo. - flake
echo. - test
echo. - diff
echo. - tox
echo. - d
echo. - r
echo.
goto end
)
if "%1" == "docs" (
:docs
echo.docs not yet supported under Windows
goto :EOF
)
if "%1" == "upload" (
:upload
python setup.py sdist upload
goto :EOF
)
if "%1" == "clear" (
:clear
cls
goto :EOF
)
if "%1" == "d" (
:d
call :clear
call :dev
goto :EOF
)
if "%1" == "test" (
:test
call :venv
nosetests -sv
goto :EOF
)
if "%1" == "venv" (
:venv
echo.%VIRTUAL_ENV% | findstr /C:"hy" 1>nul
if errorlevel 1 (
echo.You're not in a Hy virtualenv. FOR SHAME
) ELSE (
echo.We're properly in a virtualenv. Going ahead.
)
goto :EOF
)
if "%1" == "flake" (
:flake
echo.flake8 hy
flake8 hy
goto :EOF
)
if "%1" == "dev" (
:dev
call :test
call :flake
goto :EOF
)
if "%1" == "tox" (
:tox
call :venv
tox -e "py26,py27,py32,py33,flake8"
goto :EOF
)
if "%1" == "d" (
:d
call :clear
call :dev
goto :EOF
)
if "%i" == "diff" (
:diff
git diff --color
goto :EOF
)
if "%1" == "r" (
:r
call :d
call :tox
call :diff
goto :EOF
)
if "%1" == full (
call :docs
call :d
call :tox
)