diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/.fonctions | 30 | ||||
| -rw-r--r-- | scripts/install | 39 | ||||
| -rw-r--r-- | scripts/remove | 1 |
3 files changed, 60 insertions, 10 deletions
diff --git a/scripts/.fonctions b/scripts/.fonctions index 7d9c54d..59e4f46 100644 --- a/scripts/.fonctions +++ b/scripts/.fonctions @@ -89,6 +89,27 @@ FIND_PORT () { # Search free port CHECK_VAR "$port" "port empty" } +SETUP_SOURCE () { # Download source, decompress and copu into $final_path + src=$(cat ../sources/source_md5 | awk -F' ' {'print $2'}) + sudo wget -nv -i ../sources/source_url -O $src + # Checks the checksum of the downloaded source. + # md5sum -c ../sources/source_md5 --status || ynh_die "Corrupt source" + # Decompress source + if [ "$(echo ${src##*.})" == "tgz" ]; then + tar -x -f $src + elif [ "$(echo ${src##*.})" == "zip" ]; then + unzip -q $src + else + false # Unsupported archive format. + fi + # Copy file source + sudo cp -a $(cat ../sources/source_dir)/. "$final_path/live" + # Copy additional file and modified + if test -e "../sources/ajouts"; then + sudo cp -a ../sources/ajouts/. "$final_path" + fi +} + ### REMOVE SCRIPT @@ -173,6 +194,15 @@ ynh_psql_create_db() { } +# Drop a role +# +# usage: ynh_mysql_drop_role db +# | arg: db - the database name to drop +ynh_psql_drop_role() { + sudo su -c "psql" postgres <<< \ + "DROP ROLE ${1};" +} + # Drop a database # # usage: ynh_mysql_drop_db db diff --git a/scripts/install b/scripts/install index 41d430e..11c3f1a 100644 --- a/scripts/install +++ b/scripts/install @@ -61,23 +61,32 @@ ynh_app_setting_set $app final_path $final_path # Install de Node.js pushd /opt -curl -sL https://deb.nodesource.com/setup_4.x | bash - +curl -sL https://deb.nodesource.com/setup_4.x | sudo bash - sudo apt-get -y install nodejs npm install -g yarn # Create DB without password +sudo systemctl restart postgresql ynh_psql_create_db_without_password "$app" # Download all Ruby source sudo git clone https://github.com/rbenv/rbenv.git $final_path/.rbenv -git clone https://github.com/rbenv/ruby-build.git $final_path/.rbenv/plugins/ruby-build -git clone https://github.com/tootsuite/mastodon.git $final_path/live +sudo git clone https://github.com/rbenv/ruby-build.git $final_path/.rbenv/plugins/ruby-build + +# Be king rewind (/var/cache/yunohost/from_file/scripts) +popd + +# Get Mastodon last version +sudo mkdir "${final_path}/live" +SETUP_SOURCE sudo chown -R $app: "${final_path}" # Install de rbenv sudo su - $app <<COMMANDS pushd ~/.rbenv src/configure && make -C src +echo 'cd $HOME' >> ~/.bashrc +echo 'export PATH="/opt/mastodon/.rbenv/bin:/opt/mastodon/live/bin:$PATH"' >> ~/.profile echo 'export PATH="/opt/mastodon/.rbenv/bin:/opt/mastodon/live/bin:$PATH"' >> ~/.bashrc echo 'eval "\$(rbenv init -)"' >> ~/.bashrc COMMANDS @@ -91,7 +100,7 @@ RCOMMANDS # Create symlink for ruby sudo ln -s /opt/mastodon/.rbenv/versions/2.3.1/bin/ruby /usr/bin/ruby || true -# # Install Mastodon +# Install Mastodon sudo su - $app <<MCOMMANDS pushd ~/live /opt/mastodon/.rbenv/versions/2.3.1/bin/gem install bundler @@ -99,6 +108,12 @@ bin/bundle install --deployment --without development test yarn install MCOMMANDS +# Vérif Mastodon +sudo su - $app <<VCOMMANDS +pushd ~ +type rbenv +VCOMMANDS + # Adjust Mastodon config pushd $final_path/live/ sudo cp -a .env.production.sample .env.production @@ -118,16 +133,20 @@ sudo sed -i 's,SMTP_FROM_ADDRESS=notifications@example.com,SMTP_FROM_ADDRESS='${ # Create database # Preconfig CSS & JS -# Create admin user -# Create confirm email -sudo su - $app <<ENDCOMMANDS + +sudo su - $app <<CCOMMANDS pushd ~/live RAILS_ENV=production bin/bundle exec rails db:setup -RAILS_ENV=production bin/bundle exec rails assets:precompile -ENDCOMMANDS +# RAILS_ENV=production bin/bundle exec rails assets:precompile +CCOMMANDS +# Create admin user +# Create confirm email +sudo su - $app <<ACOMMANDS +pushd ~/live # RAILS_ENV=production bin/bundle exec rails mastodon:make_admin USERNAME=$admin_mastodon # RAILS_ENV=production bin/bundle exec rails mastodon:confirm_email USER_EMAIL=$admin_mastodon@$domain +ACOMMANDS # Add Services pushd /var/cache/yunohost/from_file/scripts @@ -174,5 +193,5 @@ fi # Reload SSOwat configuration sudo yunohost app ssowatconf -# Reload Nginx and regenerate SSOwat conf +# Reload Nginx sudo systemctl reload nginx
\ No newline at end of file diff --git a/scripts/remove b/scripts/remove index bbb9b5b..2b55b23 100644 --- a/scripts/remove +++ b/scripts/remove @@ -60,6 +60,7 @@ fi # delete postgresql database & user ynh_psql_drop_db "${app}_production" +ynh_psql_drop_role "${app}" # Remove Debian package #sudo apt-get remove --purge -y imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file curl git |
