diff --git a/install/cowyo.init b/install/cowyo.init new file mode 100755 index 0000000..069fd31 --- /dev/null +++ b/install/cowyo.init @@ -0,0 +1,90 @@ + +# This should be placed in /etc/init.d directory +# start with +# sudo /etc/init.d/shrib start +# stop with +# sudo /etc/init.d/shrib start + +dir="/home/phi/Documents/cowyo" +user="phi" +cmd="./cowyo cowyo.duckdns.org" + +name="cowyo2" +pid_file="/var/run/$name.pid" +stdout_log="/var/log/$name.log" +stderr_log="/var/log/$name.err" + +get_pid() { + cat "$pid_file" +} + +is_running() { + [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1 +} + +case "$1" in + start) + if is_running; then + echo "Already started" + else + echo "Starting $name" + cd "$dir" + sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" & + echo $! > "$pid_file" + if ! is_running; then + echo "Unable to start, see $stdout_log and $stderr_log" + exit 1 + fi + fi + ;; + stop) + if is_running; then + echo -n "Stopping $name.." + kill `get_pid` + for i in {1..10} + do + if ! is_running; then + break + fi + + echo -n "." + sleep 1 + done + echo + + if is_running; then + echo "Not stopped; may still be shutting down or shutdown may have failed" + exit 1 + else + echo "Stopped" + if [ -f "$pid_file" ]; then + rm "$pid_file" + fi + fi + else + echo "Not running" + fi + ;; + restart) + $0 stop + if is_running; then + echo "Unable to stop, will not attempt to start" + exit 1 + fi + $0 start + ;; + status) + if is_running; then + echo "Running" + else + echo "Stopped" + exit 1 + fi + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/install/install.sh b/install/install.sh new file mode 100755 index 0000000..2e93bf2 --- /dev/null +++ b/install/install.sh @@ -0,0 +1,10 @@ +apt-get update +apt-get install nginx +cp cowyo.nginx /etc/nginx/sites-available/ +cp cowyo.init /etc/init.d/ +ln -s /etc/nginx/sites-available/cowyo.nginx /etc/nginx/sites-enabled/cowyo.nginx +service nginx reload && service nginx restart +cd ../ +go build +service cowyo.init start + diff --git a/main.go b/main.go index b757d1e..91bbdc0 100755 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "net/http" + "os" "path" "runtime" "time" @@ -16,6 +17,7 @@ import ( var db *bolt.DB var open bool +var ExternalIP string func Open() error { var err error @@ -107,6 +109,10 @@ func (p *CowyoData) decode(data []byte) error { } func main() { + if len(os.Args) == 1 { + log.Fatal("You need to specify the external IP address") + } + ExternalIP = os.Args[1] Open() defer Close() r := gin.Default() @@ -123,7 +129,8 @@ func main() { wshandler(c.Writer, c.Request) } else { c.HTML(http.StatusOK, "index.tmpl", gin.H{ - "Title": title, + "Title": title, + "ExternalIP": ExternalIP, }) } diff --git a/templates/index.tmpl b/templates/index.tmpl index b005188..2f2a915 100755 --- a/templates/index.tmpl +++ b/templates/index.tmpl @@ -92,7 +92,7 @@ } // websockets - url = 'ws://cowyo.duckdns.org/ws'; + url = 'ws://{{ .ExternalIP }}/ws'; c = new WebSocket(url); send = function(data){ diff --git a/utils.go b/utils.go index 0537e10..a2621eb 100755 --- a/utils.go +++ b/utils.go @@ -1,7 +1,6 @@ package main import ( - "fmt" "math/rand" "strings" "time" @@ -14,7 +13,6 @@ func init() { rand.Seed(time.Now().Unix()) animals = []string{"fawn", "peacock", "fox terrier", "civet", "musk deer", "seastar", "pigeon", "bull", "bumblebee", "crocodile", "flying squirrel", "elephant", "leopard seal", "baboon", "porcupine", "wolverine", "spider monkey", "vampire bat", "sparrow", "manatee", "possum", "swallow", "wildcat", "bandicoot", "labradoodle", "dragonfly", "tarsier", "snowy owl", "chameleon", "boykin", "puffin", "bison", "llama", "kitten", "stinkbug", "macaw", "parrot", "leopard cat", "prawn", "panther", "dogfish", "fennec", "frigatebird", "nurse shark", "turkey", "cockatoo", "neanderthal", "crow", "gopher", "reindeer", "earwig ", "anaconda", "panda", "ant", "silver fox", "collared peccary", "puppy", "common buzzard", "moose", "binturong", "wildebeest", "lovebird", "ferret", "persian", "marine toad", "woolly mammoth", "dalmatian", "bird", "umbrellabird", "kingfisher", "kangaroo", "stallion", "russian blue", "ostrich", "owl", "tawny owl", "affenpinscher", "caiman", "elephant seal", "octopus", "meerkat", "whale shark", "buck", "donkey", "red wolf", "mountain lion", "labrador retriever", "quetzal", "chamois", "sponge", "hamster", "orangutan", "sea urchin", "uakari", "doberman", "dormouse", "saint bernard", "bull shark", "ocelot", "sparrow", "spitz", "stoat", "snapping turtle", "dragonfly", "cougar", "alligator", "walrus", "glass lizard", "malayan tiger", "frog", "tiger", "armadillo", "chinchilla", "crab", "squid", "calf", "shrew", "dolphin", "royal penguin", "dingo", "turtle", "yellow-eyed penguin", "chimpanzee", "armadillo", "boa constrictor", "rabbit", "basking", "coyote", "chinook", "osprey", "sea lion", "fly", "sperm whale", "patas monkey", "tiffany", "mountain goat", "dodo", "worm", "cat", "warthog", "peccary", "shark", "pony", "monkey", "swan", "whippet", "beagle", "cougar", "anteater", "quail", "liger", "cheetah", "woodpecker", "egret", "eagle", "moose", "warthog", "honey bee", "snail", "stag beetle", "budgie", "molly", "magpie", "rhinoceros", "elephant", "kudu", "wombat", "tree frog", "goat", "lamb", "tropicbird", "human", "hog", "tang", "pool frog", "lemur", "ox", "dog", "lizard", "echidna", "great dane", "wallaby", "hawk", "dove", "jellyfish", "sloth", "macaque", "starfish", "sun bear", "guppy", "welsh corgi", "deer", "impala", "porpoise", "gazelle", "bichon", "seal", "wolf", "zebra shark", "mole", "narwhal", "hedgehog", "sheep", "horse", "bluetick", "colt", "spadefoot toad", "wildebeest", "piranha", "basenji", "mallard", "bull mastiff", "bear", "siberian husky", "bird", "badger", "red panda", "hammerhead", "rock hyrax", "kangaroo", "marsh frog", "mule", "weasel", "dogfish", "dachsbracke", "forest elephant", "oyster", "bat", "python", "coati", "platypus", "salamander", "cat", "caterpillar", "giraffe", "snake", "kid", "falcon", "robin", "guinea fowl", "tern", "sea lion", "dingo", "bolognese", "drake", "goose", "rat", "gentoo penguin", "iguana", "quail", "mouse", "horseshoe crab", "roebuck", "cattle dog", "fish", "poodle", "frog", "wolverine", "chinchilla", "bobcat", "grey seal", "hermit crab", "carolina", "shepherd", "gila monster", "snail", "mandrill", "leopard", "frilled lizard", "echidna", "rabbit", "bison", "barracuda", "foal", "ass", "eagle", "octopus", "avocet", "siamese", "dodo", "yorkie", "cockroach", "wallaroo", "tiger", "woodlouse", "glow worm", "fossa", "buffalo", "zorse", "albatross", "indri", "seahorse", "lemur", "louse", "ostrich", "humpback whale", "millipede", "fin whale", "joey", "pinscher", "dachshund", "proboscis monkey", "pelican", "chihuahua", "dogo", "indian rhinoceros", "wasp", "siberian", "raccoon dog", "yak", "stingray", "jack russel", "water vole", "foxhound", "sheep", "stork", "horse", "monkey", "woolly monkey", "waterbuck", "dunker", "cuscus", "ibis", "giraffe", "aardvark", "hummingbird", "grizzly bear", "otter", "pike", "minke whale", "pika", "stickbug", "pelican", "dugong", "bongo", "lemming", "shrimp", "piglet", "sabre-toothed tiger", "gemsbok", "tiger shark", "tuatara", "rottweiler", "elephant shrew", "ewe", "coati", "cichlid", "akita", "gharial", "thorny devil", "duck", "macaroni penguin", "steer", "setter", "pufferfish", "donkey", "mink", "macaw", "wolfhound", "white tiger", "ram", "ant", "rat", "marten", "galapagos tortoise", "crab", "horn shark", "blue whale", "koala", "starfish", "partridge", "sea squirt", "fire-bellied toad", "chipmunk", "ibex", "maltese", "clumber", "butterfly", "manta ray", "flamingo", "opossum", "parrot", "mastiff", "water buffalo", "okapi", "salmon", "tapir", "adelie", "killer whale", "lynx", "basilisk", "indian elephant", "oyster", "manta ray", "prairie dog", "chipmunk", "locust", "dog", "cottontop", "hyena", "spectacled bear", "oriole", "cobra", "pug", "monitor", "mandrill", "antelope", "chinstrap", "zebra", "chicken", "mule", "seal", "goat", "little penguin", "gull", "tasmanian devil", "caterpillar", "tamarin", "wrasse", "woodchuck", "otter", "penguin", "porcupine", "killer whale", "bear", "ferret", "dusky", "nightingale", "slow worm", "bat", "jaguar", "humboldt", "ermine", "saola", "emu", "lobster", "weasel", "nightingale", "hound", "bombay", "platypus", "electric eel", "asian elephant", "sea otter", "uguisu", "scorpion", "fox", "jerboa", "bengal tiger", "zebu", "lion", "zonkey", "ragdoll", "caracal", "bee", "kiwi", "puma", "common loon", "jackal", "malamute", "mayfly", "baboon", "terrier", "jellyfish", "vicuna", "penguin", "desert tortoise", "muskrat", "water dragon", "zebra", "malayan civet", "burmese", "orangutan", "himalayan", "pond skater", "howler monkey", "newt", "border collie", "cow", "bearded dragon", "fish", "barn owl", "puffin", "chin", "anteater", "beaver", "canary", "hamster", "sloth", "collie", "heron", "sea dragon", "gopher", "magpie", "king crab", "flounder", "opossum", "pademelon", "capybara", "boar", "leaf-tailed gecko", "turkey", "clown fish", "musk-ox", "bulldog", "pronghorn", "hercules beetle", "reindeer", "llama", "pygmy", "eskimo dog", "kinkajou", "komodo dragon", "cuttlefish", "cub", "bloodhound", "squirrel", "gander", "moorhen", "emu", "brown bear", "javanese", "birman", "harrier", "tortoise", "antelope", "gnu", "kingfisher", "wasp", "olm", "havanese", "canaan", "lizard", "indochinese tiger", "ocelot", "mist", "hare", "discus", "cony", "orca", "rooster", "ground hog", "silver dollar", "peacock", "akbash", "somali", "beaver", "maine coon", "mouse", "eland", "squirrel", "serval", "chimpanzee", "snowshoe", "toucan", "catfish", "lynx", "coyote", "bunny", "retriever", "fur seal", "cow", "balinese", "vulture", "coral", "leopard", "raccoon", "polar bear", "okapi", "kakapo", "whale", "sand lizard", "bonobo", "moray", "gila monster", "cormorant", "bracke", "camel", "markhor", "rockhopper", "neapolitan", "black bear", "roseate spoonbill", "woodpecker", "mountain lion", "crested penguin", "hippopotamus", "puma", "camel", "alligator", "guinea pig", "heron", "siberian tiger", "river dolphin", "axolotl", "argentino", "human", "mongoose", "drever", "quokka", "common frog", "elk", "wombat", "spider monkey", "civet", "sting ray", "panther", "gar", "lionfish", "snake", "crane", "newt", "raven", "tortoise", "fire ant", "chicadee", "common toad", "pig", "manatee", "centipede", "numbat", "river turtle", "falcon", "angelfish", "chamois", "rhinoceros", "shark", "flamingo", "pheasant", "ladybird", "grasshopper", "greyhound", "lemming", "pig", "marmoset", "eel", "yorkiepoo", "tiger salamander", "mosquito", "shih tzu", "quoll", "chick", "guanaco", "walrus", "badger", "ainu", "squid", "pekingese", "gerbil", "duck", "rattlesnake", "tapir", "lobster", "catfish", "mustang", "wallaby", "mongrel", "butterfly", "booby", "bush elephant", "fox", "rattlesnake", "cockroach", "tadpole", "lark", "ape", "pied tamarin", "mare", "tetra", "squirrel monkey", "elephant seal", "dhole", "cesky", "raccoon", "newfoundland", "marmoset", "stag", "bullfrog", "black bear", "crocodile", "lion", "barb", "wolf", "vervet monkey", "beetle", "polar bear", "pointer", "grizzly bear", "meerkat", "owl", "reptile", "fousek", "gibbon", "king penguin", "budgerigar", "swan", "hartebeest", "cassowary", "borneo elephant", "oryx", "alpaca", "gerbil", "chameleon", "galapagos penguin", "vulture", "barracuda", "insect", "fishing cat", "hen", "giant clam", "hare", "polecat", "fly", "chow chow", "yak", "seahorse", "spider", "eel", "burro", "brown bear", "boxer dog", "crane", "bandicoot", "hedgehog", "dromedary", "goose", "budgerigar", "dolphin", "kelpie dog", "highland cattle", "dormouse", "duckbill", "springbok", "mongoose", "bobcat", "water buffalo", "gecko", "hornet", "iguana", "wild boar", "koala", "guinea pig", "marmot", "skink", "deer", "filly", "barnacle", "tree toad", "leopard tortoise", "appenzeller", "doe", "gecko", "mole", "mynah bird", "mau", "gilla monster", "french bulldog", "termite", "salamander", "parakeet", "finch", "horned frog", "hippopotamus", "hummingbird", "cheetah", "albatross", "jaguar", "toad", "hyena", "gorilla", "skunk", "impala", "sea slug", "scorpion fish", "jackal", "skunk", "grouse", "sea turtle", "moth", "caribou", "dugong", "bighorn sheep", "ibizan hound", "gorilla", "puffer fish", "chicken", "komodo dragon", "buffalo"} adjectives = []string{"lulling", "vile", "foul", "cheerful", "messy", "dreadful", "uneven", "stinky", "young", "sparkling", "sweltering", "verdant", "hideous", "friendly", "blistering", "rambunctious", "carefree", "fat", "sloppy", "gloomy", "awful", "anemic", "minute", "stiff", "benevolent", "ceaseless", "large", "quick", "round", "glassy", "rusty", "scarce", "odd", "shining", "even", "dowdy", "solemn", "scorching", "brief", "rotten", "new", "plush", "cozy", "meandering", "apologetic", "nimble", "busy", "strong", "great", "brilliant", "piercing", "creepy", "miniature", "narrow", "whimsical", "fantastic", "cowardly", "disgusting", "marvelous", "snug", "stern", "stingy", "angry", "spiky", "cheeky", "gorgeous", "mysterious", "flat", "clever", "charming", "dismal", "meek", "somber", "sour", "thin", "beautiful", "stubborn", "crazy", "challenging", "gaunt", "salty", "indifferent", "huge", "daring", "awkward", "picturesque", "copious", "glowing", "truthful", "rude", "petite", "cranky", "ornery", "brazen", "modest", "purring", "filthy", "rotund", "short", "splendid", "hasty", "deafening", "crawling", "furious", "tall", "mute", "ghastly", "still", "arrogant", "crabby", "haughty", "curly", "voiceless", "hot", "courageous", "late", "microscopic", "vast", "stifling", "good", "disrespectful", "bashful", "moaning", "towering", "adventurous", "idyllic", "careless", "shocking", "erratic", "heavy", "square", "hard", "jagged", "gullible", "hushed", "revolting", "content", "thrifty", "sluggish", "eternal", "greedy", "pleasant", "small", "demanding", "greasy", "enormous", "hostile", "terrible", "chilly", "speedy", "massive", "loud", "puny", "striking", "clumsy", "soaring", "brave", "fast", "delicious", "effortless", "bland", "thick", "little", "ancient", "silent", "wonderful", "stuffed", "grimy", "bitter", "muggy", "shallow", "ridiculous", "absent-minded", "fuzzy", "peculiar", "mangy", "wide", "kind", "squeaky", "screeching", "silly", "squealing", "spoiled", "gigantic", "happy", "steep", "ingenious", "modern", "juicy", "gentle", "medium", "brawny", "curved", "lumpy", "afraid", "amusing", "thundering", "cooing", "oppressive", "swollen", "grave", "sturdy", "average", "proud", "rancid", "absurd", "entertaining", "annoyed", "fussy", "precise", "subtle", "gilded", "slow", "delinquent", "nervous", "hopeful", "rich", "adequate", "shrill", "plump", "freezing", "nasty", "endless", "lavish", "worried", "courteous", "bulky", "fair", "diminutive", "groggy", "miserable", "horrid", "crooked", "monstrous", "superb", "contrary", "lazy", "fidgety", "menacing", "swift", "stale", "quarrelsome", "quiet", "askew", "tough", "simple", "sweet", "hardworking", "frosty", "whispering", "famished", "crispy", "caring", "capable", "tiny", "immense", "startled", "lovely", "high-pitched", "tasteless", "decrepit", "tense", "lousy", "straight", "excited", "ugly", "stunning", "parched", "wild", "ripe", "lonely", "optimistic", "obnoxious", "cavernous", "different", "harsh", "creaky", "grand", "difficult", "temporary", "eccentric", "muffled", "alert", "delicate", "timid", "infamous", "enchanting", "anxious", "humble", "edgy", "severe", "repulsive", "desolate", "sleepy", "slimy", "irritable", "vigilant", "generous", "rapid", "old-fashioned", "hilly", "easy", "righteous", "joyful", "surprised", "starving", "big", "early", "compassionate", "moody", "perpetual", "dishonest", "serious", "foolish", "soft", "old", "scared", "mighty", "trendy", "curious", "hissing", "savage", "dense", "steaming", "broad", "slick", "creative", "icy", "adorable", "slight", "terrified", "intense", "noisy", "cautious", "sizzling", "blithe", "fluttering", "faint", "delighted", "smelly", "lively", "frightened", "gauzy", "long", "strict", "bored", "calm", "melodic", "spicy", "relaxed", "triangular", "dull", "wise", "dangerous", "smooth", "cruel", "creeping", "dawdling", "intimidating", "exhausted", "deep", "tasty", "obtuse", "graceful", "tranquil", "raspy", "selfish", "sullen", "malicious", "ecstatic", "wrinkly", "opulent", "polite", "fetid", "husky", "prudent", "skinny", "tricky", "impatient", "loyal", "fresh"} - fmt.Println(randomAlliterateCombo()) } func randomAnimal() string { @@ -30,7 +28,6 @@ func randomAlliterateCombo() (combo string) { for { animal := randomAnimal() adjective := randomAdjective() - fmt.Println(animal, adjective, animal[0], adjective[0]) if animal[0] == adjective[0] { combo = adjective + animal break