Skip to content

Commit 8503fd2

Browse files
committed
Merge pull request #1 from NativeScript/fatme/package-skeleton
Package skeleton, typescript support and entry point for the cli
2 parents 3e13101 + c0ac175 commit 8503fd2

19 files changed

+287
-19
lines changed

.gitattributes

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Ensure that the shebang of our start script can be correctly interpreted
2+
3+
bin/appbuilder.js eol=lf
4+

.gitignore

+31-19
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,37 @@
1-
# Logs
2-
logs
3-
*.log
4-
5-
# Runtime data
6-
pids
7-
*.pid
8-
*.seed
1+
*.js
2+
!/*.js
3+
!bin/nativescript.js
4+
!vendor/*.js
5+
*.js.map
96

10-
# Directory for instrumented libs generated by jscoverage/JSCover
117
lib-cov
8+
*.seed
9+
*.log
10+
*.csv
11+
*.dat
12+
*.out
13+
*.pid
14+
*.gz
15+
*.tgz
16+
*.tmp
17+
*.sublime-workspace
18+
tscommand*.tmp.txt
19+
.tscache/
20+
/lib/.d.ts
1221

13-
# Coverage directory used by tools like istanbul
14-
coverage
15-
16-
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
17-
.grunt
22+
pids
23+
logs
24+
results
25+
scratch/
26+
.idea/workspace.xml
27+
.idea/tasks.xml
28+
.idea/watcherTasks.xml
1829

19-
# Compiled binary addons (http://nodejs.org/api/addons.html)
20-
build/Release
30+
test-reports.xml
2131

22-
# Dependency directory
23-
# Deployed apps should consider commenting this line out:
24-
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
32+
npm-debug.log
2533
node_modules
34+
resources/App_Resources
35+
resources/Cordova
36+
resources/ItemTemplates
37+
resources/ProjectTemplates

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "lib/common"]
2+
path = lib/common
3+
url = [email protected]:telerik/mobile-cli-lib.git

.idea/.name

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/encodings.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/nativescript-cli.iml

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/scopes/Nativescript_CLI_TypeScript.xml

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/scopes/scope_settings.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Gruntfile.js

+137
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
var util = require("util");
2+
3+
var now = new Date().toISOString();
4+
5+
function shallowCopy(obj) {
6+
var result = {};
7+
Object.keys(obj).forEach(function(key) {
8+
result[key] = obj[key];
9+
});
10+
return result;
11+
}
12+
13+
module.exports = function(grunt) {
14+
grunt.initConfig({
15+
copyPackageTo: "\\\\telerik.com\\Resources\\BlackDragon\\Builds\\nativescript-cli",
16+
17+
deploymentEnvironment: process.env["DeploymentEnvironment"] || "local",
18+
jobName: process.env["JOB_NAME"] || "local",
19+
buildNumber: process.env["BUILD_NUMBER"] || "non-ci",
20+
dateString: now.substr(0, now.indexOf("T")),
21+
22+
pkg: grunt.file.readJSON("package.json"),
23+
24+
ts: {
25+
options: {
26+
target: 'es5',
27+
module: 'commonjs',
28+
sourceMap: true,
29+
declaration: false,
30+
removeComments: false
31+
},
32+
33+
devlib: {
34+
src: ["lib/**/*.ts"],
35+
reference: "lib/.d.ts"
36+
},
37+
38+
devall: {
39+
src: ["lib/**/*.ts", "test/**/*.ts"],
40+
reference: "lib/.d.ts"
41+
},
42+
43+
release_build: {
44+
src: ["lib/**/*.ts", "test/**/*.ts"],
45+
reference: "lib/.d.ts",
46+
options: {
47+
sourceMap: false,
48+
removeComments: true
49+
}
50+
}
51+
},
52+
53+
watch: {
54+
devall: {
55+
files: ["lib/**/*.ts", 'test/**/*.ts'],
56+
tasks: ['ts:devall'],
57+
options: {
58+
atBegin: true,
59+
interrupt: true
60+
}
61+
}
62+
},
63+
64+
shell: {
65+
options: {
66+
stdout: true,
67+
stderr: true
68+
},
69+
70+
build_package: {
71+
command: "npm pack",
72+
options: {
73+
execOptions: {
74+
env: (function() {
75+
var env = shallowCopy(process.env);
76+
env["NATIVESCRIPT_SKIP_POSTINSTALL_TASKS"] = "1";
77+
return env;
78+
})()
79+
}
80+
}
81+
}
82+
},
83+
84+
copy: {
85+
package_to_drop_folder: {
86+
src: "*.tgz",
87+
dest: "<%= copyPackageTo %>/<%= jobName %>/<%= deploymentEnvironment %>/<%= dateString %> #<%= buildNumber %>/"
88+
},
89+
package_to_qa_drop_folder: {
90+
src: "*.tgz",
91+
dest: "<%= copyPackageTo %>/<%= jobName %>/<%= deploymentEnvironment %>/nativescript.tgz"
92+
}
93+
},
94+
95+
clean: {
96+
src: ["test/**/*.js*", "lib/**/*.js*", "*.tgz"]
97+
}
98+
});
99+
100+
grunt.loadNpmTasks("grunt-contrib-clean");
101+
grunt.loadNpmTasks("grunt-contrib-copy");
102+
grunt.loadNpmTasks("grunt-contrib-watch");
103+
grunt.loadNpmTasks("grunt-shell");
104+
grunt.loadNpmTasks("grunt-ts");
105+
106+
grunt.registerTask("set_package_version", function(version) {
107+
var fs = require("fs");
108+
var buildVersion = version !== undefined ? version : process.env["BUILD_NUMBER"];
109+
if (process.env["BUILD_CAUSE_GHPRBCAUSE"]) {
110+
buildVersion = "PR" + buildVersion;
111+
}
112+
113+
var packageJson = grunt.file.readJSON("package.json");
114+
var versionParts = packageJson.version.split("-");
115+
versionParts[1] = buildVersion;
116+
packageJson.version = versionParts.join("-");
117+
grunt.file.write("package.json", JSON.stringify(packageJson, null, " "));
118+
});
119+
120+
grunt.registerTask("test", ["ts:devall", "shell:npm_test"]);
121+
grunt.registerTask("pack", [
122+
"clean",
123+
"ts:release_build",
124+
"shell:prepare_resources",
125+
126+
"shell:apply_deployment_environment",
127+
"shell:ci_unit_tests",
128+
129+
"set_package_version",
130+
"shell:build_package",
131+
132+
"copy:package_to_drop_folder",
133+
"copy:package_to_qa_drop_folder"
134+
]);
135+
136+
grunt.registerTask("default", "ts:devlib");
137+
};

bin/nativescript

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/sh
2+
3+
AB_DIR="`dirname \"$0\"`"
4+
node "$AB_DIR/nativescript.js" $@

bin/nativescript.cmd

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@node %~dp0\nativescript.js %*

bin/nativescript.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env node
2+
3+
require("../lib/nativescript-cli.js");

lib/bootstrap.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
global._ = require("underscore");
2+
global.$injector = require("./common/lib/yok").injector;
3+
4+
$injector.require("nativescript-cli", "./nativescript-cli");

lib/common

Submodule common added at a429478

lib/nativescript-cli.ts

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
///<reference path=".d.ts"/>
2+
3+
import Fiber = require("fibers");
4+
5+
require("./bootstrap");
6+
7+
var fiber = Fiber(() => {
8+
});
9+
global.__main_fiber__ = fiber; // leak fiber to prevent it from being GC'd and thus corrupting V8
10+
fiber.run();

package.json

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"name": "nativescript-cli",
3+
"version": "0.1.0",
4+
"author": "Telerik <[email protected]>",
5+
"description": "Command-line interface for building NativeScript projects",
6+
"bin": {
7+
"nativescript": "./bin/nativescript.js"
8+
},
9+
"main": "./lib/nativescript-cli.js",
10+
"scripts": {
11+
"test": "echo \"Error: no test specified\" && exit 1"
12+
},
13+
"repository": {
14+
"type": "git",
15+
"url": "https://github.com/NativeScript/nativescript-cli.git"
16+
},
17+
"keywords": [
18+
"nativescript",
19+
"appbuilder",
20+
"telerik",
21+
"mobile"
22+
],
23+
"license": "Apache2.0",
24+
"dependencies": {
25+
"fibers": "https://github.com/icenium/node-fibers/tarball/master",
26+
"log4js": "0.6.9",
27+
"tabtab": "https://github.com/tailsu/node-tabtab/tarball/master",
28+
"underscore": "1.5.2",
29+
"unzip": "0.1.9",
30+
"yargs": "1.2.2"
31+
},
32+
"analyze": true,
33+
"devDependencies": {
34+
"grunt": "0.4.2",
35+
"grunt-ts": "1.11.2",
36+
"grunt-contrib-clean": "0.5.0",
37+
"grunt-contrib-watch": "0.5.3",
38+
"grunt-shell": "0.6.4",
39+
"grunt-contrib-copy": "0.5.0"
40+
},
41+
"license": "Apache-2.0",
42+
"engines": {
43+
"node": "~0.10.22"
44+
}
45+
}

0 commit comments

Comments
 (0)