Skip to content

Commit 11e48d8

Browse files
exbotanicaljwerle
authored andcommitted
feat(src/clib-install.c): save deps by default and support --no-save opt
1 parent e47d7fa commit 11e48d8

8 files changed

+56
-18
lines changed

src/clib-install.c

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ struct options {
4444
char *token;
4545
int verbose;
4646
int dev;
47-
int save;
4847
int savedev;
48+
int nosave;
4949
int force;
5050
int global;
5151
int skip_cache;
@@ -89,15 +89,20 @@ static void setopt_dev(command_t *self) {
8989
}
9090

9191
static void setopt_save(command_t *self) {
92-
opts.save = 1;
93-
debug(&debugger, "set save flag");
92+
logger_warn("deprecated", "--save option is deprecated "
93+
"(dependencies are now saved by default)");
9494
}
9595

9696
static void setopt_savedev(command_t *self) {
9797
opts.savedev = 1;
9898
debug(&debugger, "set savedev flag");
9999
}
100100

101+
static void setopt_nosave(command_t *self) {
102+
opts.nosave = 1;
103+
debug(&debugger, "set nosave flag");
104+
}
105+
101106
static void setopt_force(command_t *self) {
102107
opts.force = 1;
103108
debug(&debugger, "set force flag");
@@ -304,10 +309,9 @@ static int install_package(const char *slug) {
304309
pkg->repo = strdup(slug);
305310
}
306311

307-
if (opts.save)
308-
save_dependency(pkg);
309-
if (opts.savedev)
310-
save_dev_dependency(pkg);
312+
if (!opts.nosave) {
313+
opts.savedev ? save_dev_dependency(pkg) : save_dependency(pkg);
314+
}
311315

312316
cleanup:
313317
clib_package_free(pkg);
@@ -371,10 +375,14 @@ int main(int argc, char *argv[]) {
371375
command_option(&program, "-d", "--dev", "install development dependencies",
372376
setopt_dev);
373377
command_option(&program, "-S", "--save",
374-
"save dependency in clib.json or package.json", setopt_save);
378+
"[DEPRECATED] save dependency in clib.json or package.json",
379+
setopt_save);
375380
command_option(&program, "-D", "--save-dev",
376381
"save development dependency in clib.json or package.json",
377382
setopt_savedev);
383+
command_option(&program, "-N", "--no-save",
384+
"don't save dependency in clib.json or package.json",
385+
setopt_nosave);
378386
command_option(&program, "-f", "--force",
379387
"force the action of something, like overwriting a file",
380388
setopt_force);
@@ -430,8 +438,8 @@ int main(int argc, char *argv[]) {
430438
unsigned long int size = strlen(prefix) + 1;
431439
opts.prefix = malloc(size);
432440

433-
memset((void *) opts.prefix, 0, size);
434-
memcpy((void *) opts.prefix, prefix, size);
441+
memset((void *)opts.prefix, 0, size);
442+
memcpy((void *)opts.prefix, prefix, size);
435443
}
436444

437445
clib_cache_init(CLIB_PACKAGE_CACHE_TIME);

test/install-binary-dependencies.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh
22

3-
clib install -c stephenmathieson/[email protected] -P tmp > /dev/null || {
3+
clib install -c -N stephenmathieson/[email protected] -P tmp > /dev/null || {
44
echo >&2 "Failed to install stephenmathieson/tabs-to-spaces"
55
exit 1
66
}

test/install-brace-expansion.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ throw() {
55
exit 1
66
}
77

8-
clib install -c -o tmp stephenmathieson/trim.c stephenmathieson/case.c > /dev/null ||
8+
clib install -c -N -o tmp stephenmathieson/trim.c stephenmathieson/case.c > /dev/null ||
99
throw "expecting successful exit code"
1010

1111
[ -d ./tmp/case ] && [ -f ./tmp/case/package.json ] ||

test/install-multiple-clibs-libs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ throw() {
55
exit 1
66
}
77

8-
clib install -c -o tmp ms file hash > /dev/null ||
8+
clib install -c -N -o tmp ms file hash > /dev/null ||
99
throw "expecting successful exit code"
1010

1111
[ -d ./tmp/ms ] && [ -f ./tmp/ms/package.json ] ||

test/install-multiple-libs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ throw() {
55
exit 1
66
}
77

8-
clib install -c -o tmp \
8+
clib install -c -N -o tmp \
99
stephenmathieson/case.c stephenmathieson/trim.c > /dev/null ||
1010
throw "expecting successful exit code"
1111

test/install-no-save.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/sh
2+
mkdir -p tmp/test-save
3+
cp test/data/test-save-package.json tmp/test-save/package.json
4+
5+
cd tmp/test-save || exit
6+
../../clib-install -c --no-save stephenmathieson/[email protected] >/dev/null
7+
../../clib-install -c -N darthtrevino/[email protected] >/dev/null
8+
../../clib-install -c --dev --no-save jwerle/[email protected] >/dev/null
9+
../../clib-install -c -d --no-save clibs/[email protected] >/dev/null
10+
cd - || exit
11+
12+
if grep --quiet "stephenmathieson/tabs-to-spaces" tmp/test-save/package.json; then
13+
echo >&2 "Found stephenmathieson/tabs-to-spaces saved in package.json but --no-save was used"
14+
exit 1
15+
fi
16+
17+
if grep --quiet "darthtrevino/str-concat" tmp/test-save/package.json; then
18+
echo >&2 "Found darthtrevino/strconcat saved in package.json but --no-save was used"
19+
exit 1
20+
fi
21+
22+
if grep --quiet "jwerle/fs.c" tmp/test-save/package.json; then
23+
echo >&2 "Found jwerle/fs.c saved in package.json but --no-save was used"
24+
exit 1
25+
fi
26+
27+
if grep --quiet "clibs/parson" tmp/test-save/package.json; then
28+
echo >&2 "Found clibs/parson saved in package.json but --no-save was used"
29+
exit 1
30+
fi

test/install-save.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ mkdir -p tmp/test-save
33
cp test/data/test-save-package.json tmp/test-save/package.json
44

55
cd tmp/test-save || exit
6-
../../clib-install -c --save stephenmathieson/[email protected] >/dev/null
7-
../../clib-install -c -S darthtrevino/[email protected] >/dev/null
8-
../../clib-install -c --save-dev jwerle/[email protected] >/dev/null
6+
../../clib-install -c stephenmathieson/[email protected] >/dev/null
7+
../../clib-install -c darthtrevino/[email protected] >/dev/null
8+
../../clib-install -c --dev jwerle/[email protected] >/dev/null
99
../../clib-install -c -D clibs/[email protected] >/dev/null
1010
cd - || exit
1111

test/uninstall.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
mkdir -p tmp/bin
44

5-
clib install -c stephenmathieson/[email protected] -P tmp > /dev/null || {
5+
clib install -c -N stephenmathieson/[email protected] -P tmp > /dev/null || {
66
echo >&2 "Failed to install stephenmathieson/tabs-to-spaces"
77
exit 1
88
}

0 commit comments

Comments
 (0)