Make it all work
This commit is contained in:
parent
eb45983613
commit
4e052a33d4
@ -7,6 +7,7 @@
|
|||||||
* Don't print useless information (stuff that handled 0 files and such)
|
* Don't print useless information (stuff that handled 0 files and such)
|
||||||
* Store transcoded file paths relative to their destination's root
|
* Store transcoded file paths relative to their destination's root
|
||||||
* Add missing error codes (used but not declared)
|
* Add missing error codes (used but not declared)
|
||||||
|
* Support for newline character in filenames
|
||||||
|
|
||||||
# 1.0.4
|
# 1.0.4
|
||||||
## `BREAKING CHANGES`
|
## `BREAKING CHANGES`
|
||||||
|
|||||||
24
atom
24
atom
@ -202,7 +202,7 @@ echo '
|
|||||||
FROM destination_files
|
FROM destination_files
|
||||||
WHERE source_file_id is NULL;' >&3
|
WHERE source_file_id is NULL;' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' removecount
|
read -u4 -d $'\0' removecount
|
||||||
until (( ${#removefile[@]} == removecount ))
|
until (( ${#removefile[@]} == removecount ))
|
||||||
do
|
do
|
||||||
echo '
|
echo '
|
||||||
@ -219,7 +219,7 @@ do
|
|||||||
SELECT "AtOM:NoMoreFiles";
|
SELECT "AtOM:NoMoreFiles";
|
||||||
' >&3
|
' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
until [[ $line == AtOM:NoMoreFiles ]]
|
until [[ $line == AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
removeFileId=${line%%::AtOM:SQL:Sep::*}
|
removeFileId=${line%%::AtOM:SQL:Sep::*}
|
||||||
@ -227,7 +227,7 @@ do
|
|||||||
removeFileDestName=${line%%::AtOM:SQL:Sep::*}
|
removeFileDestName=${line%%::AtOM:SQL:Sep::*}
|
||||||
rest=${line#*::AtOM:SQL:Sep::}
|
rest=${line#*::AtOM:SQL:Sep::}
|
||||||
removefile[$removeFileId]="${destinationpath["$removeFileDestName"]}/${rest%%::AtOM:SQL:Sep::*}"
|
removefile[$removeFileId]="${destinationpath["$removeFileDestName"]}/${rest%%::AtOM:SQL:Sep::*}"
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -387,7 +387,7 @@ echo '
|
|||||||
<> CAST(source_files.last_change AS TEXT)
|
<> CAST(source_files.last_change AS TEXT)
|
||||||
AND mime_type_actions.destination_id = destinations.id
|
AND mime_type_actions.destination_id = destinations.id
|
||||||
AND mime_type_actions.action = 1;' >&3
|
AND mime_type_actions.action = 1;' >&3
|
||||||
read -u4 -d$'\0' filecount
|
read -u4 -d $'\0' filecount
|
||||||
if [ -n "$maxbatch" ] && (( maxbatch < filecount ))
|
if [ -n "$maxbatch" ] && (( maxbatch < filecount ))
|
||||||
then
|
then
|
||||||
(( togo = filecount - maxbatch ))
|
(( togo = filecount - maxbatch ))
|
||||||
@ -436,11 +436,11 @@ echo '
|
|||||||
(( maxbatch )) && echo "LIMIT $maxbatch" >&3
|
(( maxbatch )) && echo "LIMIT $maxbatch" >&3
|
||||||
echo ';
|
echo ';
|
||||||
SELECT "AtOM:NoMoreFiles";' >&3
|
SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
while ! [[ $line = AtOM:NoMoreFiles ]]
|
while ! [[ $line = AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
decodefiles+=("$line::AtOM:SQL:Sep::")
|
decodefiles+=("$line::AtOM:SQL:Sep::")
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
(( cron )) || echo -n $'Creating tasks...\033[K'
|
(( cron )) || echo -n $'Creating tasks...\033[K'
|
||||||
|
|
||||||
@ -776,11 +776,11 @@ then
|
|||||||
WHERE tasks.status = 2;
|
WHERE tasks.status = 2;
|
||||||
|
|
||||||
SELECT "AtOM:NoMoreFiles";' >&3
|
SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
while ! [[ $line = AtOM:NoMoreFiles ]]
|
while ! [[ $line = AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
failedtasks+=("$line")
|
failedtasks+=("$line")
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
for line in "${failedtasks[@]}"
|
for line in "${failedtasks[@]}"
|
||||||
do
|
do
|
||||||
@ -836,11 +836,11 @@ do
|
|||||||
SELECT "AtOM:NoMoreFiles";
|
SELECT "AtOM:NoMoreFiles";
|
||||||
' >&3
|
' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
while [[ $line != AtOM:NoMoreFiles ]]
|
while [[ $line != AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
renamefiles+=("$line")
|
renamefiles+=("$line")
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
if (( ${#renamefiles[@]} ))
|
if (( ${#renamefiles[@]} ))
|
||||||
then
|
then
|
||||||
@ -943,11 +943,11 @@ echo '
|
|||||||
|
|
||||||
(( cron )) || echo -n 'Removing obsolete files...'$'\033[K'
|
(( cron )) || echo -n 'Removing obsolete files...'$'\033[K'
|
||||||
lines=()
|
lines=()
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
while [[ $line != AtOM:NoMoreFiles ]]
|
while [[ $line != AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
lines+=("$line")
|
lines+=("$line")
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
echo 'BEGIN TRANSACTION;' >&3
|
echo 'BEGIN TRANSACTION;' >&3
|
||||||
for line in "${lines[@]}"
|
for line in "${lines[@]}"
|
||||||
|
|||||||
@ -22,11 +22,11 @@ copyFiles_action() {
|
|||||||
AND mime_type_actions.action = 2;
|
AND mime_type_actions.action = 2;
|
||||||
|
|
||||||
SELECT "AtOM:NoMoreFiles";' >&3
|
SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
while ! [[ $line = AtOM:NoMoreFiles ]]
|
while ! [[ $line = AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
copyfiles+=("$line")
|
copyfiles+=("$line")
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
|
|
||||||
echo 'BEGIN TRANSACTION;' >&3
|
echo 'BEGIN TRANSACTION;' >&3
|
||||||
|
|||||||
@ -21,7 +21,7 @@ guessPath() {
|
|||||||
LIMIT 1
|
LIMIT 1
|
||||||
),"0.0");
|
),"0.0");
|
||||||
'>&3
|
'>&3
|
||||||
read -u4 -d$'\0' timestamp
|
read -u4 -d $'\0' timestamp
|
||||||
if (( ${timestamp/./} == 0 ))
|
if (( ${timestamp/./} == 0 ))
|
||||||
then
|
then
|
||||||
return 2
|
return 2
|
||||||
@ -46,7 +46,7 @@ guessPath() {
|
|||||||
LIMIT 1
|
LIMIT 1
|
||||||
),"AtOM:NotFound");
|
),"AtOM:NotFound");
|
||||||
'>&3
|
'>&3
|
||||||
read -u4 -d$'\0' filename
|
read -u4 -d $'\0' filename
|
||||||
if [[ $filename != AtOM:NotFound ]]
|
if [[ $filename != AtOM:NotFound ]]
|
||||||
then
|
then
|
||||||
echo "${filename%/*}"
|
echo "${filename%/*}"
|
||||||
|
|||||||
@ -26,7 +26,7 @@ Select() {
|
|||||||
"WHERE ${where_statement[@]})" \
|
"WHERE ${where_statement[@]})" \
|
||||||
",'SQL::Select:not found'" \
|
",'SQL::Select:not found'" \
|
||||||
");" >&3
|
");" >&3
|
||||||
read -u 4 -d$'\0' results
|
read -u 4 -r -d $'\0' results
|
||||||
if ! [[ $results == "SQL::Select:not found" ]]
|
if ! [[ $results == "SQL::Select:not found" ]]
|
||||||
then
|
then
|
||||||
echo "$results"
|
echo "$results"
|
||||||
|
|||||||
@ -3,9 +3,12 @@ openDatabase() {
|
|||||||
[[ -f "$database" ]] || populate_db=1
|
[[ -f "$database" ]] || populate_db=1
|
||||||
rm -f "$tempdir"/sqlite.{in,out}
|
rm -f "$tempdir"/sqlite.{in,out}
|
||||||
mkfifo "$tempdir"/sqlite.{in,out}
|
mkfifo "$tempdir"/sqlite.{in,out}
|
||||||
sqlite3 -bail -newline $'\0' \
|
stdbuf -o0 sqlite3 -bail \
|
||||||
"$database" \
|
-newline $'::AtOM:SQL:EOL::\n' \
|
||||||
< "$tempdir/sqlite.in" \
|
"$database" \
|
||||||
|
< "$tempdir/sqlite.in" \
|
||||||
|
| stdbuf -o0 \
|
||||||
|
sed 's/::AtOM:SQL:EOL::/\x0/g;s/\(\x0\)\xA/\1/g' \
|
||||||
> "$tempdir/sqlite.out" &
|
> "$tempdir/sqlite.out" &
|
||||||
exec 3> "$tempdir"/sqlite.in
|
exec 3> "$tempdir"/sqlite.in
|
||||||
exec 4< "$tempdir"/sqlite.out
|
exec 4< "$tempdir"/sqlite.out
|
||||||
@ -21,7 +24,7 @@ openDatabase() {
|
|||||||
echo 'PRAGMA recursive_triggers = ON;' >&3
|
echo 'PRAGMA recursive_triggers = ON;' >&3
|
||||||
echo 'PRAGMA temp_store = 2;' >&3
|
echo 'PRAGMA temp_store = 2;' >&3
|
||||||
echo 'PRAGMA locking_mode = EXCLUSIVE;' >&3
|
echo 'PRAGMA locking_mode = EXCLUSIVE;' >&3
|
||||||
read -u4 -d $'\0'
|
read -u4 -r -d $'\0'
|
||||||
unset REPLY
|
unset REPLY
|
||||||
checkDatabaseVersion
|
checkDatabaseVersion
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,11 +18,11 @@ FROM destination_files;
|
|||||||
|
|
||||||
SELECT "AtOM::NoMoreData";' >&3
|
SELECT "AtOM::NoMoreData";' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' data
|
read -u4 -d $'\0' data
|
||||||
while [[ $data != AtOM::NoMoreData ]]
|
while [[ $data != AtOM::NoMoreData ]]
|
||||||
do
|
do
|
||||||
datas+=( "$data" )
|
datas+=( "$data" )
|
||||||
read -u4 -d$'\0' data
|
read -u4 -d $'\0' data
|
||||||
done
|
done
|
||||||
echo 'BEGIN TRANSACTION;' >&3
|
echo 'BEGIN TRANSACTION;' >&3
|
||||||
for data in "${datas[@]}"
|
for data in "${datas[@]}"
|
||||||
|
|||||||
@ -52,12 +52,12 @@ echo '
|
|||||||
;
|
;
|
||||||
|
|
||||||
SELECT "AtOM:NoMoreFiles";' >&3
|
SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
while ! [[ $line = AtOM:NoMoreFiles ]]
|
while ! [[ $line = AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
tagfiles+=("$line")
|
tagfiles+=("$line")
|
||||||
(( filecount++ ))
|
(( filecount++ ))
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
echo 'BEGIN TRANSACTION;' >&3
|
echo 'BEGIN TRANSACTION;' >&3
|
||||||
for line in "${tagfiles[@]}"
|
for line in "${tagfiles[@]}"
|
||||||
|
|||||||
@ -10,7 +10,7 @@ gettaskinfos() {
|
|||||||
FROM tasks
|
FROM tasks
|
||||||
WHERE id='$1';
|
WHERE id='$1';
|
||||||
' >&3
|
' >&3
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
taskid=${line%%::AtOM:SQL:Sep::*}
|
taskid=${line%%::AtOM:SQL:Sep::*}
|
||||||
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
|
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
|
||||||
sourcefileid=${rest%%::AtOM:SQL:Sep::*}
|
sourcefileid=${rest%%::AtOM:SQL:Sep::*}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
createworker() {
|
createworker() {
|
||||||
(( ++active ))
|
(( ++active ))
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
taskid=${line%%::AtOM:SQL:Sep::*}
|
taskid=${line%%::AtOM:SQL:Sep::*}
|
||||||
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
|
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
|
||||||
sourcefileid=${rest%%::AtOM:SQL:Sep::*}
|
sourcefileid=${rest%%::AtOM:SQL:Sep::*}
|
||||||
|
|||||||
@ -10,7 +10,7 @@ master() {
|
|||||||
WHERE status = 0;
|
WHERE status = 0;
|
||||||
'>&3
|
'>&3
|
||||||
|
|
||||||
read -u4 -d$'\0' remaining
|
read -u4 -d $'\0' remaining
|
||||||
if (( remaining == 0 ))
|
if (( remaining == 0 ))
|
||||||
then
|
then
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
@ -108,7 +108,7 @@ master() {
|
|||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
'>&3
|
'>&3
|
||||||
|
|
||||||
read -u4 -d$'\0' ready
|
read -u4 -d $'\0' ready
|
||||||
if (( ready > 0 ))
|
if (( ready > 0 ))
|
||||||
then
|
then
|
||||||
createworker
|
createworker
|
||||||
@ -194,7 +194,7 @@ master() {
|
|||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
' >&3
|
' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' ready
|
read -u4 -d $'\0' ready
|
||||||
|
|
||||||
if (( active == 0 && ready == 0 ))
|
if (( active == 0 && ready == 0 ))
|
||||||
then
|
then
|
||||||
@ -234,7 +234,7 @@ master() {
|
|||||||
WHERE status = 0;
|
WHERE status = 0;
|
||||||
'>&3
|
'>&3
|
||||||
|
|
||||||
read -u4 -d$'\0' remaining
|
read -u4 -d $'\0' remaining
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@ -121,7 +121,7 @@ getdstfiles() {
|
|||||||
;
|
;
|
||||||
SELECT "AtOM:NoMoreFiles";
|
SELECT "AtOM:NoMoreFiles";
|
||||||
'>&3
|
'>&3
|
||||||
while read -u4 -d$'\0' line
|
while read -u4 -d $'\0' line
|
||||||
do
|
do
|
||||||
if [[ $line == AtOM:NoMoreFiles ]]
|
if [[ $line == AtOM:NoMoreFiles ]]
|
||||||
then
|
then
|
||||||
@ -159,7 +159,7 @@ renameFile() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
while read -u4 -d$'\0' line
|
while read -u4 -d $'\0' line
|
||||||
do
|
do
|
||||||
if [[ $line == AtOM:NoMoreFiles ]]
|
if [[ $line == AtOM:NoMoreFiles ]]
|
||||||
then
|
then
|
||||||
|
|||||||
@ -79,7 +79,7 @@ echo 'SELECT "AtOM:NoMoreFiles";' >&3
|
|||||||
declare -a \
|
declare -a \
|
||||||
destination_names \
|
destination_names \
|
||||||
files
|
files
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
until [[ $line == AtOM:NoMoreFiles ]]
|
until [[ $line == AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
id=${line%%::AtOM:SQL:Sep::*}
|
id=${line%%::AtOM:SQL:Sep::*}
|
||||||
|
|||||||
@ -274,7 +274,7 @@ fi
|
|||||||
echo 'SELECT IFNULL(
|
echo 'SELECT IFNULL(
|
||||||
(SELECT last_seen FROM source_files ORDER BY last_seen DESC LIMIT 1),
|
(SELECT last_seen FROM source_files ORDER BY last_seen DESC LIMIT 1),
|
||||||
0);' >&3
|
0);' >&3
|
||||||
read -u4 -d$'\0' lastupdate
|
read -u4 -d $'\0' lastupdate
|
||||||
|
|
||||||
if ! [[ "$output" == - ]]
|
if ! [[ "$output" == - ]]
|
||||||
then
|
then
|
||||||
@ -369,11 +369,11 @@ COLLATE NOCASE;
|
|||||||
|
|
||||||
SELECT "AtOM:NoMoreFiles";' >&3
|
SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
until [[ $line == AtOM:NoMoreFiles ]]
|
until [[ $line == AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
files+=("$line")
|
files+=("$line")
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
|
|
||||||
for line in "${files[@]}"
|
for line in "${files[@]}"
|
||||||
@ -675,7 +675,7 @@ echo '
|
|||||||
|
|
||||||
SELECT "AtOM:NoMoreFiles";' >&3
|
SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
until [[ $line == AtOM:NoMoreFiles ]]
|
until [[ $line == AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
artist="${line%%::AtOM:SQL:Sep::*}"
|
artist="${line%%::AtOM:SQL:Sep::*}"
|
||||||
@ -685,7 +685,7 @@ do
|
|||||||
artists+=( "$artist" )
|
artists+=( "$artist" )
|
||||||
maxcountlen=$(( ${#count} > maxcountlen ? ${#count} : maxcountlen ))
|
maxcountlen=$(( ${#count} > maxcountlen ? ${#count} : maxcountlen ))
|
||||||
maxartistlen=$(( ${#artist} > maxartistlen ? ${#artist} : maxartistlen ))
|
maxartistlen=$(( ${#artist} > maxartistlen ? ${#artist} : maxartistlen ))
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
head=$(
|
head=$(
|
||||||
printf "| # | %'${maxcoutlen}s | %-${maxartistlen}s |" \
|
printf "| # | %'${maxcoutlen}s | %-${maxartistlen}s |" \
|
||||||
@ -714,7 +714,7 @@ echo '
|
|||||||
FROM source_files
|
FROM source_files
|
||||||
INNER JOIN mime_types
|
INNER JOIN mime_types
|
||||||
ON source_files.mime_type=mime_types.id;' >&3
|
ON source_files.mime_type=mime_types.id;' >&3
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
totalcount="${line%%::AtOM:SQL:Sep::*}"
|
totalcount="${line%%::AtOM:SQL:Sep::*}"
|
||||||
maxcountlen=$(printf "%'i" $totalcount)
|
maxcountlen=$(printf "%'i" $totalcount)
|
||||||
maxcountlen=${#maxcountlen}
|
maxcountlen=${#maxcountlen}
|
||||||
@ -743,7 +743,7 @@ do
|
|||||||
INNER JOIN mime_types
|
INNER JOIN mime_types
|
||||||
ON source_files.mime_type=mime_types.id
|
ON source_files.mime_type=mime_types.id
|
||||||
WHERE mime_text LIKE "'"$format"'";' >&3
|
WHERE mime_text LIKE "'"$format"'";' >&3
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
count="${line%%::AtOM:SQL:Sep::*}"
|
count="${line%%::AtOM:SQL:Sep::*}"
|
||||||
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
|
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
|
||||||
size="${rest%%::AtOM:SQL:Sep::*}"
|
size="${rest%%::AtOM:SQL:Sep::*}"
|
||||||
|
|||||||
@ -131,11 +131,11 @@ echo ') ORDER BY bitrate;' >&3
|
|||||||
|
|
||||||
echo 'SELECT "AtOM:NoMoreFiles";' >&3
|
echo 'SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
|
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
until [[ $line == AtOM:NoMoreFiles ]]
|
until [[ $line == AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
echo "${line//::AtOM:SQL:Sep::/$'\t'}"
|
echo "${line//::AtOM:SQL:Sep::/$'\t'}"
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
|
|
||||||
closeDatabase
|
closeDatabase
|
||||||
|
|||||||
@ -149,11 +149,11 @@ cat >&3 <<-EOSelect
|
|||||||
SELECT "AtOM:NoMoreFiles";
|
SELECT "AtOM:NoMoreFiles";
|
||||||
EOSelect
|
EOSelect
|
||||||
|
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
until [[ $line == AtOM:NoMoreFiles ]]
|
until [[ $line == AtOM:NoMoreFiles ]]
|
||||||
do
|
do
|
||||||
lines+=( "$line" )
|
lines+=( "$line" )
|
||||||
read -u4 -d$'\0' line
|
read -u4 -d $'\0' line
|
||||||
done
|
done
|
||||||
|
|
||||||
for line in "${lines[@]}"
|
for line in "${lines[@]}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user