mirror of
https://github.com/parkervcp/eggs.git
synced 2024-11-30 11:12:55 +08:00
422c41d931
### All Submissions: * [Y] Have you followed the guidelines in our Contributing document? * [Y] Have you checked to ensure there aren't other open [Pull Requests](../../pulls) for the same update/change? * [Y] Did you branch your changes and PR from that branch and not from your master branch? * If not, why?: <!-- You can erase any parts of this template not applicable to your Pull Request. --> ### Changes to an existing Egg: 1. [Y] Have you added an explanation of what your changes do and why you'd like us to include them? Adds support for private repos and changes some wording. For example, it fixes a typo and changes some instances of "git" to "GitHub" to help out people with limited experience. It also fixes an inconsistency with the discord.py egg where users could not edit the values for the discord.js egg but could on the discord.py egg. If this was intentional, feel free to undo those changes. 2. [~] Have you tested your Egg changes? It'd be helpful if someone could try this with a public repository since I was unable to find a discord.js bot in a public repo and my bot has a lot of confidential info hardcoded into it. It works fine with private repos and there seems to be no reason why it wouldn't work with public repos since I didn't change anything with respect to those.
100 lines
8.0 KiB
JSON
100 lines
8.0 KiB
JSON
{
|
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
|
"meta": {
|
|
"version": "PTDL_v1"
|
|
},
|
|
"exported_at": "2020-08-13T22:04:35-04:00",
|
|
"name": "discord.js generic",
|
|
"author": "parker@parkervcp.com",
|
|
"description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.",
|
|
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12",
|
|
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install --production; fi; \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}",
|
|
"config": {
|
|
"files": "{}",
|
|
"startup": "{\r\n \"done\": \"change this part\"\r\n}",
|
|
"logs": "{}",
|
|
"stop": "^c"
|
|
},
|
|
"scripts": {
|
|
"installation": {
|
|
"script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [[ ! https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git | sed 's:\/*$::')\r\n INSTALL_REPO=\"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.js bot from https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n \r\n if [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n \techo -e \"assuming user knows what they are doing have a good day.\"\r\n \texit 0\r\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .\r\n \tfi\r\n fi \r\nelse\r\n if [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n \r\n if [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n \techo -e \"assuming user knows what they are doing have a good day.\"\r\n \texit 0\r\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n \tfi\r\n fi \r\nfi\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
|
|
"container": "node:12-buster-slim",
|
|
"entrypoint": "bash"
|
|
}
|
|
},
|
|
"variables": [
|
|
{
|
|
"name": "Install Repo",
|
|
"description": "The GitHub repo to clone and install the discord js bot from.",
|
|
"env_variable": "INSTALL_REPO",
|
|
"default_value": "",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "nullable|string|max:128"
|
|
},
|
|
{
|
|
"name": "Username",
|
|
"description": "The GitHub username. Leave this field blank if the GitHub repo is NOT a private repo.",
|
|
"env_variable": "USERNAME",
|
|
"default_value": "",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "nullable|string|max:128"
|
|
},
|
|
{
|
|
"name": "Password",
|
|
"description": "The GitHub password. Leave this field blank if the GitHub repo is NOT a private repo.",
|
|
"env_variable": "PASSWORD",
|
|
"default_value": "",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "nullable|string|max:128"
|
|
},
|
|
{
|
|
"name": "Install Branch",
|
|
"description": "The branch of the bot to install.",
|
|
"env_variable": "INSTALL_BRANCH",
|
|
"default_value": "",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "nullable|string|max:32"
|
|
},
|
|
{
|
|
"name": "User Uploaded Files",
|
|
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
|
|
"env_variable": "USER_UPLOAD",
|
|
"default_value": "0",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "required|bool"
|
|
},
|
|
{
|
|
"name": "Auto Update",
|
|
"description": "Pull the latest files on startup when using a GitHub repo.",
|
|
"env_variable": "AUTO_UPDATE",
|
|
"default_value": "0",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "required|boolean"
|
|
},
|
|
{
|
|
"name": "Bot js file",
|
|
"description": "The file that starts the bot.",
|
|
"env_variable": "BOT_JS_FILE",
|
|
"default_value": "index.js",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "required|string"
|
|
},
|
|
{
|
|
"name": "Additional Node packages",
|
|
"description": "Install additional node packages.\r\n\r\nUse spaces to separate.",
|
|
"env_variable": "NODE_PACKAGES",
|
|
"default_value": "",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "nullable|string"
|
|
}
|
|
]
|
|
}
|