Skip to content

Commit 7a7aabb

Browse files
committed
Allow specifying project name using config command, closes #44
1 parent 956db59 commit 7a7aabb

File tree

5 files changed

+52
-35
lines changed

5 files changed

+52
-35
lines changed

docs/Basics.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
| deploy [path] | Deploy specified path |
1313
| config | Generate or update project config for current path |
1414
| list | List currently deployed projects |
15-
| rm [project] | Remove existing deployment or project |
16-
| log [project] | Get logs for existing project |
15+
| rm [id] | Remove existing deployment or project |
16+
| log [id] | Get logs for existing deployment or project |
1717
| login | Login into Exoframe server |
1818
| endpoint [url] | Gets or sets the endpoint of Exoframe server |
1919
| completion | Generates bash completion script |
@@ -27,16 +27,20 @@ If it doesn't exist during deployment, Exoframe will generate simple config file
2727
Config file has the following structure:
2828
```js
2929
{
30-
// project name
30+
// deployment name
3131
// defaults to folder name
32-
"name": "project-name",
32+
"name": "deployment-name",
3333
// restart policy [optional]
3434
// see docker docs for more info
3535
// defaults to "on-failure:2"
3636
"restart": "on-failure:2",
3737
// domain to be assigned to project [optional]
3838
// no domain is assigned by default
39+
// can be set to "false" to disable auto-assignment of domain
3940
"domain": "www.project.domain.com",
41+
// project name [optional]
42+
// by default assembled using deployment name and username
43+
"project": "project-name",
4044
// object of key-values for env vars [optional]
4145
// no env vars are assigned by default
4246
"env": {

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
"cli-table": "^0.3.1",
1919
"got": "^7.1.0",
2020
"ignore": "^3.3.0",
21-
"inquirer": "^3.2.0",
22-
"js-yaml": "^3.9.0",
21+
"inquirer": "^3.2.1",
22+
"js-yaml": "^3.9.1",
2323
"jsonwebtoken": "^7.4.1",
2424
"lodash": "^4.17.4",
2525
"ora": "^1.2.0",
@@ -29,7 +29,7 @@
2929
"devDependencies": {
3030
"coveralls": "^2.13.1",
3131
"nock": "^9.0.14",
32-
"sinon": "^2.3.8",
33-
"tap": "^10.3.2"
32+
"sinon": "^2.4.1",
33+
"tap": "^10.7.1"
3434
}
3535
}

src/commands/config.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ exports.handler = async () => {
1919
let defaultConfig = {
2020
name: folderName,
2121
domain: '',
22+
project: '',
2223
restart: 'on-failure:2',
2324
env: undefined,
2425
hostname: '',
@@ -56,6 +57,13 @@ exports.handler = async () => {
5657
default: defaultConfig.domain,
5758
filter,
5859
});
60+
prompts.push({
61+
type: 'input',
62+
name: 'project',
63+
message: 'Project [optional]:',
64+
default: defaultConfig.project,
65+
filter,
66+
});
5967
prompts.push({
6068
type: 'input',
6169
name: 'env',
@@ -80,12 +88,15 @@ exports.handler = async () => {
8088
choices: ['no', 'on-failure:2', 'always'],
8189
});
8290
// get values from user
83-
const {name, domain, env, hostname, restart} = await inquirer.prompt(prompts);
91+
const {name, domain, project, env, hostname, restart} = await inquirer.prompt(prompts);
8492
// init config object
8593
const config = {name, restart};
8694
if (domain && domain.length) {
8795
config.domain = domain;
8896
}
97+
if (project && project.length) {
98+
config.project = project;
99+
}
89100
if (env && env.length) {
90101
config.env = env
91102
.split(',')

test/config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module.exports = () => {
1313
const configData = {
1414
name: 'test',
1515
domain: 'test.dev',
16+
project: 'test-project',
1617
env: 'ENV=1, OTHER=2',
1718
hostname: 'host',
1819
restart: 'no',
@@ -44,6 +45,7 @@ module.exports = () => {
4445
t.equal(cfg.name, configData.name, 'Correct name');
4546
t.equal(cfg.restart, configData.restart, 'Correct restart policy');
4647
t.equal(cfg.domain, configData.domain, 'Correct domain');
48+
t.equal(cfg.project, configData.project, 'Correct project');
4749
t.equal(cfg.hostname, configData.hostname, 'Correct hostname');
4850
t.equal(cfg.env.ENV, '1', 'Correct ENV var');
4951
t.equal(cfg.env.OTHER, '2', 'Correct OTHER var');

yarn.lock

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ babel-messages@^6.23.0:
130130
babel-runtime "^6.22.0"
131131

132132
babel-runtime@^6.22.0:
133-
version "6.23.0"
134-
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
133+
version "6.25.0"
134+
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c"
135135
dependencies:
136136
core-js "^2.4.0"
137137
regenerator-runtime "^0.10.0"
@@ -823,9 +823,9 @@ inherits@2, inherits@~2.0.3:
823823
version "2.0.3"
824824
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
825825

826-
inquirer@^3.2.0:
827-
version "3.2.0"
828-
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.0.tgz#45b44c2160c729d7578c54060b3eed94487bb42b"
826+
inquirer@^3.2.1:
827+
version "3.2.1"
828+
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175"
829829
dependencies:
830830
ansi-escapes "^2.0.0"
831831
chalk "^2.0.0"
@@ -1067,9 +1067,9 @@ [email protected]:
10671067
argparse "^1.0.7"
10681068
esprima "^2.6.0"
10691069

1070-
js-yaml@^3.2.7, js-yaml@^3.3.1, js-yaml@^3.9.0:
1071-
version "3.9.0"
1072-
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.0.tgz#4ffbbf25c2ac963b8299dc74da7e3740de1c18ce"
1070+
js-yaml@^3.2.7, js-yaml@^3.3.1, js-yaml@^3.9.1:
1071+
version "3.9.1"
1072+
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0"
10731073
dependencies:
10741074
argparse "^1.0.7"
10751075
esprima "^4.0.0"
@@ -1269,15 +1269,15 @@ micromatch@^2.3.11:
12691269
parse-glob "^3.0.4"
12701270
regex-cache "^0.4.2"
12711271

1272-
mime-db@~1.27.0:
1273-
version "1.27.0"
1274-
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
1272+
mime-db@~1.29.0:
1273+
version "1.29.0"
1274+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
12751275

12761276
mime-types@^2.1.12, mime-types@~2.1.7:
1277-
version "2.1.15"
1278-
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
1277+
version "2.1.16"
1278+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
12791279
dependencies:
1280-
mime-db "~1.27.0"
1280+
mime-db "~1.29.0"
12811281

12821282
mimic-fn@^1.0.0:
12831283
version "1.1.0"
@@ -1366,7 +1366,7 @@ number-is-nan@^1.0.0:
13661366
version "1.0.1"
13671367
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
13681368

1369-
nyc@^11.0.2-candidate.0:
1369+
nyc@^11.1.0:
13701370
version "11.1.0"
13711371
resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.1.0.tgz#d6b3c5e16892a25af63138ba484676aa8a22eda7"
13721372
dependencies:
@@ -1768,8 +1768,8 @@ [email protected], samsam@^1.1.3:
17681768
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.2.1.tgz#edd39093a3184370cb859243b2bdf255e7d8ea67"
17691769

17701770
"semver@2 || 3 || 4 || 5", semver@^5.3.0:
1771-
version "5.3.0"
1772-
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
1771+
version "5.4.1"
1772+
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
17731773

17741774
set-blocking@^2.0.0:
17751775
version "2.0.0"
@@ -1789,9 +1789,9 @@ signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
17891789
version "3.0.2"
17901790
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
17911791

1792-
sinon@^2.3.8:
1793-
version "2.3.8"
1794-
resolved "https://registry.yarnpkg.com/sinon/-/sinon-2.3.8.tgz#31de06fed8fba3a671e576dd96d0a5863796f25c"
1792+
sinon@^2.4.1:
1793+
version "2.4.1"
1794+
resolved "https://registry.yarnpkg.com/sinon/-/sinon-2.4.1.tgz#021fd64b54cb77d9d2fb0d43cdedfae7629c3a36"
17951795
dependencies:
17961796
diff "^3.1.0"
17971797
formatio "1.2.0"
@@ -1966,9 +1966,9 @@ tap-parser@^5.1.0, tap-parser@^5.3.1:
19661966
optionalDependencies:
19671967
readable-stream "^2"
19681968

1969-
tap@^10.3.2:
1970-
version "10.7.0"
1971-
resolved "https://registry.yarnpkg.com/tap/-/tap-10.7.0.tgz#ecde1ebd2b86981f741ae089f1448c9f294ac548"
1969+
tap@^10.7.1:
1970+
version "10.7.1"
1971+
resolved "https://registry.yarnpkg.com/tap/-/tap-10.7.1.tgz#f2d20f38a4f6b77717521ef852bf446a7fb79e4e"
19721972
dependencies:
19731973
bind-obj-methods "^1.0.0"
19741974
bluebird "^3.3.1"
@@ -1981,7 +1981,7 @@ tap@^10.3.2:
19811981
glob "^7.0.0"
19821982
isexe "^2.0.0"
19831983
js-yaml "^3.3.1"
1984-
nyc "^11.0.2-candidate.0"
1984+
nyc "^11.1.0"
19851985
opener "^1.4.1"
19861986
os-homedir "^1.0.2"
19871987
own-or "^1.0.0"
@@ -2151,8 +2151,8 @@ which-module@^2.0.0:
21512151
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
21522152

21532153
which@^1.2.4, which@^1.2.9:
2154-
version "1.2.14"
2155-
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
2154+
version "1.3.0"
2155+
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
21562156
dependencies:
21572157
isexe "^2.0.0"
21582158

0 commit comments

Comments
 (0)