Skip to content

Commit 21623d3

Browse files
committed
Provide bsb -init proj-name support
for template configuration, please have a look at `jscomp/bsb/themes`
1 parent 837a877 commit 21623d3

29 files changed

+1924
-127
lines changed

Diff for: bin/bsb

+32-28
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,39 @@ var fs = require('fs')
66
var bsconfig = 'bsconfig.json'
77
var bsb_exe = __filename + ".exe"
88
var delegate_args = process.argv.slice(2)
9+
// if (fs.existsSync(bsconfig)) {
10+
// Note we make `bsb` behaves more similar to `bsb.exe`
11+
// Since it does not make sense that `bsb -h` will raise (here it would check bsconfig.json)
12+
// also `bsb -init project-name` should not break
13+
try {
14+
child_process.execFileSync(bsb_exe, delegate_args, { stdio: 'inherit' })
15+
} catch (e) {
16+
console.error('Error happened when running command', bsb_exe, 'with args', delegate_args)
17+
process.exit(2)
18+
}
19+
// } else {
20+
// var path = require('path')
21+
// var last_dir = process.cwd()
22+
// var search_dir = last_dir
23+
// do {
24+
// last_dir = search_dir
25+
// search_dir = path.dirname(last_dir)
26+
// } while (!fs.existsSync(path.join(search_dir, bsconfig)) && (search_dir.length !== last_dir.length))
27+
// if (search_dir.length === last_dir.length) {
28+
// console.error('bsconfig.json not found in current directory and its parent')
29+
// process.exit(2)
30+
// } else {
31+
// console.log("Root project : " , search_dir)
32+
// try {
33+
// child_process.execFileSync(bsb_exe, delegate_args, { stdio: 'inherit', cwd: search_dir })
34+
// } catch (e) {
35+
// console.error('Error happened when running command', bsb_exe, 'with args', delegate_args)
36+
// process.exit(2)
37+
// }
38+
// }
39+
// }
40+
941
// function uncaughtHandler(err){
1042
// console.error('command failed')
1143
// }
1244
// process.on('uncaughtException',uncaughtHandler)
13-
if (fs.existsSync(bsconfig)) {
14-
try {
15-
child_process.execFileSync(bsb_exe, delegate_args, { stdio: 'inherit' })
16-
} catch (e) {
17-
console.error('Error happened when running command', bsb_exe, 'with args', delegate_args)
18-
process.exit(2)
19-
}
20-
} else {
21-
var path = require('path')
22-
var last_dir = process.cwd()
23-
var search_dir = last_dir
24-
do {
25-
last_dir = search_dir
26-
search_dir = path.dirname(last_dir)
27-
} while (!fs.existsSync(path.join(search_dir, bsconfig)) && (search_dir.length !== last_dir.length))
28-
if (search_dir.length === last_dir.length) {
29-
console.error('bsconfig.json not found in current directory and its parent')
30-
process.exit(2)
31-
} else {
32-
console.log("Root project : " , search_dir)
33-
try {
34-
child_process.execFileSync(bsb_exe, delegate_args, { stdio: 'inherit', cwd: search_dir })
35-
} catch (e) {
36-
console.error('Error happened when running command', bsb_exe, 'with args', delegate_args)
37-
process.exit(2)
38-
}
39-
}
40-
}

Diff for: jscomp/Makefile

+12-6
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ OUNIT_TESTS_SRCS = ounit_tests_util \
151151
ounit_cmd_tests\
152152
ounit_ffi_error_debug_test\
153153
ounit_unicode_tests\
154+
ounit_bsb_regex_tests\
154155
ounit_tests_main
155156
OUNIT_TESTS_CMXS = $(addprefix ounit_tests/, $(addsuffix .cmx, $(OUNIT_TESTS_SRCS)))
156157

@@ -298,7 +299,11 @@ BSB_SRCS= bsb_config \
298299
bsb_file\
299300
bsb_config_types\
300301
bsb_config_parse\
301-
bsb_unix
302+
bsb_unix\
303+
bsb_regex\
304+
oCamlRes\
305+
bsb_templates\
306+
bsb_init
302307

303308
BSB_CMXS=$(addprefix bsb/, $(addsuffix .cmx, $(BSB_SRCS)))
304309
MAIN_SRCS= jsgen_main jscmj_main bsb/bsb_main bsb/bsb_helper_main
@@ -344,7 +349,7 @@ bin/jsgen.exe:ext.cmxa jsgen_main.cmx
344349

345350

346351
depend:
347-
$(CAMLDEP) -native -I stubs -I ext -I common -I syntax -I depends -I core -I ounit -I ounit_tests -I bsb \
352+
$(CAMLDEP) -absname -native -I stubs -I ext -I common -I syntax -I depends -I core -I ounit -I ounit_tests -I bsb \
348353
$(addprefix stubs/, $(addsuffix .ml, $(STUB_SRCS))) \
349354
$(addprefix stubs/, $(addsuffix .mli, $(STUB_SRCS))) \
350355
$(addprefix ext/, $(addsuffix .ml, $(EXT_SRCS))) \
@@ -414,9 +419,10 @@ SNAPSHOT_DEPS=$(SNAPSHOT_SRCS:.ml=.d)
414419
# Note the currently snapshot mode means if we don't
415420
# generate ml files it will not be included
416421

417-
422+
themes:
423+
cd bsb && ./pack-templates.sh
418424
snapshotml:./bin/bspack.exe $(SNAPSHOT_SRCS)
419-
425+
420426
force-snapshotml:
421427
rm -f $(SNAPSHOT_DEPS) $(SNAPSHOT_SRCS)
422428
make snapshotml
@@ -450,7 +456,7 @@ bin/all_ounit_tests.ml:./bin/bspack.exe
450456

451457

452458
bin/all_ounit_tests.exe: stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml
453-
ocamloptp -I +compiler-libs ocamlcommon.cmxa -P a -g -I bin -w -a unix.cmxa $^ -o $@
459+
ocamloptp -I +compiler-libs ocamlcommon.cmxa -P a -g -I bin -w -a unix.cmxa str.cmxa $^ -o $@
454460

455461
test:bin/all_ounit_tests.exe
456462
$^ && ocamlprof bin/all_ounit_tests.ml > bin/all_ounit_tests.i.ml && rm ocamlprof.dump
@@ -528,7 +534,7 @@ world:
528534
travis-world-test:
529535
$(MAKE) world
530536
@echo "Making test"
531-
$(NATIVE) -g -I bin -I +compiler-libs -w -a ocamlcommon.cmxa unix.cmxa stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml -o bin/all_ounit_tests.exe && bin/all_ounit_tests.exe
537+
$(NATIVE) -g -I bin -I +compiler-libs -w -a ocamlcommon.cmxa unix.cmxa str.cmxa stubs/ext_basic_hash_stubs.c bin/all_ounit_tests.mli bin/all_ounit_tests.ml -o bin/all_ounit_tests.exe && bin/all_ounit_tests.exe
532538
$(MAKE) -C test all
533539
@echo "Making test finsihed"
534540

Diff for: jscomp/all.depend

+17-6
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,7 @@ ounit_tests/ounit_ffi_error_debug_test.cmx : ounit_tests/ounit_cmd_util.cmx \
683683
ounit/oUnit.cmx ext/ext_string.cmx
684684
ounit_tests/ounit_unicode_tests.cmx : ounit/oUnit.cmx ext/ext_string.cmx \
685685
syntax/ast_utf8_string_interp.cmx syntax/ast_utf8_string.cmx
686+
ounit_tests/ounit_bsb_regex_tests.cmx : ounit/oUnit.cmx bsb/bsb_regex.cmx
686687
ounit_tests/ounit_tests_main.cmx : ext/resize_array.cmx \
687688
ounit_tests/ounit_vec_test.cmx ounit_tests/ounit_utf8_test.cmx \
688689
ounit_tests/ounit_union_find_tests.cmx \
@@ -698,9 +699,9 @@ ounit_tests/ounit_tests_main.cmx : ext/resize_array.cmx \
698699
ounit_tests/ounit_hashtbl_tests.cmx ounit_tests/ounit_hash_stubs_test.cmx \
699700
ounit_tests/ounit_hash_set_tests.cmx \
700701
ounit_tests/ounit_ffi_error_debug_test.cmx \
701-
ounit_tests/ounit_cmd_tests.cmx ounit_tests/ounit_bal_tree_tests.cmx \
702-
ounit_tests/ounit_array_tests.cmx ounit/oUnit.cmx \
703-
ounit_tests/ounit_tests_main.cmi
702+
ounit_tests/ounit_cmd_tests.cmx ounit_tests/ounit_bsb_regex_tests.cmx \
703+
ounit_tests/ounit_bal_tree_tests.cmx ounit_tests/ounit_array_tests.cmx \
704+
ounit/oUnit.cmx ounit_tests/ounit_tests_main.cmi
704705
bsb/bsb_build_schemas.cmx :
705706
bsb/bsb_build_ui.cmx : ext/string_vec.cmx ext/string_set.cmx \
706707
ext/string_map.cmx ext/ext_string.cmx ext/ext_json_types.cmx \
@@ -748,11 +749,15 @@ bsb/bsb_helper_main.cmx : ext/ext_filename.cmx \
748749
bsb/bsb_helper_packer.cmx : ext/string_set.cmx ext/string_map.cmx \
749750
ext/literals.cmx ext/ext_filename.cmx bsb/bsb_helper_extract.cmx \
750751
bsb/bsb_helper_dep_graph.cmx bsb/bsb_helper_packer.cmi
752+
bsb/bsb_init.cmx : ext/string_hashtbl.cmx bsb/oCamlRes.cmx ext/ext_io.cmx \
753+
bsb/bsb_templates.cmx bsb/bsb_regex.cmx common/bs_version.cmx \
754+
bsb/bsb_init.cmi
751755
bsb/bsb_main.cmx : ext/string_hash_set.cmx ext/literals.cmx ext/ext_sys.cmx \
752756
ext/ext_string.cmx ext/ext_filename.cmx ext/ext_color.cmx \
753-
ext/ext_array.cmx bsb/bsb_unix.cmx bsb/bsb_gen.cmx bsb/bsb_file.cmx \
754-
bsb/bsb_dep_infos.cmx bsb/bsb_config_types.cmx bsb/bsb_config_parse.cmx \
755-
bsb/bsb_config.cmx bsb/bsb_build_util.cmx bsb/bsb_main.cmi
757+
ext/ext_array.cmx bsb/bsb_unix.cmx bsb/bsb_init.cmx bsb/bsb_gen.cmx \
758+
bsb/bsb_file.cmx bsb/bsb_dep_infos.cmx bsb/bsb_config_types.cmx \
759+
bsb/bsb_config_parse.cmx bsb/bsb_config.cmx bsb/bsb_build_util.cmx \
760+
bsb/bsb_main.cmi
756761
bsb/bsb_ninja.cmx : ext/string_set.cmx ext/string_map.cmx \
757762
ext/string_hash_set.cmx ext/literals.cmx ext/ext_string.cmx \
758763
ext/ext_filename.cmx bsb/bsb_rule.cmx bsb/bsb_config.cmx \
@@ -761,8 +766,11 @@ bsb/bsb_ninja.cmx : ext/string_set.cmx ext/string_map.cmx \
761766
bsb/bsb_os_dependent.cmx :
762767
bsb/bsb_pkg.cmx : ext/string_hashtbl.cmx ext/literals.cmx \
763768
bsb/bsb_exception.cmx bsb/bsb_pkg.cmi
769+
bsb/bsb_regex.cmx : bsb/bsb_regex.cmi
764770
bsb/bsb_rule.cmx : ext/string_set.cmx ext/ext_sys.cmx bsb/bsb_rule.cmi
771+
bsb/bsb_templates.cmx : bsb/oCamlRes.cmx bsb/bsb_templates.cmi
765772
bsb/bsb_unix.cmx : ext/ext_sys.cmx ext/ext_string.cmx bsb/bsb_unix.cmi
773+
bsb/oCamlRes.cmx :
766774
bsb/bsb_build_ui.cmi : ext/string_set.cmi ext/ext_json_types.cmx \
767775
ext/ext_file_pp.cmi common/binary_cache.cmi
768776
bsb/bsb_build_util.cmi : ext/ext_json_types.cmx
@@ -779,11 +787,14 @@ bsb/bsb_helper_extract.cmi : ext/string_set.cmi
779787
bsb/bsb_helper_linker.cmi :
780788
bsb/bsb_helper_main.cmi :
781789
bsb/bsb_helper_packer.cmi :
790+
bsb/bsb_init.cmi :
782791
bsb/bsb_main.cmi :
783792
bsb/bsb_ninja.cmi : ext/string_hash_set.cmi bsb/bsb_rule.cmi \
784793
bsb/bsb_config.cmi bsb/bsb_build_ui.cmi
785794
bsb/bsb_pkg.cmi :
795+
bsb/bsb_regex.cmi :
786796
bsb/bsb_rule.cmi :
797+
bsb/bsb_templates.cmi : bsb/oCamlRes.cmx
787798
bsb/bsb_unix.cmi :
788799
jscmj_main.cmx : common/js_config.cmx core/js_cmj_format.cmx \
789800
ext/ext_string.cmx ext/ext_pp.cmx ext/ext_pervasives.cmx \

Diff for: jscomp/bin/all_ounit_tests.d

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ bin/all_ounit_tests.ml : ext/literals.ml
2222
bin/all_ounit_tests.ml : ext/set_int.mli
2323
bin/all_ounit_tests.ml : ext/set_poly.ml
2424
bin/all_ounit_tests.ml : ounit/oUnit.mli
25+
bin/all_ounit_tests.ml : bsb/bsb_regex.ml
2526
bin/all_ounit_tests.ml : common/bs_loc.ml
2627
bin/all_ounit_tests.ml : ext/ext_array.ml
2728
bin/all_ounit_tests.ml : ext/ext_bytes.ml
@@ -35,6 +36,7 @@ bin/all_ounit_tests.ml : ext/ext_util.mli
3536
bin/all_ounit_tests.ml : ext/hash_set.mli
3637
bin/all_ounit_tests.ml : ext/literals.mli
3738
bin/all_ounit_tests.ml : ext/set_poly.mli
39+
bin/all_ounit_tests.ml : bsb/bsb_regex.mli
3840
bin/all_ounit_tests.ml : common/bs_loc.mli
3941
bin/all_ounit_tests.ml : ext/ext_array.mli
4042
bin/all_ounit_tests.ml : ext/ext_bytes.mli
@@ -111,6 +113,7 @@ bin/all_ounit_tests.ml : ounit_tests/ounit_topsort_tests.ml
111113
bin/all_ounit_tests.ml : ounit_tests/ounit_unicode_tests.ml
112114
bin/all_ounit_tests.ml : ounit_tests/ounit_bal_tree_tests.ml
113115
bin/all_ounit_tests.ml : ounit_tests/ounit_hash_set_tests.ml
116+
bin/all_ounit_tests.ml : ounit_tests/ounit_bsb_regex_tests.ml
114117
bin/all_ounit_tests.ml : ounit_tests/ounit_hash_stubs_test.ml
115118
bin/all_ounit_tests.ml : ounit_tests/ounit_ident_mask_tests.ml
116119
bin/all_ounit_tests.ml : ounit_tests/ounit_union_find_tests.ml

0 commit comments

Comments
 (0)