jex docs push thing command done

This commit is contained in:
Foo Bar
2022-11-20 21:25:49 -07:00
parent 86d0501b90
commit c260c090d9
+86 -59
View File
@@ -11,7 +11,7 @@
-module(jex). -module(jex).
-vsn("0.1.0"). -vsn("0.1.0").
-export([start/1]). -export([start/1]).
-compile(export_all). -compile([export_all, nowarn_export_all]).
-include("$zx_include/zx_logger.hrl"). -include("$zx_include/zx_logger.hrl").
@@ -29,65 +29,77 @@ help() ->
io:format("~ts~n", [help_screen()]). io:format("~ts~n", [help_screen()]).
% TODONE: make tsdocs
% TODONE: jex pull
% TODO: delete before mindist
% TODO: delete before push
% TODO: delete before pushdocs
% TODO: jex viewdocs [port]
% TODO: make fulldist tarballs
% TODO: be smart about creating jex_include % TODO: be smart about creating jex_include
% TODO: make mindist tarballs % TODO: make mindist tarballs
% TODO: make fulldist tarballs
% TODO: make tsdocs
% TODO: jex pull
% TODO: hints about where to find packages
% TODO: tarball shas % TODO: tarball shas
% TODO: tarball signatures % TODO: tarball signatures
% TODO: tarball signatures % TODO: jex install
help_screen() -> help_screen() ->
["Jex: simple JavaScript packaging system\n" ["Jex: simple JavaScript packaging system\n"
"\n" "\n"
"COMMANDS:\n" "COMMANDS:\n"
" man show the manual\n" " man show the manual\n"
" dwim- init, pull, build\n" " dwim- init, pull, build\n"
" dwim+ init, pull, build, mindist, push\n" " dwim+ init, pull, build, mindist, push\n"
" cfgbarf barf out the jex.eterms file (mostly to make sure it parses correctly)\n" " dwim++ init, pull, build, mindist, push, mkdocs, pushdocs\n"
" echo home echo $HOME\n" " cfgbarf barf out the jex.eterms file (mostly to make sure it parses correctly)\n"
" echo jexdir echo $HOME/.jex\n" " echo home echo $HOME\n"
" echo devdir echo $HOME/.jex/dev\n" " echo jexdir echo $HOME/.jex\n"
" echo pkgname name of current package\n" " echo devdir echo $HOME/.jex/dev\n"
" echo pkgdir echo $HOME/.jex/dev/realm-name-X.Y.Z\n" " echo docsdir echo $HOME/.jex/docs\n"
" echo deps list dependencies of current package\n" " echo pkgname name of current package\n"
" echo pathof PKG list the path to PKG or \n" " echo pkg_devdir echo $HOME/.jex/dev/realm-name-X.Y.Z\n"
" init mkdir -p $HOME/.jex/dev\n" " echo pkg_docsdir echo $HOME/.jex/docs/realm-name-X.Y.Z\n"
" build tsc && cp -r ./src/jex_include ./dist/\n" " echo deps list dependencies of current package\n"
" -w, --weak continue building even if tsc fails\n" " echo pathof PKG list the path to PKG or \n"
" -f, --force use cp -rf instead of cp -r\n" " init mkdir -p $HOME/.jex/dev\n"
" mindist mkdir jex_mindist && cp -r src jex_mindist && cp -r dist jex_mindist && rm -r jex_mindist/src/jex_include\n" " build tsc && cp -r ./src/jex_include ./dist/\n"
" -f, --force use cp -rf instead of cp -r\n" " -w, --weak continue building even if tsc fails\n"
" push rsync -a jex_mindist/ PKGDIR\n" " -f, --force use cp -rf instead of cp -r\n"
" ls ls $HOME/.jex/dev\n" " mindist mkdir jex_mindist && cp -r src jex_mindist && cp -r dist jex_mindist && rm -r jex_mindist/src/jex_include\n"
" tree tree $HOME/.jex/\n" " -f, --force use cp -rf instead of cp -r\n"
" rmpkg PKG rm -r $HOME/.jex/dev/PKG\n" " push rsync -a jex_mindist/ PKG_DEVDIR\n"
" pull pull each dependency into src/jx_include\n" " mkdocs (maybe run dwim- first) npx typedoc\n"
" mkdocs (maybe run dwim- first) npx typedoc\n" " pushdocs rsync -a docs/ PKG_DOCSDIR\n"
" ls ls $HOME/.jex/dev\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(["man"]) -> man(); dispatch(["man"]) -> man();
dispatch(["dwim-"]) -> dwim(minus); dispatch(["dwim-"]) -> dwim(minus);
dispatch(["dwim+"]) -> dwim(plus); dispatch(["dwim+"]) -> dwim(plus);
dispatch(["cfgbarf"]) -> cfgbarf(); dispatch(["dwim++"]) -> dwim(plus_plus);
dispatch(["echo", "home"]) -> echo(home); dispatch(["cfgbarf"]) -> cfgbarf();
dispatch(["echo", "jexdir"]) -> echo(jexdir); dispatch(["echo", "home"]) -> echo(home);
dispatch(["echo", "devdir"]) -> echo(devdir); dispatch(["echo", "jexdir"]) -> echo(jexdir);
dispatch(["echo", "pkgname"]) -> echo(pkgname); dispatch(["echo", "devdir"]) -> echo(devdir);
dispatch(["echo", "pkgdir"]) -> echo(pkgdir); dispatch(["echo", "docsdir"]) -> echo(docsdir);
dispatch(["echo", "deps"]) -> echo(deps); dispatch(["echo", "pkgname"]) -> echo(pkgname);
dispatch(["init"]) -> init(); dispatch(["echo", "pkg_devdir"]) -> echo(pkg_devdir);
dispatch(["build" | Opts]) -> build(Opts); dispatch(["echo", "pkg_docsdir"]) -> echo(pkg_docsdir);
dispatch(["mindist" | Opts]) -> mindist(Opts); dispatch(["echo", "deps"]) -> echo(deps);
dispatch(["push"]) -> push(); dispatch(["init"]) -> init();
dispatch(["ls"]) -> ls(); dispatch(["build" | Opts]) -> build(Opts);
dispatch(["tree"]) -> tree(); dispatch(["mindist" | Opts]) -> mindist(Opts);
dispatch(["rmpkg", Pkg]) -> rmpkg(Pkg); dispatch(["push"]) -> push();
dispatch(["mkdocs"]) -> mkdocs();
dispatch(["pushdocs"]) -> pushdocs();
dispatch(["ls"]) -> ls();
dispatch(["tree"]) -> tree();
dispatch(["rmpkg", Pkg]) -> rmpkg(Pkg);
dispatch(["pull"]) -> pull(); dispatch(["pull"]) -> pull();
dispatch(["mkdocs"]) -> mkdocs();
dispatch(_) -> help(). dispatch(_) -> help().
@@ -115,7 +127,11 @@ dwim(minus) ->
dwim(plus) -> dwim(plus) ->
dwim(minus), dwim(minus),
mindist([]), mindist([]),
push(). push();
dwim(plus_plus) ->
dwim(plus),
mkdocs(),
pushdocs().
%%----------------------------------------------------------------------------- %%-----------------------------------------------------------------------------
@@ -139,10 +155,14 @@ echo(jexdir) ->
tell(info, "~ts", [jexdir()]); tell(info, "~ts", [jexdir()]);
echo(devdir) -> echo(devdir) ->
tell(info, "~ts", [devdir()]); tell(info, "~ts", [devdir()]);
echo(docsdir) ->
tell(info, "~ts", [docsdir()]);
echo(pkgname) -> echo(pkgname) ->
tell(info, "~ts", [pkgname()]); tell(info, "~ts", [pkgname()]);
echo(pkgdir) -> echo(pkg_devdir) ->
tell(info, "~ts", [pkgdir()]); tell(info, "~ts", [pkg_devdir()]);
echo(pkg_docsdir) ->
tell(info, "~ts", [pkg_docsdir()]);
echo(deps) -> echo(deps) ->
PrintDep = PrintDep =
fun(Dep) -> fun(Dep) ->
@@ -166,6 +186,8 @@ jexdir() ->
devdir() -> devdir() ->
filename:join(jexdir(), "dev"). filename:join(jexdir(), "dev").
docsdir() ->
filename:join(jexdir(), "docs").
pkgname() -> pkgname() ->
{ok, Cfg} = cfg(), {ok, Cfg} = cfg(),
@@ -174,9 +196,11 @@ pkgname() ->
Vsn = proplists:get_value(version, Cfg), Vsn = proplists:get_value(version, Cfg),
io_lib:format("~tp-~tp-~ts", [Realm, Name, Vsn]). io_lib:format("~tp-~tp-~ts", [Realm, Name, Vsn]).
pkgdir() -> pkg_devdir() ->
filename:join(devdir(), pkgname()). filename:join(devdir(), pkgname()).
pkg_docsdir() ->
filename:join([docsdir(), pkgname()]).
deps() -> deps() ->
{ok, Cfg} = cfg(), {ok, Cfg} = cfg(),
@@ -208,9 +232,8 @@ file_exists(Filename) ->
%%----------------------------------------------------------------------------- %%-----------------------------------------------------------------------------
init() -> init() ->
DevDir = devdir(), _ = cmd(["mkdir -p ", devdir()]),
Cmd = io_lib:format("mkdir -p ~ts", [DevDir]), _ = cmd(["mkdir -p ", docsdir()]),
_ = cmd(Cmd),
ok. ok.
@@ -257,10 +280,6 @@ mindist(Opts) ->
_ = cmd("mkdir -p jex_mindist"), _ = cmd("mkdir -p jex_mindist"),
_ = mindist_cp(Force), _ = mindist_cp(Force),
_ = cmd("rm -r jex_mindist/src/jex_include"), _ = cmd("rm -r jex_mindist/src/jex_include"),
PkgName = pkgname(),
_ = cmd(["mv jex_mindist ", PkgName]),
_ = cmd(["tar czvf ", PkgName, ".tar.gz ", PkgName]),
_ = cmd(["rm -r ", PkgName]),
ok. ok.
mindist_cp(dont_force) -> mindist_cp(dont_force) ->
@@ -279,7 +298,7 @@ mindist_cp(force) ->
%%----------------------------------------------------------------------------- %%-----------------------------------------------------------------------------
push() -> push() ->
_ = cmd(io_lib:format("rsync -avv jex_mindist/ ~ts", [pkgdir()])), _ = cmd(io_lib:format("rsync -avv jex_mindist/ ~ts", [pkg_devdir()])),
ok. ok.
@@ -338,6 +357,14 @@ mkdocs() ->
_ = cmd("npx typedoc --entryPointStrategy expand --sort source-order src"), _ = cmd("npx typedoc --entryPointStrategy expand --sort source-order src"),
ok. ok.
%%-----------------------------------------------------------------------------
%% jex pushdocs
%%-----------------------------------------------------------------------------
pushdocs() ->
_ = cmd(["rsync -avv docs/ ", pkg_docsdir()]),
ok.
%%----------------------------------------------------------------------------- %%-----------------------------------------------------------------------------
%% INTERNALS %% INTERNALS
%%----------------------------------------------------------------------------- %%-----------------------------------------------------------------------------