Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9533056

Browse files
committed
run create programmatically
1 parent18a1bf4 commit9533056

File tree

9 files changed

+111
-117
lines changed

9 files changed

+111
-117
lines changed

‎lib/cli.js

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ if (program.build) {
3131
elseif(program.create){
3232
varpackageName=program.args[0];
3333
process.stdout.write("Creating demo tutorial \"coderoad-"+packageName+"\"...");
34-
if(!create_1.default(packageName)){
34+
if(!create_1.default(process.cwd(),packageName)){
3535
result_1.fail();
3636
}
3737
}

‎lib/create/index.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
"use strict";
22
varvalidate_1=require('./validate');
33
varwrite_demo_1=require('./write-demo');
4+
varpath_1=require('path');
45
varchalk_1=require('chalk');
56
varbuild_1=require('../build');
6-
functioncreate(name){
7+
functioncreate(dir,name){
78
returnPromise.all([
89
validate_1.validatePackageName(name),
9-
write_demo_1.createPackageJson(name),
10-
write_demo_1.createTutorialMd()
10+
write_demo_1.createPackageJson(dir,name),
11+
write_demo_1.createTutorialMd(dir)
1112
]).then(function(){
12-
build_1.default('tutorial/tutorial.md','coderoad.json');
13+
build_1.default(path_1.join(dir,'tutorial/tutorial.md'),path_1.join(dir,'coderoad.json'));
1314
returntrue;
1415
}).catch(function(e){
1516
switch(e.type){

‎lib/create/write-demo.js

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,35 @@ var fs_1 = require('fs');
33
varpath_1=require('path');
44
varsort_package_json_1=require('sort-package-json');
55
varnode_file_exists_1=require('node-file-exists');
6-
functioncreateFile(pathToFile){
7-
if(!node_file_exists_1.default(pathToFile)){
8-
varinputPath=path_1.join(__dirname,'..','..','setup',pathToFile);
9-
vartest=fs_1.readFileSync(inputPath,'utf8');
10-
fs_1.writeFileSync(pathToFile,test,'utf8');
6+
functioncreateFile(dir,pathToFile){
7+
try{
8+
if(!node_file_exists_1.default(pathToFile)){
9+
varinputPath=path_1.join(__dirname,'..','..','setup',pathToFile);
10+
vartest=fs_1.readFileSync(inputPath,'utf8');
11+
fs_1.writeFileSync(path_1.join(dir,pathToFile),test,'utf8');
12+
}
13+
}
14+
catch(e){
15+
console.log(e);
1116
}
1217
}
1318
functioncreateFolder(pathToFolder){
14-
if(!node_file_exists_1.default(pathToFolder)){
15-
fs_1.mkdirSync(pathToFolder);
19+
try{
20+
if(!node_file_exists_1.default(pathToFolder)){
21+
fs_1.mkdirSync(pathToFolder);
22+
}
23+
}
24+
catch(e){
25+
console.log(e);
1626
}
1727
}
18-
varfolders=[
19-
'tutorial',
20-
path_1.join('tutorial','01'),
21-
path_1.join('tutorial','02')
22-
];
28+
varfolders=function(dir){return[
29+
path_1.join(dir,'tutorial'),
30+
path_1.join(dir,'tutorial','01'),
31+
path_1.join(dir,'tutorial','02')
32+
];};
2333
varfiles=[
24-
'.gitignore',
34+
path_1.join('.gitignore'),
2535
path_1.join('tutorial','tutorial.md'),
2636
path_1.join('tutorial','01','page-one.md'),
2737
path_1.join('tutorial','01','01.spec.js'),
@@ -30,22 +40,23 @@ var files = [
3040
path_1.join('tutorial','02','01.spec.js'),
3141
path_1.join('tutorial','02','02.spec.js')
3242
];
33-
functioncreateTutorialMd(){
43+
functioncreateTutorialMd(dir){
44+
console.log('dir',dir);
3445
returnnewPromise(function(resolve,reject){
35-
folders.forEach(function(folder){returncreateFolder(folder);});
36-
files.forEach(function(file){returncreateFile(file);});
46+
folders(dir).forEach(function(folder){returncreateFolder(folder);});
47+
files.forEach(function(file){returncreateFile(dir,file);});
3748
resolve(true);
3849
});
3950
}
4051
exports.createTutorialMd=createTutorialMd;
41-
functioncreatePackageJson(name){
52+
functioncreatePackageJson(dir,name){
4253
returnnewPromise(function(resolve,reject){
43-
if(!node_file_exists_1.default('package.json')){
54+
if(!node_file_exists_1.default(path_1.join(dir,'package.json'))){
4455
varinputPath=path_1.join(__dirname,'..','..','setup','package.json');
4556
varpackageJson=JSON.parse(fs_1.readFileSync(inputPath,'utf8'));
4657
packageJson.name='coderoad-'+name;
4758
varpackageJsonString=sort_package_json_1.sortPackageJson(JSON.stringify(packageJson,null,2));
48-
fs_1.writeFileSync('package.json',packageJsonString,'utf8');
59+
fs_1.writeFileSync(path_1.join(dir,'package.json'),packageJsonString,'utf8');
4960
resolve(true);
5061
}
5162
else{

‎lib/list/list.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

‎lib/tutorials/update.js

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +0,0 @@
1-
"use strict";
2-
varatom_plugin_command_line_1=require('atom-plugin-command-line');
3-
functiontutorialUpdate(name){
4-
console.log("run \"npm install --save-dev "+name+"\"");
5-
}
6-
exports.tutorialUpdate=tutorialUpdate;
7-
functioncanUpdateTutorial(name,currentVersion){
8-
returnnull;
9-
return(atom_plugin_command_line_1.default('npm',"outdated "+name).then(function(res){
10-
console.log(res);
11-
if(res.length>0){
12-
varlinked=res.match(/[0-9\.]+\s+linked/);
13-
if(linked){
14-
returnfalse;
15-
}
16-
varmatch=res.match(/[0-9\.]+\s+[0-9\.]+\s+([0-9\.]+)/);
17-
if(match.length>=2){
18-
returntrue;
19-
}
20-
}
21-
returnnull;
22-
}));
23-
}
24-
exports.canUpdateTutorial=canUpdateTutorial;

‎src/cli.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ if (program.build) {
3939
constpackageName=program.args[0];
4040
process.stdout.write(`Creating demo tutorial "coderoad-${packageName}"...`);
4141
// run create
42-
if(!create(packageName)){
42+
if(!create(process.cwd(),packageName)){
4343
fail();
4444
}
4545

‎src/create/index.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
import{validatePackageName}from'./validate';
22
import{createPackageJson,createTutorialMd}from'./write-demo';
3+
import{join}from'path';
34
import{red,yellow}from'chalk';
45
importbuildfrom'../build';
56

6-
exportdefaultfunctioncreate(name:string):boolean|Promise<boolean>{
7+
exportdefaultfunctioncreate(dir:string,name:string):boolean|Promise<boolean>{
78

89
// npm package
910
returnPromise.all([
1011
validatePackageName(name),
11-
createPackageJson(name),
12-
createTutorialMd()
12+
createPackageJson(dir,name),
13+
createTutorialMd(dir)
1314
]).then(()=>{
14-
build('tutorial/tutorial.md','coderoad.json');
15+
build(
16+
join(dir,'tutorial/tutorial.md'),
17+
join(dir,'coderoad.json')
18+
);
1519
returntrue;
1620
}).catch((e)=>{
1721

‎src/create/write-demo.ts

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,36 @@ import {join} from 'path';
33
import{sortPackageJson}from'sort-package-json'
44
importfileExistsfrom'node-file-exists';
55

6-
functioncreateFile(pathToFile:string):void{
7-
if(!fileExists(pathToFile)){
8-
letinputPath=join(__dirname,'..','..','setup',pathToFile);
9-
lettest=readFileSync(inputPath,'utf8');
10-
writeFileSync(pathToFile,test,'utf8');
6+
functioncreateFile(dir:string,pathToFile:string):void{
7+
try{
8+
if(!fileExists(pathToFile)){
9+
letinputPath=join(__dirname,'..','..','setup',pathToFile);
10+
lettest=readFileSync(inputPath,'utf8');
11+
writeFileSync(join(dir,pathToFile),test,'utf8');
12+
}
13+
}catch(e){
14+
console.log(e);
1115
}
1216
}
1317

1418
functioncreateFolder(pathToFolder:string):void{
15-
if(!fileExists(pathToFolder)){
16-
mkdirSync(pathToFolder);
19+
try{
20+
if(!fileExists(pathToFolder)){
21+
mkdirSync(pathToFolder);
22+
}
23+
}catch(e){
24+
console.log(e);
1725
}
1826
}
1927

20-
constfolders=[
21-
'tutorial',
22-
join('tutorial','01'),
23-
join('tutorial','02')
28+
constfolders=dir=>[
29+
join(dir,'tutorial'),
30+
join(dir,'tutorial','01'),
31+
join(dir,'tutorial','02')
2432
];
2533

2634
constfiles=[
27-
'.gitignore',
35+
join('.gitignore'),
2836
join('tutorial','tutorial.md'),
2937
join('tutorial','01','page-one.md'),
3038
join('tutorial','01','01.spec.js'),
@@ -34,17 +42,18 @@ const files = [
3442
join('tutorial','02','02.spec.js')
3543
];
3644

37-
exportfunctioncreateTutorialMd():Promise<boolean>{
45+
exportfunctioncreateTutorialMd(dir:string):Promise<boolean>{
46+
console.log('dir',dir);
3847
returnnewPromise((resolve,reject)=>{
39-
folders.forEach((folder)=>createFolder(folder));
40-
files.forEach((file)=>createFile(file));
48+
folders(dir).forEach((folder)=>createFolder(folder));
49+
files.forEach((file)=>createFile(dir,file));
4150
resolve(true);
4251
});
4352
}
4453

45-
exportfunctioncreatePackageJson(name:string):Promise<boolean>{
54+
exportfunctioncreatePackageJson(dir:string,name:string):Promise<boolean>{
4655
returnnewPromise((resolve,reject)=>{
47-
if(!fileExists('package.json')){
56+
if(!fileExists(join(dir,'package.json'))){
4857

4958
// read from existing package.json
5059
constinputPath:string=join(
@@ -61,7 +70,7 @@ export function createPackageJson(name: string): Promise<boolean> {
6170
JSON.stringify(packageJson,null,2)
6271
);
6372

64-
writeFileSync('package.json',packageJsonString,'utf8');
73+
writeFileSync(join(dir,'package.json'),packageJsonString,'utf8');
6574
resolve(true);
6675
}else{
6776
// TODO: validate package.json

‎src/tutorials/update.ts

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
1-
importcommandLinefrom'atom-plugin-command-line';
2-
3-
exportfunctiontutorialUpdate(name:string):void{
4-
console.log(`run "npm install --save-dev${name}"`);
5-
// commandLine(
6-
// // 'npm', `install --save-dev ${name}`
7-
// ).then((res) => {
8-
// console.log(res);
9-
// store.dispatch(tutorialsFind());
10-
// });
11-
}
12-
13-
exportfunctioncanUpdateTutorial(
14-
name:string,currentVersion:string
15-
):Promise<boolean>{
16-
returnnull;
17-
// if (global.hasOwnProperty('navigator') || !global.navigator.onLine) {
18-
// return null;
19-
// }
20-
return(commandLine(
21-
'npm',`outdated${name}`
22-
).then(
23-
(res:string)=>{
24-
console.log(res);
25-
if(res.length>0){
26-
// npm link enabled
27-
constlinked=res.match(/[0-9\.]+\s+linked/);
28-
if(linked){returnfalse;}
29-
// not latest version
30-
constmatch=res.match(/[0-9\.]+\s+[0-9\.]+\s+([0-9\.]+)/);
31-
if(match.length>=2){
32-
// return match[1]; // string output
33-
returntrue;
34-
}
35-
}
36-
returnnull;
37-
})
38-
);
39-
}
1+
//import commandLine from 'atom-plugin-command-line';
2+
//
3+
//export function tutorialUpdate(name: string): void {
4+
// console.log(`run "npm install --save-dev ${name}"`);
5+
// // commandLine(
6+
// // // 'npm', `install --save-dev ${name}`
7+
// // ).then((res) => {
8+
// // console.log(res);
9+
// // store.dispatch(tutorialsFind());
10+
// //});
11+
//}
12+
//
13+
//export function canUpdateTutorial(
14+
// name: string, currentVersion: string
15+
//): Promise<boolean> {
16+
// return null;
17+
// // if (global.hasOwnProperty('navigator') || !global.navigator.onLine) {
18+
// // return null;
19+
// //}
20+
// return (commandLine(
21+
// 'npm', `outdated ${name}`
22+
// ).then(
23+
// (res: string) => {
24+
// console.log(res);
25+
// if (res.length > 0) {
26+
// // npm link enabled
27+
// const linked = res.match(/[0-9\.]+\s+linked/);
28+
// if (linked) { return false; }
29+
// // not latest version
30+
// const match = res.match(/[0-9\.]+\s+[0-9\.]+\s+([0-9\.]+)/);
31+
// if (match.length >= 2) {
32+
// // return match[1]; // string output
33+
// return true;
34+
// }
35+
// }
36+
// return null;
37+
// })
38+
// );
39+
//}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp