How to dynamically create and write content inside files and folders with nodejs if making a starter kit generatorNode.js + Nginx - What now?How to decide when to use Node.js?How to run a hello.js file in Node.js on windows?Using Node.JS, how do I read a JSON file into (server) memory?Should I check in node_modules to git when creating a node.js app on Heroku?Proper way to return JSON using node or ExpressInvalidating JSON Web TokensHow to include scripts located inside the node_modules folder?NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. WebpackHow to create your own npm starter-kit?
Demographic consequences of closed loop reincarnation
When will the last unambiguous evidence of mankind disappear?
What is this green alien supposed to be on the American covers of the "Hitchhiker's Guide to the Galaxy"?
How was Luke's prosthetic hand in Episode V filmed?
When designing an adventure, how can I ensure a continuous player experience in a setting that's likely to favor TPKs?
Did Hitler say this quote about homeschooling?
Why aren't there any women super GMs?
How many opportunity attacks can you make per turn before becoming exhausted?
Why does a tetrahedral molecule like methane have a dipole moment of zero?
How to interpret a promising preprint that was never published in peer-review?
Is encryption still applied if you ignore the SSL certificate warning for self-signed certs?
Why are there few or no black super GMs?
Why is the Intel 8086 CPU called a 16-bit CPU?
In this iconic lunar orbit rendezvous photo of John Houbolt, why do arrows #5 and #6 point the "wrong" way?
Which GPUs to get for Mathematical Optimization (if any)?
Pauli exclusion principle - black holes
Are more expensive chains/casettes more quiet?
The most secure way to handle someone forgetting to verify their account?
Why are flying carpets banned while flying brooms are not?
Applying for jobs with an obvious scar
Does 5e follow the Primary Source rule?
Align the contents of a numerical matrix when you have minus signs
Can't install anything via terminal
How did Jayne know when to shoot?
How to dynamically create and write content inside files and folders with nodejs if making a starter kit generator
Node.js + Nginx - What now?How to decide when to use Node.js?How to run a hello.js file in Node.js on windows?Using Node.JS, how do I read a JSON file into (server) memory?Should I check in node_modules to git when creating a node.js app on Heroku?Proper way to return JSON using node or ExpressInvalidating JSON Web TokensHow to include scripts located inside the node_modules folder?NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. WebpackHow to create your own npm starter-kit?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I want to create a Project Starter Kit Generator for a framework just like Angular CLI with node.js.
Following are the features that will be needed assuming the command would be kit-cli
:
kit-cli init
orkit-cli am/as
: will ask few questions and based on that it will create all the files and folders to get started.kit-cli add option
: will create and add some codes into existing files and will run some system based commands if required.
I have following approach in my mind:
Putting my content into JSON files.
Based on User's choices, read content from JSON file and create folders and files.
No idea about how I will add/remove codes from a existing file.
Questions:
How should I store and create the folder/file structure assuming that the folder structure will vary based on user's choices.
How should I edit/add/remove code from an existing file.
node.js npm starter-kits
add a comment |
I want to create a Project Starter Kit Generator for a framework just like Angular CLI with node.js.
Following are the features that will be needed assuming the command would be kit-cli
:
kit-cli init
orkit-cli am/as
: will ask few questions and based on that it will create all the files and folders to get started.kit-cli add option
: will create and add some codes into existing files and will run some system based commands if required.
I have following approach in my mind:
Putting my content into JSON files.
Based on User's choices, read content from JSON file and create folders and files.
No idea about how I will add/remove codes from a existing file.
Questions:
How should I store and create the folder/file structure assuming that the folder structure will vary based on user's choices.
How should I edit/add/remove code from an existing file.
node.js npm starter-kits
add a comment |
I want to create a Project Starter Kit Generator for a framework just like Angular CLI with node.js.
Following are the features that will be needed assuming the command would be kit-cli
:
kit-cli init
orkit-cli am/as
: will ask few questions and based on that it will create all the files and folders to get started.kit-cli add option
: will create and add some codes into existing files and will run some system based commands if required.
I have following approach in my mind:
Putting my content into JSON files.
Based on User's choices, read content from JSON file and create folders and files.
No idea about how I will add/remove codes from a existing file.
Questions:
How should I store and create the folder/file structure assuming that the folder structure will vary based on user's choices.
How should I edit/add/remove code from an existing file.
node.js npm starter-kits
I want to create a Project Starter Kit Generator for a framework just like Angular CLI with node.js.
Following are the features that will be needed assuming the command would be kit-cli
:
kit-cli init
orkit-cli am/as
: will ask few questions and based on that it will create all the files and folders to get started.kit-cli add option
: will create and add some codes into existing files and will run some system based commands if required.
I have following approach in my mind:
Putting my content into JSON files.
Based on User's choices, read content from JSON file and create folders and files.
No idea about how I will add/remove codes from a existing file.
Questions:
How should I store and create the folder/file structure assuming that the folder structure will vary based on user's choices.
How should I edit/add/remove code from an existing file.
node.js npm starter-kits
node.js npm starter-kits
asked Mar 26 at 10:47
DDDDDD
174 bronze badges
174 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can use node file system for that or a pure shell script. With node:
const fs = require("fs");
fs.writeFile(filePath, fileData, (err,res) =>
if(err) console.log(err);
console.log(res);
);
To write files in node:
fs.readFile('./file3.json', (err,res) =>
let file = res;
console.log(res.toString('utf-8'));
);
You can wrap the fs.writeFile so you can reuse it with all files you need, like this:
createFile('./file1.json', '"pro1": "value1"', "prop2": "value2"');
createFile('./file2.json', '"pro3": "value3"', "prop4": "value4"');
createFile('./file3.json', '"pro5": "value5"', "prop6": "value6"');
function createFile(path, data)
fs.writeFile(path, data, (err,res) =>
if(err) console.log(err);
console.log(res);
);
This is how you can read a js file:
fs.readFile('./file.js', (err,res) =>
let file = res.toString('utf-8');
console.log(file);
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
console.log(lines[i]);
);
This is how you would add modules to it:
let modules = ['const def = require("def");', 'const xyz = require("xyz");'];
fs.readFile('./abc.js', (err,res) =>
let file = res.toString('utf-8');
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
if(i==0)
let mod = '';
for(var j = 0; j < modules.length; j++)
mod += modules[j] + "n";
lines[i] = mod + lines[i];
let newFile = lines.join('n');
createFile('./abc.js', newFile);
);
We are checking if we are at the first line of the file, so we know thats where we place the modules imports.
You can define all your modules in the array and add it to the first line before the first module, thats why:
lines[i] = mod + lines[i];
Then we take all lines and add back a new line between them to save our file.
let newFile = lines.join('n');
createFile('./abc.js', newFile);
This is how you can check if you are at the end of a method declaration:
if(lines[i].includes('});'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
To make sure you add to the right method instead of all of them:
if(lines[i].includes('});') && lines[i].includes('abc'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
And add the comment in your method declaration:
abc.method(function ()
console.log("abc called");
); // end of abc
Does fs module provide functionality to write into an existing file at a specific line by searching any phrase or code?
– DDD
Mar 26 at 11:43
For that you can use readFile to store the values in a variable and add some more content into it and then you use writeFile to save. I will add readFile to my answer.
– Carlos Jafet Neto
Mar 26 at 11:45
The problem is I will not be dealing with JSON files. It will be a .js file and I have to read the file, search for a keyword and add some code just after that keyword.
– DDD
Mar 26 at 11:54
Can you share this code? We can use the same process.
– Carlos Jafet Neto
Mar 26 at 11:55
I update the answer with the code to read js files. We create an array out of every line in the file sou you can deal with it.
– Carlos Jafet Neto
Mar 26 at 12:01
|
show 7 more comments
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55355262%2fhow-to-dynamically-create-and-write-content-inside-files-and-folders-with-nodejs%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use node file system for that or a pure shell script. With node:
const fs = require("fs");
fs.writeFile(filePath, fileData, (err,res) =>
if(err) console.log(err);
console.log(res);
);
To write files in node:
fs.readFile('./file3.json', (err,res) =>
let file = res;
console.log(res.toString('utf-8'));
);
You can wrap the fs.writeFile so you can reuse it with all files you need, like this:
createFile('./file1.json', '"pro1": "value1"', "prop2": "value2"');
createFile('./file2.json', '"pro3": "value3"', "prop4": "value4"');
createFile('./file3.json', '"pro5": "value5"', "prop6": "value6"');
function createFile(path, data)
fs.writeFile(path, data, (err,res) =>
if(err) console.log(err);
console.log(res);
);
This is how you can read a js file:
fs.readFile('./file.js', (err,res) =>
let file = res.toString('utf-8');
console.log(file);
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
console.log(lines[i]);
);
This is how you would add modules to it:
let modules = ['const def = require("def");', 'const xyz = require("xyz");'];
fs.readFile('./abc.js', (err,res) =>
let file = res.toString('utf-8');
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
if(i==0)
let mod = '';
for(var j = 0; j < modules.length; j++)
mod += modules[j] + "n";
lines[i] = mod + lines[i];
let newFile = lines.join('n');
createFile('./abc.js', newFile);
);
We are checking if we are at the first line of the file, so we know thats where we place the modules imports.
You can define all your modules in the array and add it to the first line before the first module, thats why:
lines[i] = mod + lines[i];
Then we take all lines and add back a new line between them to save our file.
let newFile = lines.join('n');
createFile('./abc.js', newFile);
This is how you can check if you are at the end of a method declaration:
if(lines[i].includes('});'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
To make sure you add to the right method instead of all of them:
if(lines[i].includes('});') && lines[i].includes('abc'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
And add the comment in your method declaration:
abc.method(function ()
console.log("abc called");
); // end of abc
Does fs module provide functionality to write into an existing file at a specific line by searching any phrase or code?
– DDD
Mar 26 at 11:43
For that you can use readFile to store the values in a variable and add some more content into it and then you use writeFile to save. I will add readFile to my answer.
– Carlos Jafet Neto
Mar 26 at 11:45
The problem is I will not be dealing with JSON files. It will be a .js file and I have to read the file, search for a keyword and add some code just after that keyword.
– DDD
Mar 26 at 11:54
Can you share this code? We can use the same process.
– Carlos Jafet Neto
Mar 26 at 11:55
I update the answer with the code to read js files. We create an array out of every line in the file sou you can deal with it.
– Carlos Jafet Neto
Mar 26 at 12:01
|
show 7 more comments
You can use node file system for that or a pure shell script. With node:
const fs = require("fs");
fs.writeFile(filePath, fileData, (err,res) =>
if(err) console.log(err);
console.log(res);
);
To write files in node:
fs.readFile('./file3.json', (err,res) =>
let file = res;
console.log(res.toString('utf-8'));
);
You can wrap the fs.writeFile so you can reuse it with all files you need, like this:
createFile('./file1.json', '"pro1": "value1"', "prop2": "value2"');
createFile('./file2.json', '"pro3": "value3"', "prop4": "value4"');
createFile('./file3.json', '"pro5": "value5"', "prop6": "value6"');
function createFile(path, data)
fs.writeFile(path, data, (err,res) =>
if(err) console.log(err);
console.log(res);
);
This is how you can read a js file:
fs.readFile('./file.js', (err,res) =>
let file = res.toString('utf-8');
console.log(file);
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
console.log(lines[i]);
);
This is how you would add modules to it:
let modules = ['const def = require("def");', 'const xyz = require("xyz");'];
fs.readFile('./abc.js', (err,res) =>
let file = res.toString('utf-8');
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
if(i==0)
let mod = '';
for(var j = 0; j < modules.length; j++)
mod += modules[j] + "n";
lines[i] = mod + lines[i];
let newFile = lines.join('n');
createFile('./abc.js', newFile);
);
We are checking if we are at the first line of the file, so we know thats where we place the modules imports.
You can define all your modules in the array and add it to the first line before the first module, thats why:
lines[i] = mod + lines[i];
Then we take all lines and add back a new line between them to save our file.
let newFile = lines.join('n');
createFile('./abc.js', newFile);
This is how you can check if you are at the end of a method declaration:
if(lines[i].includes('});'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
To make sure you add to the right method instead of all of them:
if(lines[i].includes('});') && lines[i].includes('abc'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
And add the comment in your method declaration:
abc.method(function ()
console.log("abc called");
); // end of abc
Does fs module provide functionality to write into an existing file at a specific line by searching any phrase or code?
– DDD
Mar 26 at 11:43
For that you can use readFile to store the values in a variable and add some more content into it and then you use writeFile to save. I will add readFile to my answer.
– Carlos Jafet Neto
Mar 26 at 11:45
The problem is I will not be dealing with JSON files. It will be a .js file and I have to read the file, search for a keyword and add some code just after that keyword.
– DDD
Mar 26 at 11:54
Can you share this code? We can use the same process.
– Carlos Jafet Neto
Mar 26 at 11:55
I update the answer with the code to read js files. We create an array out of every line in the file sou you can deal with it.
– Carlos Jafet Neto
Mar 26 at 12:01
|
show 7 more comments
You can use node file system for that or a pure shell script. With node:
const fs = require("fs");
fs.writeFile(filePath, fileData, (err,res) =>
if(err) console.log(err);
console.log(res);
);
To write files in node:
fs.readFile('./file3.json', (err,res) =>
let file = res;
console.log(res.toString('utf-8'));
);
You can wrap the fs.writeFile so you can reuse it with all files you need, like this:
createFile('./file1.json', '"pro1": "value1"', "prop2": "value2"');
createFile('./file2.json', '"pro3": "value3"', "prop4": "value4"');
createFile('./file3.json', '"pro5": "value5"', "prop6": "value6"');
function createFile(path, data)
fs.writeFile(path, data, (err,res) =>
if(err) console.log(err);
console.log(res);
);
This is how you can read a js file:
fs.readFile('./file.js', (err,res) =>
let file = res.toString('utf-8');
console.log(file);
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
console.log(lines[i]);
);
This is how you would add modules to it:
let modules = ['const def = require("def");', 'const xyz = require("xyz");'];
fs.readFile('./abc.js', (err,res) =>
let file = res.toString('utf-8');
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
if(i==0)
let mod = '';
for(var j = 0; j < modules.length; j++)
mod += modules[j] + "n";
lines[i] = mod + lines[i];
let newFile = lines.join('n');
createFile('./abc.js', newFile);
);
We are checking if we are at the first line of the file, so we know thats where we place the modules imports.
You can define all your modules in the array and add it to the first line before the first module, thats why:
lines[i] = mod + lines[i];
Then we take all lines and add back a new line between them to save our file.
let newFile = lines.join('n');
createFile('./abc.js', newFile);
This is how you can check if you are at the end of a method declaration:
if(lines[i].includes('});'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
To make sure you add to the right method instead of all of them:
if(lines[i].includes('});') && lines[i].includes('abc'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
And add the comment in your method declaration:
abc.method(function ()
console.log("abc called");
); // end of abc
You can use node file system for that or a pure shell script. With node:
const fs = require("fs");
fs.writeFile(filePath, fileData, (err,res) =>
if(err) console.log(err);
console.log(res);
);
To write files in node:
fs.readFile('./file3.json', (err,res) =>
let file = res;
console.log(res.toString('utf-8'));
);
You can wrap the fs.writeFile so you can reuse it with all files you need, like this:
createFile('./file1.json', '"pro1": "value1"', "prop2": "value2"');
createFile('./file2.json', '"pro3": "value3"', "prop4": "value4"');
createFile('./file3.json', '"pro5": "value5"', "prop6": "value6"');
function createFile(path, data)
fs.writeFile(path, data, (err,res) =>
if(err) console.log(err);
console.log(res);
);
This is how you can read a js file:
fs.readFile('./file.js', (err,res) =>
let file = res.toString('utf-8');
console.log(file);
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
console.log(lines[i]);
);
This is how you would add modules to it:
let modules = ['const def = require("def");', 'const xyz = require("xyz");'];
fs.readFile('./abc.js', (err,res) =>
let file = res.toString('utf-8');
let lines = file.split('n');
for(var i = 0; i < lines.length; i++)
if(i==0)
let mod = '';
for(var j = 0; j < modules.length; j++)
mod += modules[j] + "n";
lines[i] = mod + lines[i];
let newFile = lines.join('n');
createFile('./abc.js', newFile);
);
We are checking if we are at the first line of the file, so we know thats where we place the modules imports.
You can define all your modules in the array and add it to the first line before the first module, thats why:
lines[i] = mod + lines[i];
Then we take all lines and add back a new line between them to save our file.
let newFile = lines.join('n');
createFile('./abc.js', newFile);
This is how you can check if you are at the end of a method declaration:
if(lines[i].includes('});'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
To make sure you add to the right method instead of all of them:
if(lines[i].includes('});') && lines[i].includes('abc'))
lines[i] = 'tconsole.log("xyz added");nn' + lines[i];
And add the comment in your method declaration:
abc.method(function ()
console.log("abc called");
); // end of abc
edited Mar 26 at 13:07
answered Mar 26 at 11:35
Carlos Jafet NetoCarlos Jafet Neto
5454 silver badges8 bronze badges
5454 silver badges8 bronze badges
Does fs module provide functionality to write into an existing file at a specific line by searching any phrase or code?
– DDD
Mar 26 at 11:43
For that you can use readFile to store the values in a variable and add some more content into it and then you use writeFile to save. I will add readFile to my answer.
– Carlos Jafet Neto
Mar 26 at 11:45
The problem is I will not be dealing with JSON files. It will be a .js file and I have to read the file, search for a keyword and add some code just after that keyword.
– DDD
Mar 26 at 11:54
Can you share this code? We can use the same process.
– Carlos Jafet Neto
Mar 26 at 11:55
I update the answer with the code to read js files. We create an array out of every line in the file sou you can deal with it.
– Carlos Jafet Neto
Mar 26 at 12:01
|
show 7 more comments
Does fs module provide functionality to write into an existing file at a specific line by searching any phrase or code?
– DDD
Mar 26 at 11:43
For that you can use readFile to store the values in a variable and add some more content into it and then you use writeFile to save. I will add readFile to my answer.
– Carlos Jafet Neto
Mar 26 at 11:45
The problem is I will not be dealing with JSON files. It will be a .js file and I have to read the file, search for a keyword and add some code just after that keyword.
– DDD
Mar 26 at 11:54
Can you share this code? We can use the same process.
– Carlos Jafet Neto
Mar 26 at 11:55
I update the answer with the code to read js files. We create an array out of every line in the file sou you can deal with it.
– Carlos Jafet Neto
Mar 26 at 12:01
Does fs module provide functionality to write into an existing file at a specific line by searching any phrase or code?
– DDD
Mar 26 at 11:43
Does fs module provide functionality to write into an existing file at a specific line by searching any phrase or code?
– DDD
Mar 26 at 11:43
For that you can use readFile to store the values in a variable and add some more content into it and then you use writeFile to save. I will add readFile to my answer.
– Carlos Jafet Neto
Mar 26 at 11:45
For that you can use readFile to store the values in a variable and add some more content into it and then you use writeFile to save. I will add readFile to my answer.
– Carlos Jafet Neto
Mar 26 at 11:45
The problem is I will not be dealing with JSON files. It will be a .js file and I have to read the file, search for a keyword and add some code just after that keyword.
– DDD
Mar 26 at 11:54
The problem is I will not be dealing with JSON files. It will be a .js file and I have to read the file, search for a keyword and add some code just after that keyword.
– DDD
Mar 26 at 11:54
Can you share this code? We can use the same process.
– Carlos Jafet Neto
Mar 26 at 11:55
Can you share this code? We can use the same process.
– Carlos Jafet Neto
Mar 26 at 11:55
I update the answer with the code to read js files. We create an array out of every line in the file sou you can deal with it.
– Carlos Jafet Neto
Mar 26 at 12:01
I update the answer with the code to read js files. We create an array out of every line in the file sou you can deal with it.
– Carlos Jafet Neto
Mar 26 at 12:01
|
show 7 more comments
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55355262%2fhow-to-dynamically-create-and-write-content-inside-files-and-folders-with-nodejs%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown