@@ -2,32 +2,68 @@ set dotenv-load
22set positional-arguments
33
44
5- test_dsl :
5+ test :
66 #!/usr/bin/env bash
77 set -euxo pipefail
88
9- PGPASSWORD=$CS_DATABASE__PASSWORD dropdb --force -- if -exists --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test
10- PGPASSWORD=$CS_DATABASE__PASSWORD createdb --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test
9+ just build
10+ just reset
1111
12- connection_url=postgresql:// $CS_DATABASE__USERNAME:@localhost:$CS_DATABASE__PORT/ cs_migrator_test
13- PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/ dsl-core.sql
14- PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/ dsl-config-schema.sql
15- PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/ dsl-config-functions.sql
16- PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f sql/ dsl-encryptindex.sql
12+ connection_url=postgresql:// ${CS_DATABASE__USERNAME:-$USER}:@localhost:$CS_DATABASE__PORT/ $CS_DATABASE__NAME
1713
1814 # tests
1915 PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/ core.sql
2016 PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/ config.sql
2117 PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f tests/ encryptindex.sql
2218
23- dropdb --username $CS_DATABASE__USERNAME --port $CS_DATABASE__PORT cs_migrator_test
19+ # Uninstall
20+ PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f release/ cipherstash-encrypt-uninstall.sql
21+
2422
2523
2624build :
2725 #!/usr/bin/env bash
2826 set -euxo pipefail
2927
30- cat sql/ database-extensions/ postgresql/ install.sql sql/ ore-cllw.sql sql/ ste-vec.sql sql/ dsl-core.sql sql/ dsl-config-schema.sql sql/ dsl-config-functions.sql sql/ dsl-encryptindex.sql > release/ cipherstash-encrypt-dsl.sql
28+ mkdir -p release
29+
30+ rm -f release/ cipherstash-encrypt-uninstall.sql
31+ rm -f release/ cipherstash-encrypt.sql
32+
33+ # Collect all the drops
34+ # In reverse order (tac) so that we drop the constraints before the tables
35+ grep -h -E ' ^(DROP|ALTER DOMAIN [^ ]+ DROP CONSTRAINT)' sql/ 0*-*.sql | tac > release/ cipherstash-encrypt-tmp-drop.sql
36+ # types are always last
37+ cat sql/ 666 -drop_types.sql >> release/ cipherstash-encrypt-tmp-drop.sql
38+
39+
40+ # Build cipherstash-encrypt.sql
41+ # drop everything first
42+ cat release/ cipherstash-encrypt-tmp-drop.sql > release/ cipherstash-encrypt.sql
43+ # cat the rest of the sql files
44+ cat sql/ 0*-*.sql >> release/ cipherstash-encrypt.sql
45+
46+
47+ # Build cipherstash-encrypt-uninstall.sql
48+ # prepend the drops to the main sql file
49+ cat release/ cipherstash-encrypt-tmp-drop.sql >> release/ cipherstash-encrypt-uninstall.sql
50+ # uninstall renames configuration table
51+ cat sql/ 666 -rename_configuration_table.sql >> release/ cipherstash-encrypt-uninstall.sql
52+
53+ # remove the drop file
54+ rm release/ cipherstash-encrypt-tmp-drop.sql
55+
56+
57+ reset :
58+ #!/usr/bin/env bash
59+ set -euxo pipefail
60+
61+ PGPASSWORD=$CS_DATABASE__PASSWORD dropdb --force --if -exists --username ${CS_DATABASE__USERNAME:-$USER} --port $CS_DATABASE__PORT $CS_DATABASE__NAME
62+ PGPASSWORD=$CS_DATABASE__PASSWORD createdb --username ${CS_DATABASE__USERNAME:-$USER} --port $CS_DATABASE__PORT $CS_DATABASE__NAME
63+
64+ connection_url=postgresql:// ${CS_DATABASE__USERNAME:-$USER}:@localhost:$CS_DATABASE__PORT/ $CS_DATABASE__NAME
65+
66+ PGPASSWORD=$CS_DATABASE__PASSWORD psql $connection_url -f release/ cipherstash-encrypt.sql
3167
3268
3369psql :
0 commit comments