Browse Source

Working prototype

master
papshmeare 2 years ago
parent
commit
b2ec3d44e9
  1. 7
      Readme.md
  2. 12
      package.json
  3. 71
      setup.sh

7
Readme.md

@ -0,0 +1,7 @@
# Welcome to envSetupScript!
This little script helps you save some time on setting up your JS environment for a fresh project. Inner workings are described via inline comments.
## Contacts
[Discord](https://discordapp.com/users/859153825075691530/)
[Telegram](https://t.me/aleksei_baranovski_tln)
## Authors
Aleksei Baranovski

12
package.json

@ -0,0 +1,12 @@
{
"name": "setupscript",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Aleksei Baranovski",
"license": "ISC"
}

71
setup.sh

@ -0,0 +1,71 @@
#!/bin/bash
#apt-get install python-software-properties
#curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash –
#apt-get install nodejs
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# brew tap gitea/tap https://gitea.com/gitea/homebrew-gitea
# brew install tea
#tea login add
echo Enter repository name
#Ask the user for a new repository name
read rname
echo Enter authors
#Ask the user for project authors
read projectAuthors
#Initialize an empty git repo
git init
#Create a first empty comment
git commit -m "initial commit" --allow-empty
#Add a dummy remote in order for tea to work(~eh)
git remote add dummy http://localhost/dummy
#Create a new repository on gitea
tea repos create --name $rname
#Remove the dummy remote
git remote remove dummy
#Add the actual remote
git remote add $rname https://git.01.kood.tech/papshmeare/$rname.git
#Set upstream so that push can be used without specifying the name
git push -u $rname master
#Initialize package.json
npm init -y
#Add authors to package.json
npm pkg set author="$projectAuthors"
#Create a separate folder for the source code
mkdir src
#Create index.js with a simple Hello world(For testing purposes)
touch src/index.js && echo "console.log('Hello World!')" >> src/index.js
#Create test.js with sample tests(for AVA testing purposes)
touch src/test.js && echo -e "import test from 'ava';\ntest('foo', (t) => {\n t.pass();\n});\n\ntest('bar', async (t) => {\n const bar = Promise.resolve('bar');\n t.is(await bar, 'barr');\n});" >> src/test.js
#Untrack /node_modules
touch .gitignore && echo "/node_modules" >> .gitignore
#Install prettier as a dev dependency
npm install -D prettier eslint
#Install prettier-plugin to work with ESLint
npm install --save-dev eslint-plugin-prettier && npm install --save-dev --save-exact prettier
npm install --save-dev eslint-config-prettier
#Initialize empty prettier config
touch .prettierrc && echo "{}" >> .prettierrc
#Initialize eslintrc properties
touch .eslintrc.yml && echo -e "extends:\n - eslint:recommended\n - plugin:prettier/recommended\nenv:\n node: true\n browser: true\n es2022: true\n\nplugins:\n - prettier\nrules:\n prettier/prettier: error\nparserOptions:\n ecmaVersion: latest\n sourceType: module
" >> .eslintrc.yml
#Create a linting script in package.json
npm set-script lint "eslint src"
#Install husky as a dev dependency, configure husky
npm install husky -D
npm set-script prepare "husky install"
npm run prepare
#Create a pre-commit script to force linting and tests to pass
npx husky add .husky/pre-commit "npm run lint && npm run test"
git add .husky/pre-commit
#Add unit testing through AVA
npm init ava
#Set package.json attribute type to module
npm pkg set type=module
#Add git alias for a formatted git log command(git lg)
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
#Add git alias for adding, commiting and pushing(git p)
git config --global alias.p '!f() { git add . && git commit -am "$@" && git push origin HEAD; }; f'
touch Readme.md && echo -e "# Welcome to $rname! \n## Contacts\n[Discord](https://discordapp.com/users/859153825075691530/)\n[Telegram](https://t.me/aleksei_baranovski_tln)\n## Authors\n$projectAuthors" >> Readme.md
Loading…
Cancel
Save