#!/bin/bash ############################################################################### # # $0 A bash script to generate the tilde.json file as described by # http://protocol.club/~datagrok/beta-wiki/tdp.html # # This command takes no arguments, and sends outputs to stdout. # Version 1.0 # # Licensed under a the AGPL 3.0 or later, by Ubergeek (ubergeek@thunix.net) # https://www.gnu.org/licenses/gpl-3.0.en.html # ############################################################################### cat << _EOF { "name" : "thunix", "url" : "https://thunix.net", "want_users":true, "admin_email": "root@thunix.net", "signup_url": "https://www.thunix.net/signup", "description": "Thunix is a community, centered around access to a public *nix system. Thunix offers shell accounts with complete set of programming tools, and follows a continuous integration-continuous deployment of system configuration.", _EOF echo -ne "\t\"user_count\":" echo $(for i in $(members tilde); do echo $i; done | sort | uniq | wc -l)"," echo -e "\t\"generated_at\" : \"$(date)\"," echo -e "\t\"uptime\" : \"$(uptime | cut -f1 -d,)\"," member_count=$(for i in $(members tilde); do echo $i; done | sort | uniq | wc -l) echo -e "\t\"users\": [" for i in $(for i in $(members tilde); do echo $i; done | sort | uniq); do let count=$count+1 echo -e "\t{\n\t\t\"user_name\": \"$i\"," set mod_time= "$(stat -c '%Y' /home/$i/public_html/index.* 2> /dev/null | head -n1)" if [ ! "$mod_time" == "" ]; then echo -e "\t\t\"mtime\" : \"0\"," else echo -e "\t\t\"mtime\" : \"$(stat -c '%Y' /home/$i/public_html/index.* 2> /dev/null | head -n1)\"," fi echo -e "\t\t\"title\" : \""$(curl -L https://www.thunix.net/~$i -so - |grep -iPo '(?<=)(.*)(?=)')"\"" if [ $count -eq $(for i in $(members tilde); do echo $i; done | sort | uniq | wc -l) ]; then echo -e "\t}" else echo -e "\t}," fi done echo -e "\t]" echo "}"