jobs:
check-files-changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
changes: ${{ steps.changed-packages-name.outputs.result }}
steps:
- uses: actions/checkout@v4.1.7
- name: Получаем перечень изменённых файлов spfx пакетов
id: changed-files-specific
uses: tj-actions/changed-files@v44.5.7
with:
json: 'true'
dir_names: 'true'
files: monorepo/spfx-packages/**
files_ignore: monorepo/spfx-packages/**/*.md
- name: Получаем имена изменённых spfx пакетов
id: changed-packages-name
uses: actions/github-script@v7.0.1
env:
ALL_CHANGED_FILES: ${{ steps.changed-files-specific.outputs.all_changed_files }}
with:
script: |
const getChangedPackagesOrLibs = require('./.gitea/scripts/js/getChangedPackagesOrLibs.js');
return getChangedPackagesOrLibs('spfx-packages');
// ./.gitea/scripts/js/getChangedPackagesOrLibs.js
/**
* Возвращает массив имён изменённых пакетов или библиотек.
*
* @param {(libs|spfx-packages)} type - Тип: библиотека или spfx-пакет
* @return {Promise<string[]>} - Массив имён изменённых пакетов или библиотек
*/
module.exports = (type) => {
const { ALL_CHANGED_FILES } = process.env;
const changedDirPaths = JSON.parse(JSON.parse(`"${ALL_CHANGED_FILES}"`));
const regex = new RegExp(`(monorepo\/${type}\/)([^\/]+)(.+)?`, 'gm');
const parentDirPaths = [
...(new Set(
changedDirPaths
.map((dirPath) => dirPath.replace(regex, '$2'))
))
];
return parentDirPaths;
}
[
"monorepo/spfx-packages/news/src/webparts/news",
"monorepo/spfx-packages/news/config",
"monorepo/spfx-packages/news",
"monorepo/spfx-packages/news/src/webparts/news/loc",
"monorepo/spfx-packages/alert/src/webparts/alert",
"monorepo/spfx-packages/alert/config",
"monorepo/spfx-packages/alert",
"monorepo/spfx-packages/alert/src/webparts/alert/loc"
]
[
"news",
"alert"
]
#!/bin/bash
set -e
FOLDER="photos"
mkdir -p $FOLDER
function download () {
local url=$1
local name=$2
filename=$(basename "$url")
extension="${filename##*.}"
wget -O"${FOLDER}/${name}.${extension}" "${url}"
}
while read line
do
name=$(echo $line | awk -F ";" ' {print $1} ' | sed -e "s/\ /_/g")
url=$(echo $line | awk -F ";" ' {print $2} ')
download "${url}" "${name}"
done < $1
$ ./script.sh table.csv
Ярков Алексей Николаевич;https://avatars2.githubusercontent.com/u/6022892?v=4&s=460
Иванов Иван Иванович;https://avatars2.githubusercontent.com/u/23380632?v=4&s=460
какой-то текст с пробелами /search?query=текст_запроса&page=56565 какой-то текст с пробелами
какой-то текст с пробелами /search?query=текст_запроса&page=100500 какой-то текст с пробелами
какой-то текст с пробелами /search?query=979879879¶m=запроса&page=100500 какой-то текст с пробелами
other line
какой-то текст с пробелами /search?query=4535345&page=100500 какой-то текст с пробелами 5465465464654
cat test.txt | grep '/search' | sed -r 's/^.+ (\/search[^[:space:]]+) .+$/\1/g'
/search?query=текст_запроса&page=56565
/search?query=текст_запроса&page=100500
/search?query=979879879¶m=запроса&page=100500
/search?query=4535345&page=100500
$ find ./test -type f -name '*.png' -exec convert {} {}.gif \;
Мне нужно взять n файлов внутри папки и соединить все в одно.
#!/bin/bash
set -e
for dirs in $(find ./test -type d -name 'images'); do
for dir in "${dirs}"; do
imgs=$(find "${dir}" -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.png')
cat ${imgs} > "${dir}"/$$.gif;
done
done
./test
├── 1
│ └── images
│ ├── 1.jpg
│ ├── 2.jpg
│ ├── 3.jpg
│ └── 4898.gif
├── 2
│ └── images
│ ├── 1.jpg
│ ├── 2.jpg
│ ├── 3.jpg
│ └── 4898.gif
├── 3
│ └── images
│ ├── 1.jpg
│ ├── 2.jpg
│ ├── 3.jpg
│ └── 4898.gif
└── images
├── 1.jpg
├── 2.jpg
├── 3.jpg
└── 4898.gif
__get_date() {
local date=$(date --date="-$1 day" +%d.%m.%Y)
echo ${date}
}
__get_url() {
local date="$1"
echo "http://webanetlabs.net/freeproxylist/proxylist_at_${date}.txt"
}
__get_status() {
local offset="$1"
local date=$(__get_date ${offset})
local __url=$(__get_url ${date})
local status=$(wget --spider -S ${__url} 2>&1 | grep "HTTP/" | awk '{print $2}')
echo "${status}"
}
get_proxy_list() {
local savefile=~/.PROXY_LIST
local counter=0
while [ $(__get_status ${counter}) != "200" ]; do
counter=$(($counter + 1))
done
local date=$(__get_date ${counter})
local url=$(__get_url ${date})
wget --output-document=${savefile} ${url} > /dev/null 2>&1
cat ${savefile}
}
#!/bin/bash
mkdir -p ./videos/{240,360,480,720}
FILE_LINKS=$1
RESULT_ROOT="./videos"
RESULT_FILE="links.txt"
HD_PATTERN="^.*\(240\|360\|480\|720\)\.mp4$"
cat $FILE_LINKS | sort | while read LINK;
do
HD=$(echo -e $LINK | sed -e "s%$HD_PATTERN%\1%")
echo "$LINK" >> ${RESULT_ROOT}/${HD}/${RESULT_FILE}
done
#!/bin/bash
# Папка для сохранения
IMG_FOLDER="./images/"
# Если отсутствует, то создаем
[ -d ${IMG_FOLDER} ] || mkdir -p ${IMG_FOLDER}
declare -a NAMES
declare -a URLS
# Читаем файлы с именами картинок и ссылками на них
# Если скрипт парсер отработал удачно,
# то в обоих файлах одинаковое количество строк
NAMES=( `cat "./result/ok.txt" | tr '\n' ' '`)
URLS=( `cat "./result/urls.txt" | tr '\n' ' '`)
nlen=${#NAMES[*]}
ulen=${#URLS[*]}
if [ $nlen -ne $ulen ]
then
echo "Количество строк в файлах не равно!"
echo "Придется запускать парсер снова!"
exit 1
fi
for (( count=1; count<$nlen; count++ ))
do
wget ${URLS[$count]} -t 3 -nc --progress=bar --random-wait -nv -O "${IMG_FOLDER}${NAMES[$count]}.jpg"
done
#!/bin/bash
#
DB_USER=root
DB_PASSWORD=root
DB_HOST=localhost
NOW=$(date +"%d-%m-%Y")
DUMP_FOLDER=${PWD}/dump/${NOW}
[ -d ${DUMP_FOLDER} ] || mkdir -p ${DUMP_FOLDER}
DB_LIST=$(echo "SHOW DATABASES WHERE \`database\` != 'mysql' AND \`database\` != 'phpmyadmin' AND \`database\` NOT LIKE '%_schema';" | mysql --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD})
for DB_NAME in $DB_LIST
do
if [ ${DB_NAME} != 'Database' ];then
DB_FOLDER=${DUMP_FOLDER}/${DB_NAME}
[ -d ${DB_FOLDER} ] || mkdir -p ${DB_FOLDER}
TABLE_LIST=$(echo "USE ${DB_NAME};SELECT \`table_name\` FROM information_schema.tables WHERE \`table_schema\` = '${DB_NAME}' AND \`table_name\` NOT LIKE 'Tables_in%';" | mysql --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD})
for TABLE_NAME in $TABLE_LIST
do
if [ ${TABLE_NAME} != 'table_name' ]; then
mysqldump --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD} -B ${DB_NAME} --tables ${TABLE_NAME} > ${DB_FOLDER}/${TABLE_NAME}.sql
fi
done
fi
done