1
0
mirror of https://git.ikl.sh/132ikl/liteshort.git synced 2023-08-10 21:13:04 +03:00

Add basic Flask/Jinja setup and basic YAML config

This commit is contained in:
132ikl 2019-02-21 15:59:21 -05:00
parent c2d8d5af22
commit 657ee72ecb
4 changed files with 64 additions and 0 deletions

3
.gitignore vendored
View File

@ -102,3 +102,6 @@ venv.bak/
# mypy # mypy
.mypy_cache/ .mypy_cache/
# PyCharm
.idea

9
config.yml Normal file
View File

@ -0,0 +1,9 @@
# Username to make admin API requests
admin_username: 'admin'
# Plaintext password to make admin API requests
# Safe to remove if admin_hashed_password is set
#admin_password: 'password'
# Hashed password (bcrypt) to make admin API requests - Preferred over plaintext, use securepass.sh to generate
admin_hashed_password: 'test'

28
liteshort.py Normal file
View File

@ -0,0 +1,28 @@
from flask import Flask
import yaml
def load_config():
new_config = yaml.load(open("config.yml"))
if "admin_hashed_password" in new_config.keys():
new_config["password"] = new_config["admin_hashed_password"]
elif "admin_password" in new_config.keys():
new_config["password"] = new_config["admin_password"]
else:
raise Exception("admin_password or admin_hashed_password must be set in config.yml")
return new_config
config = load_config()
print(config["password"])
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()

24
securepass.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/sh
## bcrypt passwd generator ##
#############################
CMD=$(which htpasswd 2>/dev/null)
OPTS="-nBC 15"
read -p "Username: " USERNAME
check_config() {
if [ -z $CMD ]; then
printf "Exiting: htpasswd is missing.\n"
exit 1
fi
if [ -z "$USERNAME" ]; then
usage
fi
}
check_config $USERNAME
printf "Generating Bcrypt hash for username: $USERNAME\n\n"
$CMD $OPTS $USERNAME
exit $?