Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-09-20 16:18:24 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-09-20 16:18:24 +0300
commit0653e08efd039a5905f3fa4f6e9cef9f5d2f799c (patch)
tree4dcc884cf6d81db44adae4aa99f8ec1233a41f55 /bin
parent744144d28e3e7fddc117924fef88de5d9674fe4c (diff)
Add latest changes from gitlab-org/gitlab@14-3-stable-eev14.3.0-rc42
Diffstat (limited to 'bin')
-rwxr-xr-xbin/background_jobs83
-rwxr-xr-xbin/background_jobs_sk67
-rwxr-xr-xbin/background_jobs_sk_cluster76
-rwxr-xr-xbin/bundle4
-rwxr-xr-xbin/pngquant64
-rwxr-xr-xbin/rspec2
-rwxr-xr-xbin/rspec-stackprof2
7 files changed, 146 insertions, 152 deletions
diff --git a/bin/background_jobs b/bin/background_jobs
index cbc501094c4..6aebc8126c6 100755
--- a/bin/background_jobs
+++ b/bin/background_jobs
@@ -1,9 +1,80 @@
#!/usr/bin/env bash
-cd $(dirname $0)/.. || exit 1
+cd $(dirname $0)/..
+app_root=$(pwd)
+sidekiq_workers=${SIDEKIQ_WORKERS:-1}
+sidekiq_pidfile="$app_root/tmp/pids/sidekiq-cluster.pid"
+sidekiq_logfile="$app_root/log/sidekiq.log"
+gitlab_user=$(ls -l config.ru | awk '{print $3}')
-if [ -n "$SIDEKIQ_WORKERS" ] ; then
- exec bin/background_jobs_sk_cluster "$@"
-else
- exec bin/background_jobs_sk "$@"
-fi
+warn()
+{
+ echo "$@" 1>&2
+}
+
+get_sidekiq_pid()
+{
+ if [ ! -f $sidekiq_pidfile ]; then
+ warn "No pidfile found at $sidekiq_pidfile; is Sidekiq running?"
+ return
+ fi
+
+ cat $sidekiq_pidfile
+}
+
+stop()
+{
+ sidekiq_pid=$(get_sidekiq_pid)
+
+ if [ $sidekiq_pid ]; then
+ kill -TERM $sidekiq_pid
+ fi
+}
+
+restart()
+{
+ if [ -f $sidekiq_pidfile ]; then
+ stop
+ fi
+
+ warn "Sidekiq output will be written to $sidekiq_logfile"
+ start_sidekiq "$@" >> $sidekiq_logfile 2>&1
+}
+
+start_sidekiq()
+{
+ cmd="exec"
+ chpst=$(command -v chpst)
+
+ if [ -n "$chpst" ]; then
+ cmd="${cmd} ${chpst} -P"
+ fi
+
+ # sidekiq-cluster expects '*' '*' arguments (one wildcard for each process).
+ for (( i=1; i<=$sidekiq_workers; i++ ))
+ do
+ processes_args+=("*")
+ done
+
+ ${cmd} bin/sidekiq-cluster "${processes_args[@]}" -P $sidekiq_pidfile -e $RAILS_ENV "$@"
+}
+
+action="$1"
+shift
+
+case "$action" in
+ stop)
+ stop
+ ;;
+ start)
+ restart "$@" &
+ ;;
+ start_foreground)
+ start_sidekiq "$@"
+ ;;
+ restart)
+ restart "$@" &
+ ;;
+ *)
+ echo "Usage: RAILS_ENV=<env> SIDEKIQ_WORKERS=<n> $0 {stop|start|start_foreground|restart}"
+esac
diff --git a/bin/background_jobs_sk b/bin/background_jobs_sk
deleted file mode 100755
index 0e9a5365d44..00000000000
--- a/bin/background_jobs_sk
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env bash
-
-cd $(dirname $0)/..
-app_root=$(pwd)
-sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid"
-sidekiq_logfile="$app_root/log/sidekiq.log"
-sidekiq_config="$app_root/config/sidekiq_queues.yml"
-gitlab_user=$(ls -l config.ru | awk '{print $3}')
-
-warn()
-{
- echo "$@" 1>&2
-}
-
-stop()
-{
- bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1
-}
-
-restart()
-{
- if [ -f $sidekiq_pidfile ]; then
- stop
- fi
-
- pkill -u $gitlab_user -f 'sidekiq [0-9]'
- start_sidekiq -P $sidekiq_pidfile -d -L $sidekiq_logfile "$@" >> $sidekiq_logfile 2>&1
-}
-
-# Starts on foreground but output to the logfile instead stdout.
-start_silent()
-{
- start_sidekiq "$@" >> $sidekiq_logfile 2>&1
-}
-
-start_sidekiq()
-{
- cmd="exec"
- chpst=$(command -v chpst)
-
- if [ -n "$chpst" ]; then
- cmd="${cmd} ${chpst} -P"
- fi
-
- ${cmd} bundle exec sidekiq -C "${sidekiq_config}" -e $RAILS_ENV "$@"
-}
-
-case "$1" in
- stop)
- stop
- ;;
- start)
- restart "$@"
- ;;
- start_silent)
- warn "Deprecated: Will be removed at 13.0 (see https://gitlab.com/gitlab-org/gitlab/-/issues/196731)."
- start_silent
- ;;
- start_foreground)
- start_sidekiq "$@"
- ;;
- restart)
- restart "$@"
- ;;
- *)
- echo "Usage: RAILS_ENV=<env> $0 {stop|start|start_silent|start_foreground|restart}"
-esac
diff --git a/bin/background_jobs_sk_cluster b/bin/background_jobs_sk_cluster
deleted file mode 100755
index d48b5484fce..00000000000
--- a/bin/background_jobs_sk_cluster
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/env bash
-
-cd $(dirname $0)/..
-app_root=$(pwd)
-sidekiq_pidfile="$app_root/tmp/pids/sidekiq-cluster.pid"
-sidekiq_logfile="$app_root/log/sidekiq.log"
-gitlab_user=$(ls -l config.ru | awk '{print $3}')
-
-warn()
-{
- echo "$@" 1>&2
-}
-
-get_sidekiq_pid()
-{
- if [ ! -f $sidekiq_pidfile ]; then
- warn "No pidfile found at $sidekiq_pidfile; is Sidekiq running?"
- return
- fi
-
- cat $sidekiq_pidfile
-}
-
-stop()
-{
- sidekiq_pid=$(get_sidekiq_pid)
-
- if [ $sidekiq_pid ]; then
- kill -TERM $sidekiq_pid
- fi
-}
-
-restart()
-{
- if [ -f $sidekiq_pidfile ]; then
- stop
- fi
-
- warn "Sidekiq output will be written to $sidekiq_logfile"
- start_sidekiq "$@" >> $sidekiq_logfile 2>&1
-}
-
-start_sidekiq()
-{
- cmd="exec"
- chpst=$(command -v chpst)
-
- if [ -n "$chpst" ]; then
- cmd="${cmd} ${chpst} -P"
- fi
-
- # sidekiq-cluster expects '*' '*' arguments (one wildcard for each process).
- for (( i=1; i<=$SIDEKIQ_WORKERS; i++ ))
- do
- processes_args+=("*")
- done
-
- ${cmd} bin/sidekiq-cluster "${processes_args[@]}" -P $sidekiq_pidfile -e $RAILS_ENV "$@"
-}
-
-case "$1" in
- stop)
- stop
- ;;
- start)
- restart "$@" &
- ;;
- start_foreground)
- start_sidekiq "$@"
- ;;
- restart)
- restart "$@" &
- ;;
- *)
- echo "Usage: RAILS_ENV=<env> SIDEKIQ_WORKERS=<n> $0 {stop|start|start_foreground|restart}"
-esac
diff --git a/bin/bundle b/bin/bundle
index f19acf5b5cc..b70fcaf837b 100755
--- a/bin/bundle
+++ b/bin/bundle
@@ -1,3 +1,5 @@
#!/usr/bin/env ruby
-ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
+
+require_relative '../config/bundler_setup'
+
load Gem.bin_path('bundler', 'bundle')
diff --git a/bin/pngquant b/bin/pngquant
new file mode 100755
index 00000000000..8434e9d3ec9
--- /dev/null
+++ b/bin/pngquant
@@ -0,0 +1,64 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+require 'rails'
+require 'png_quantizator'
+require 'parallel'
+require 'rainbow/ext/string'
+require_relative '../tooling/lib/tooling/images'
+
+return if Rails.env.production?
+
+def usage
+ puts <<~EOF
+ Usage: #{$0} [compress|lint] [PATH..]
+
+ compress Compress all documentation PNG images using pngquant.
+ lint Checks that all documentation PNG images have been compressed with pngquant.
+
+ PATH One or more files or directories. If empty, `doc/**/*.png` is used.
+
+ EOF
+end
+
+command = ARGV.shift
+paths = ARGV.presence || ['doc']
+
+files = paths.flat_map do |path|
+ File.directory?(path) ? Dir.glob(File.join(path, '/**/*.png')) : path
+end
+
+case command
+when 'compress'
+ puts "Compressing #{files.size} PNG files"
+
+ Parallel.each(files) do |file|
+ was_uncompressed, savings = Tooling::Image.compress_image(file)
+
+ if was_uncompressed
+ puts "#{file} was reduced by #{savings} bytes"
+ end
+ end
+when 'lint'
+ puts "Checking #{files.size} PNG files"
+
+ uncompressed_files = Parallel.map(files) do |file|
+ is_uncompressed, _ = Tooling::Image.compress_image(file, true)
+ if is_uncompressed
+ puts "Uncompressed file detected: ".color(:red) + file
+ file
+ end
+ end.compact
+
+ if uncompressed_files.empty?
+ puts "All documentation images are optimally compressed!".color(:green)
+ else
+ warn(
+ "The #{uncompressed_files.size} image(s) above have not been optimally compressed using pngquant.".color(:red),
+ 'Please run "bin/pngquant compress" and commit the result.'
+ )
+ abort
+ end
+else
+ usage
+end
diff --git a/bin/rspec b/bin/rspec
index 4236753c9c1..5aebc7336fe 100755
--- a/bin/rspec
+++ b/bin/rspec
@@ -5,5 +5,5 @@ begin
rescue LoadError => e
raise unless e.message.include?('spring')
end
-require 'bundler/setup'
+require_relative '../config/bundler_setup'
load Gem.bin_path('rspec-core', 'rspec')
diff --git a/bin/rspec-stackprof b/bin/rspec-stackprof
index 3bef45c607c..018bfe7da4b 100755
--- a/bin/rspec-stackprof
+++ b/bin/rspec-stackprof
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-require 'bundler/setup'
+require_relative '../config/bundler_setup'
require 'stackprof'
$:.unshift 'spec'
require 'spec_helper'