add jex dwim[-+] commands, and a README

This commit is contained in:
2022-10-12 01:18:35 -06:00
parent f8539b5495
commit 2d66768951
2 changed files with 73 additions and 4 deletions
+53
View File
@@ -0,0 +1,53 @@
# Jex: simple TypeScript/JavaScript packaging system
Jex is a simple packaging/dependency system for TypeScript/JavaScript
projects.
Jex is very much a work in progress, so these instructions are subject to
change.
As of now, Jex is a glorified shell script that automates a lot of the tedium
in building sidekick, JR, etc.
The long-term goal is to completely remove any dependency on NPM. NPM comes
with a lot of unfixable security issues that present an unacceptable risk in a
business context, which is the focus of the Vanillae project.
## Installation
1. `git clone https://github.com/aeternity/Vanillae.git`
2. [Install Erlang and zx](https://www.bitchute.com/video/1gCvcoPUR7eJ/)
3. Edit `~/.bashrc` (or `~/.zshrc` or whatever) and add
```
alias jex="zx rundir ~/path/to/Vanillae/utils/jex"
```
## Usage
```
Jex: simple JavaScript packaging system
COMMANDS:
dwim- init, pull, build
dwim+ init, pull, build, mindist, push
cfgbarf barf out the jex.eterms file (mostly to make sure it parses correctly)
echo home echo $HOME
echo jexdir echo $HOME/.jex
echo devdir echo $HOME/.jex/dev
echo pkgname name of current package
echo pkgdir echo $HOME/.jex/dev/realm-name-X.Y.Z
echo deps list dependencies of current package
echo pathof PKG list the path to PKG or
init mkdir -p $HOME/.jex/dev
build tsc && cp -r ./src/jex_include ./dist/
-w, --weak continue building even if tsc fails
-f, --force use cp -rf instead of cp -r
mindist mkdir jex_mindist && cp -r src jex_mindist && cp -r dist jex_mindist && rm -r jex_mindist/src/jex_include
-f, --force use cp -rf instead of cp -r
push rsync -a jex_mindist/ PKGDIR
ls ls $HOME/.jex/dev
tree tree $HOME/.jex/
rmpkg PKG rm -r $HOME/.jex/dev/PKG
pull pull each dependency into src/jx_include
```
+20 -4
View File
@@ -39,9 +39,11 @@ help() ->
% TODO: tarball signatures
help_screen() ->
["welcome to hell\n"
["Jex: simple JavaScript packaging system\n"
"\n"
"COMMANDS:\n"
" dwim- init, pull, build\n"
" dwim+ init, pull, build, mindist, push\n"
" cfgbarf barf out the jex.eterms file (mostly to make sure it parses correctly)\n"
" echo home echo $HOME\n"
" echo jexdir echo $HOME/.jex\n"
@@ -58,12 +60,14 @@ help_screen() ->
" -f, --force use cp -rf instead of cp -r\n"
" push rsync -a jex_mindist/ PKGDIR\n"
" ls ls $HOME/.jex/dev\n"
" jextree tree $HOME/.jex/\n"
" tree tree $HOME/.jex/\n"
" rmpkg PKG rm -r $HOME/.jex/dev/PKG\n"
" pull pull each dependency into src/jx_include\n"
].
dispatch(["dwim-"]) -> dwim(minus);
dispatch(["dwim+"]) -> dwim(plus);
dispatch(["cfgbarf"]) -> cfgbarf();
dispatch(["echo", "home"]) -> echo(home);
dispatch(["echo", "jexdir"]) -> echo(jexdir);
@@ -84,6 +88,18 @@ dispatch(_) -> help().
%%-----------------------------------------------------------------------------
%% jex dwim
%%-----------------------------------------------------------------------------
dwim(minus) ->
init(),
pull(),
build([]);
dwim(plus) ->
dwim(minus),
mindist([]),
push().
%%-----------------------------------------------------------------------------
@@ -228,8 +244,8 @@ mindist(Opts) ->
ok.
mindist_cp(dont_force) ->
_ = cmd("cp -rv src jex_mindist"),
_ = cmd("cp -rv dist jex_mindist"),
_ = cmd("rsync -avv --exclude=\"*.swp\" src jex_mindist"),
_ = cmd("cp -rv dist jex_mindist"),
ok;
mindist_cp(force) ->
_ = cmd("cp -rvf src jex_mindist"),