diff --git a/bin/heroku b/bin/heroku deleted file mode 100755 index c5ca1f8a6..000000000 --- a/bin/heroku +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -set -e - -cat << EOF > .sequelizerc -var path = require('path'); - -module.exports = { - 'config': path.resolve('config.json'), - 'migrations-path': path.resolve('lib', 'migrations'), - 'models-path': path.resolve('lib', 'models'), - 'url': process.env.DATABASE_URL -} - -EOF - -cat << EOF > config.json - -{ - "production": { - } -} - -EOF diff --git a/bin/manage_users b/bin/manage_users deleted file mode 100755 index 7cce97266..000000000 --- a/bin/manage_users +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env node - -// First configure the logger so it does not spam the console -const logger = require("../lib/logger"); -logger.transports.forEach((transport) => transport.level = "warning") - -const models = require("../lib/models/"); -const readline = require("readline-sync"); -const minimist = require("minimist"); - -function showUsage(tips) { - console.log(`${tips} - -Command-line utility to create users for email-signin. - -Usage: bin/manage_users [--pass password] (--add | --del) user-email - Options: - --add Add user with the specified user-email - --del Delete user with specified user-email - --reset Reset user password with specified user-email - --pass Use password from cmdline rather than prompting -`); - process.exit(1); -} - -function getPass(argv, action) { - // Find whether we use cmdline or prompt password - if(typeof argv["pass"] !== 'string') { - return readline.question(`Password for ${argv[action]}:`, {hideEchoBack: true}); - } - console.log("Using password from commandline..."); - return argv["pass"]; -} - -// Using an async function to be able to use await inside -async function createUser(argv) { - const existing_user = await models.User.findOne({where: {email: argv["add"]}}); - // Cannot create already-existing users - if(existing_user) { - console.log(`User with e-mail ${existing_user.email} already exists! Aborting ...`); - process.exit(2); - } - - const pass = getPass(argv, "add"); - - - // Lets try to create, and check success - const ref = await models.User.create({email: argv["add"], password: pass}); - if(ref == undefined) { - console.log(`Could not create user with email ${argv["add"]}`); - process.exit(1); - } else - console.log(`Created user with email ${argv["add"]}`); -} - -// Using an async function to be able to use await inside -async function deleteUser(argv) { - // Cannot delete non-existing users - const existing_user = await models.User.findOne({where: {email: argv["del"]}}); - if(!existing_user) { - console.log(`User with e-mail ${argv["del"]} does not exist, cannot delete`); - process.exit(1); - } - - // Sadly .destroy() does not return any success value with all - // backends. See sequelize #4124 - await existing_user.destroy(); - console.log(`Deleted user ${argv["del"]} ...`); -} - - -// Using an async function to be able to use await inside -async function resetUser(argv) { - const existing_user = await models.User.findOne({where: {email: argv["reset"]}}); - // Cannot reset non-existing users - if(!existing_user) { - console.log(`User with e-mail ${argv["reset"]} does not exist, cannot reset`); - process.exit(1); - } - - const pass = getPass(argv, "reset"); - - // set password and save - existing_user.password = pass; - await existing_user.save(); - console.log(`User with email ${argv["reset"]} password has been reset`); -} - -const options = { - add: createUser, - del: deleteUser, - reset: resetUser, -}; - -// Perform commandline-parsing -const argv = minimist(process.argv.slice(2)); - -const keys = Object.keys(options); -const opts = keys.filter((key) => argv[key] !== undefined); -const action = opts[0]; - -// Check for options missing -if (opts.length === 0) { - showUsage(`You did not specify either ${keys.map((key) => `--${key}`).join(' or ')}!`); -} - -// Check if both are specified -if (opts.length > 1) { - showUsage(`You cannot ${action.join(' and ')} at the same time!`); -} -// Check if not string -if (typeof argv[action] !== 'string') { - showUsage(`You must follow an email after --${action}`); -} - -// Call respective processing functions -options[action](argv).then(function() { - process.exit(0); -}); diff --git a/bin/setup b/bin/setup deleted file mode 100755 index 1f766703d..000000000 --- a/bin/setup +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -set -e - -# run command at repo root -CURRENT_PATH=$PWD -if [ -d .git ]; then - cd "$(git rev-parse --show-toplevel)" -fi - -if ! type yarn > /dev/null -then - cat << EOF -yarn is not installed, please install Node.js, npm and yarn. -Read more on Node.js official website: https://nodejs.org -And for yarn package manager at: https://yarnpkg.com/en/ -Setup will not be run -EOF - exit 0 -fi - -echo "copy config files" -if [ ! -f config.json ]; then - cp config.json.example config.json -fi - -if [ ! -f .sequelizerc ]; then - cp .sequelizerc.example .sequelizerc -fi - -echo "install packages" -yarn install --pure-lockfile -yarn install --production=false --pure-lockfile - -cat << EOF - - -Edit the following config file to setup CodiMD server and client. -Read more info at https://github.com/codimd/server#configuration-files - -* config.json -- CodiMD config -* .sequelizerc -- db config - -EOF - -# change directory back -cd "$CURRENT_PATH"