Beri bash i ebash / Говнокод #27988 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
stop() {
  PIDS=$(/sbin/pidof $PNAME)
  CNT=0
  if [[ $PIDS != "" ]]; then
	echo -n "Stopping $PNAME: "
	killall $PNAME && echo "ok" || echo "failed"
  	while [[ $PIDS != "" ]]
  	do 
  		PIDS=$(/sbin/pidof $PNAME)
		echo -n "."
		sleep 1
		CNT=$(($CNT+1))
		if [[ $CNT -eq 3 ]]; then killall -9 $PNAME;echo -e "\n$PNAME: Force kill";break; fi
  	done
  	echo 
  else echo "$PNAME: don't start"
  fi
}

Так автор видел выключение процесса. Процесс работает с файлами на жестком диске и ему важна их целостность, поэтому за 3 секунды не завершался. А еще при gracefully shutdown пишется обновление конфига процесса на диск. Но кого волнуют такие мелочи если оно уже работает в проде 7+ лет

codemeow codemeow, (Updated )

Комментарии (9, +9)

Beri bash i ebash / Говнокод #27876 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
export $(grep PROJECT_NAME .env | xargs)
export $(grep USERID .env | xargs)
docker exec -it -u ${USERID} ${PROJECT_NAME}_application bash -l

На минуточку в проекте написанный лично разрабом до меня docker-compose.

TrueGameover TrueGameover, (Updated )

Комментарии (24, +24)

Beri bash i ebash / Говнокод #27846 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
~  cat test.sh
#!/bin/bash

for i in "$@"; do
	echo $i
done

arglist="$@"

for i in $arglist; do
	echo $i
done

 ~  sh test.sh 1 2 '3 4'
1
2
3 4
1
2
3
4
 ~ 

Застрял на отладке одного скрипта, как этим правильно пользоваться?

vistefan vistefan, (Updated )

Комментарии (227, +227)

Beri bash i ebash / Говнокод #27767 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
#!/bin/bash

status=$(xinput list-props 11 | grep 'Device Enabled' | tail -c 2 | tr -d '\n')

echo "Current TB status: $status"

if [[ $status = "0" ]]
then
    xinput enable 11
    echo "Enabled touchpad!"
else
    xinput disable 11
    echo "Disabled touchpad!"
fi

Как вам мой скриптик?

JloJle4Ka JloJle4Ka, (Updated )

Комментарии (232, +232)

Beri bash i ebash / Говнокод #27653 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
function error {
  printf "ERROR: $1\n" >&2 
}

function warning {
  printf "WARNING: $1\n"
}

function info {
  printf "INFO: $1\n"
}

function println {
  printf "$1\n"
}

function block {
  printf "\n$3\n$1 \t[$2]\n$3\n"
}

function fail {
  println "\n" 
  println "FAIL"$1
  println
}

function checkz {
  if [ -z $1 ]; then
    error "empty string"
    return 1
  fi  
  info "string \"$1\" \t[OK]"
  return 0
}

function checkx {
  if [ ! -x $1 ]; then
    error "$1 \t[NOT FOUND]"
    return 1
  fi  
  info "$1 \t[OK]"
  return 0
}

function checkb {
  if [ ! -b $1 ]; then
    error "$1 \t[NOT FOUND]"
    return 1
  fi  
  info "$1 \t[OK]"
  return 0
}

function checkc {
  if [ ! -c $1 ]; then
    error "$1 \t[NOT FOUND]"
    return 1
  fi  
  info "$1 \t[OK]"
  return 0
}

function checkf {
  if [ ! -f $1 ]; then
    error "$1 \t[NOT FOUND]"
    return 1
  fi  
  info "$1 \t[OK]"
  return 0
}

function checkd {
  if [ ! -d $1 ]; then
    error "$1 \t[NOT FOUND]"
    return 1
  fi  
  info "$1 \t[OK]"
  return 0
}

function checkd_mk {
  if [ ! -d $1 ]; then
    info "$1 \t[NOT FOUND]"
    info "$1 \t[MAKING...]"
    mkdir -p $1
    checkd $1
    return $?
  fi  
  info "$1 \t[OK]"
  return 0
}

function sized {
  sized=($(ls $1))
  return ${#sized[@]}
}

Вспомогательные функции проверки файлов и директорий, а также вывода ошибок

somebyte somebyte, (Updated )

Комментарии (18, +18)

Beri bash i ebash / Говнокод #27650 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
#!/bin/bash 
# apt install jq w3m curl

curl https://gcode.space/api/comments  \
| jq -r 'map("-"*99+"<br>"+.user_name+" "+.posted+"<br>","<ul>"+.text+"</ul>") | reduce .[] as $item (""; . + $item) '  \
|  w3m -T text/html -cols 99 -dump \
| less -R

Консольная читалка для стока ГК

3.14159265 3.14159265, (Updated )

Комментарии (214, +214)

Beri bash i ebash / Говнокод #27560 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
#!/bin/bash
set -euo pipefail

host() {
    echo "n${1}.local"
}

node() {
    echo "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4722352b07">[email protected]</a>$(host $1)"
}

build() {
    [ "${1}" -eq "1" ] && echo "build: ."
}

container() {
    cat <<EOF
  worker${1}:
    $(build $1)
    image: worker
    hostname: $(host $1)
    networks:
      backplane:
        aliases:
          - $(host $1)

    environment:
    - "NODE_NAME=$(node $1)"
    - ... прочая питушня
EOF
}

main() {
    cat <<EOF
version: '3.3'

networks:
  backplane:

services:
$(node 1)

$(node 2)

...
EOF
}

main > docker-compose.yml
docker-compose <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ceea8e">[email protected]</a>

Как тебе такое, Helm?

CHayT CHayT, (Updated )

Комментарии (35, +35)