diff --git a/.gitignore b/.gitignore index 4524de687..5e28dee54 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,6 @@ public/stylesheets/application.css public/stylesheets/sessions.css public/stylesheets/ui.css public/stylesheets/mobile.css -public/diaspora spec/fixtures/users.yaml # Uploded files and local files diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 90d24de07..625fe3f58 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -91,7 +91,7 @@ %li= link_to '@joindiaspora', "http://twitter.com/joindiaspora" %li= link_to 'github', "https://github.com/diaspora/diaspora" %li= link_to t('layouts.header.blog'), "http://blog.joindiaspora.com" - %li= link_to t('layouts.header.code'), "#{root_url}/source.tar.gz" + %li= link_to t('layouts.header.code'), "#{root_url}source.tar.gz" %li= link_to t('.whats_new'), 'https://github.com/diaspora/diaspora/wiki/Changelog' -if !@landing_page && request.url.match(/joindiaspora.com/) diff --git a/config/app_config.yml.example b/config/app_config.yml.example index da05a5749..5d2617fd6 100644 --- a/config/app_config.yml.example +++ b/config/app_config.yml.example @@ -4,7 +4,7 @@ default: - # Url of this host, as seen from the internet. + # Hostname of this host, as seen from the internet. pod_url: "http://localhost:3000" # Set this to true in order to close signups. Users will still be @@ -68,12 +68,12 @@ default: #google analytics key, if false, it won't include the javascript google_a_site: false - + #piwik integration if not set, no javascript included - piwik_id: + piwik_id: # the site url in raw format (e.g. pikwik.examplehost.com) - piwik_url: - + piwik_url: + #cloudfiles username and api-key, used for backups cloudfiles_username: 'example' diff --git a/config/environment.rb b/config/environment.rb index 9b9b045f0..0586220b5 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -27,5 +27,3 @@ end # Initialize the rails application Diaspora::Application.initialize! -# Valid as long as thin serves the assets. -ActionController::Base.asset_host = APP_CONFIG[ :pod_url] diff --git a/config/initializers/_load_app_config.rb b/config/initializers/_load_app_config.rb index 46e9d181b..8b4eda713 100644 --- a/config/initializers/_load_app_config.rb +++ b/config/initializers/_load_app_config.rb @@ -8,40 +8,35 @@ # Specific items # * pod_url: As in app_config.yml, normalized with a trailing /. # * pod_uri: An uri object derived from pod_url. -# -if defined? APP_CONFIG - false -else - require 'uri' - def load_config_yaml filename - YAML.load(File.read(filename)) - end +require 'uri' - if File.exist? "#{Rails.root}/config/app_config.yml" - all_envs = load_config_yaml "#{Rails.root}/config/app_config.yml" - all_envs = load_config_yaml "#{Rails.root}/config/app_config.yml.example" unless all_envs - else - puts "WARNING: No config/app_config.yml found! Look at config/app_config.yml.example for help." - all_envs = load_config_yaml "#{Rails.root}/config/app_config.yml.example" - end - - if all_envs[Rails.env.to_s] - APP_CONFIG = all_envs['default'].merge(all_envs[Rails.env.to_s]).symbolize_keys - else - APP_CONFIG = all_envs['default'].symbolize_keys - end - - begin - APP_CONFIG[:pod_uri] = URI.parse( APP_CONFIG[:pod_url]) - rescue - puts "WARNING: pod url " + APP_CONFIG[:pod_url] + " is not a legal URI" - end - - APP_CONFIG[:pod_url] = APP_CONFIG[:pod_uri].normalize.to_s - APP_CONFIG[:pod_url].chomp!("/"); APP_CONFIG[:pod_url]+= '/' - - if APP_CONFIG[:pod_uri].host == "example.org" && Rails.env != "test" - puts "WARNING: Please modify your app_config.yml to have a proper pod_url!" - end +def load_config_yaml filename + YAML.load(File.read(filename)) +end + +if File.exist? "#{Rails.root}/config/app_config.yml" + all_envs = load_config_yaml "#{Rails.root}/config/app_config.yml" + all_envs = load_config_yaml "#{Rails.root}/config/app_config.yml.example" unless all_envs +else + puts "WARNING: No config/app_config.yml found! Look at config/app_config.yml.example for help." + all_envs = load_config_yaml "#{Rails.root}/config/app_config.yml.example" +end + +if all_envs[Rails.env.to_s] + APP_CONFIG = all_envs['default'].merge(all_envs[Rails.env.to_s]).symbolize_keys +else + APP_CONFIG = all_envs['default'].symbolize_keys +end + +begin + APP_CONFIG[:pod_uri] = URI.parse( APP_CONFIG[:pod_url]) +rescue + puts "WARNING: pod url " + APP_CONFIG[:pod_url] + " is not a legal URI" +end + +APP_CONFIG[:pod_url] = APP_CONFIG[:pod_uri].normalize.to_s + +if APP_CONFIG[:pod_uri].host == "example.org" && Rails.env != "test" + puts "WARNING: Please modify your app_config.yml to have a proper pod_url!" end diff --git a/config/routes.rb b/config/routes.rb index fc760f684..e8b45c3ac 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -3,55 +3,54 @@ # the COPYRIGHT file. Diaspora::Application.routes.draw do - scope APP_CONFIG[:pod_uri].path || '' do + resources :status_messages, :only => [:create, :destroy, :show] + resources :comments, :only => [:create] + resources :requests, :only => [:destroy, :create] + resources :services + + resources :notifications + resources :posts, :only => [:show], :path => '/p/' - resources :status_messages, :only => [:create, :destroy, :show] - resources :comments, :only => [:create] - resources :requests, :only => [:destroy, :create] - resources :services - resources :notifications - resources :posts, :only => [:show], :path => '/p/' - match '/people/share_with' => 'people#share_with', :as => 'share_with' - resources :people do - resources :status_messages - resources :photos - end - - match '/people/by_handle' => 'people#retrieve_remote', :as => 'person_by_handle' - match '/auth/:provider/callback' => 'services#create' - match '/auth/failure' => 'services#failure' - - match 'photos/make_profile_photo' => 'photos#make_profile_photo' - resources :photos, :except => [:index] - - devise_for :users, :controllers => {:registrations => "registrations", - :password => "devise/passwords", - :invitations => "invitations"} - # added public route to user - match 'public/:username', :to => 'users#public' - match 'getting_started', :to => 'users#getting_started', :as => 'getting_started' - match 'getting_started_completed', :to => 'users#getting_started_completed' - match 'users/export', :to => 'users#export' - match 'users/export_photos', :to => 'users#export_photos' - match 'login', :to => 'users#sign_up' - resources :users, :except => [:create, :new, :show] - - match 'aspects/move_contact', :to => 'aspects#move_contact', :as => 'move_contact' - match 'aspects/add_to_aspect', :to => 'aspects#add_to_aspect', :as => 'add_to_aspect' - match 'aspects/remove_from_aspect',:to => 'aspects#remove_from_aspect', :as => 'remove_from_aspect' - match 'aspects/manage', :to => 'aspects#manage' - resources :aspects, :except => [:edit] - - #public routes - match 'webfinger', :to => 'publics#webfinger' - match 'hcard/users/:id', :to => 'publics#hcard' - match 'receive/users/:id', :to => 'publics#receive' - match 'hub', :to => 'publics#hub' - - #root - root :to => 'home#show' + match '/people/share_with' => 'people#share_with', :as => 'share_with' + resources :people do + resources :status_messages + resources :photos end + + match '/people/by_handle' => 'people#retrieve_remote', :as => 'person_by_handle' + match '/auth/:provider/callback' => 'services#create' + match '/auth/failure' => 'services#failure' + + match 'photos/make_profile_photo' => 'photos#make_profile_photo' + resources :photos, :except => [:index] + + devise_for :users, :controllers => {:registrations => "registrations", + :password => "devise/passwords", + :invitations => "invitations"} + # added public route to user + match 'public/:username', :to => 'users#public' + match 'getting_started', :to => 'users#getting_started', :as => 'getting_started' + match 'getting_started_completed', :to => 'users#getting_started_completed' + match 'users/export', :to => 'users#export' + match 'users/export_photos', :to => 'users#export_photos' + match 'login', :to => 'users#sign_up' + resources :users, :except => [:create, :new, :show] + + match 'aspects/move_contact', :to => 'aspects#move_contact', :as => 'move_contact' + match 'aspects/add_to_aspect', :to => 'aspects#add_to_aspect', :as => 'add_to_aspect' + match 'aspects/remove_from_aspect',:to => 'aspects#remove_from_aspect', :as => 'remove_from_aspect' + match 'aspects/manage', :to => 'aspects#manage' + resources :aspects, :except => [:edit] + + #public routes + match 'webfinger', :to => 'publics#webfinger' + match 'hcard/users/:id', :to => 'publics#hcard' match '.well-known/host-meta',:to => 'publics#host_meta' + match 'receive/users/:id', :to => 'publics#receive' + match 'hub', :to => 'publics#hub' + + #root + root :to => 'home#show' end diff --git a/config/server.sh b/config/server.sh index 8c3e9f083..26125509b 100644 --- a/config/server.sh +++ b/config/server.sh @@ -1,14 +1,16 @@ # # Included by script/server # +THIN_PORT=3000 +SOCKET_PORT=8080 # Choose one mode by uncommenting export RAILS_ENV='development' #export RAILS_ENV='production' #export RAILS_ENV='test' -# See thin -h for possible values. script/server sets -p . -DEFAULT_THIN_ARGS="-e $RAILS_ENV" +# See thin -h for possible values. +DEFAULT_THIN_ARGS="-p $THIN_PORT -e $RAILS_ENV" # Set to 'no' to disable server dry-run at first start # creating generated files in public/ folder. diff --git a/script/get_env.sh b/script/get_env.sh deleted file mode 100755 index 44e77e491..000000000 --- a/script/get_env.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# -# Get value from APP_CONFIG -# -# Usage get_env [key ...] - -path=$( readlink -fn $0) && cd $(dirname $path)/.. || exit 2 - -if [[ ! -e tmp/environment || tmp/environment -ot config/app_config.yml ]] -then - ruby > tmp/environment << 'EOT' - require File.join('config', 'environment.rb') - APP_CONFIG.each { |key, value| puts key.to_s + "\t" + value.to_s } - puts "pod_uri.host\t" + APP_CONFIG[:pod_uri].host.to_s - puts "pod_uri.path\t" + APP_CONFIG[:pod_uri].path.to_s - puts "pod_uri.port\t" + APP_CONFIG[:pod_uri].port.to_s -EOT -fi - -for key in $@; do - awk -v key=$key '{ if ($1 == key ) print $2 }' < tmp/environment -done - diff --git a/script/server b/script/server index dcc3d457e..b20e0d59c 100755 --- a/script/server +++ b/script/server @@ -12,17 +12,12 @@ OS=`uname -s` function init_public # Create all dynamically generated files in public/ folder { - sub_uri=$(./script/get_env.sh pod_uri.path) - if [ -n "$sub_uri" ]; then - cd public; ln -sf . ${sub_uri##/}; cd .. - fi bundle exec thin \ -d --pid log/thin.pid --address localhost --port $THIN_PORT \ start - pod_url=$(./script/get_env.sh pod_url) for ((i = 0; i < 30; i += 1)) do sleep 2 - wget -q -O tmp/server.html "$pod_url" && \ + wget -q -O tmp/server.html http://localhost:$THIN_PORT && \ rm tmp/server.html && break done bundle exec thin --pid log/thin.pid stop @@ -80,8 +75,14 @@ function redis_config config/redis.conf } -THIN_PORT=$(./script/get_env.sh 'pod_uri.port') -SOCKET_PORT=$(./script/get_env.sh 'socket_port') +# Scan for -p, find out what port thin is about to use. +args="$DEFAULT_THIN_ARGS $@" +prev_arg='' +for arg in $( echo $args | awk '{ for (i = 1; i <= NF; i++) print $i}') +do + [ "$prev_arg" = '-p' ] && THIN_PORT="$arg" + prev_arg="$arg" +done # Is someone listening on the ports already? (ipv4 only test ?) services=$( chk_service $THIN_PORT ) @@ -106,6 +107,8 @@ if [ -n "$services" ]; then exit 64 fi + + # Check if Mongo is running if ! ps ax | grep -v grep | grep mongod >/dev/null then @@ -142,4 +145,4 @@ mkdir -p -v log/thin/ bundle exec ruby ./script/websocket_server.rb& redis-server config/redis.conf &>log/redis-console.log & QUEUE=* bundle exec rake resque:work& -bundle exec thin start -p $THIN_PORT $@ +bundle exec thin start $args