Simple media ingest script
Can the electrostatic force be infinite in magnitude?
What do you call the infoboxes with text and sometimes images on the side of a page we find in textbooks?
In Star Trek IV, why did the Bounty go back to a time when whales were already rare?
Greatest common substring
I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?
Lifted its hind leg on or lifted its hind leg towards?
Is the next prime number always the next number divisible by the current prime number, except for any numbers previously divisible by primes?
Why are all the doors on Ferenginar (the Ferengi home world) far shorter than the average Ferengi?
Is infinity mathematically observable?
What should I use for Mishna study?
Hostile work environment after whistle-blowing on coworker and our boss. What do I do?
Calculating the number of days between 2 dates in Excel
What will be the benefits of Brexit?
Should my PhD thesis be submitted under my legal name?
Can a malicious addon access internet history and such in chrome/firefox?
Can I Retrieve Email Addresses from BCC?
Invariance of results when scaling explanatory variables in logistic regression, is there a proof?
Proof of Lemma: Every integer can be written as a product of primes
I2C signal and power over long range (10meter cable)
Female=gender counterpart?
How will losing mobility of one hand affect my career as a programmer?
Is a naturally all "male" species possible?
Are taller landing gear bad for aircraft, particulary large airliners?
Pronouncing Homer as in modern Greek
Simple media ingest script
$begingroup$
Trying to script a simple command line tool for ingesting media to a target location following a structured naming convention.
It's functional in its current state but I'd like to know if there are things to improve.
!/usr/local/bin/bash
make target directory for transfer
make_directory()
echo -e "nnFollow the prompt to create a project directory.nn"
sleep .5
while [[ -z "$target_directory" ]]
do
echo -e "Path of target directory?"
read target_directory
done
while [[ -z "$brand" ]]
do
echo -e "nBrand Prefix?"
read brand
done
while [[ -z "$project" ]]
do
echo -e "nProject Name?"
read project
done
while [[ -z "$media_type" ]]
do
echo -e "nMedia Type?"
read media_type
done
while [[ -z "$location" ]]
do
echo -e "nLocation?"
read location
done
while [[ -z "$employee" ]]
do
echo -e "nEmployee?"
read employee
done
path=$target_directory/$(date +'%Y%m%d')_$brand_$project_$media_type_$location_$employee
echo -e "nCreating directory: $pathnn"
mkdir -p "$path"
construct rsync command
construct_rsync()
echo -e "nnFollow the prompt to construct the rsync command.nn"
while [[ -z "$source_path" ]]
do
echo -e "Path to source media?"
read source_path
done
if [[ "$option" == "2" ]]; then
while [[ -z "$target_directory" ]]
do
echo -e "Target directory?"
read destination_path
done
path=$target_directory
fi
while true;
do
read -p "Additional rsync options? [y/n] " rsync_add
case $rsync_add in
[Yy]* )
echo -e "nEnter additional rsync parameters:"
read rsync_options
break;;
[Nn]* )
break;;
*) echo "Please enter y or no!"
esac
done
echo -e "nConstructing rsync command...n"
sleep .5
echo -e "Running rsync command:n
rsync n
-r n
--info=progress2 n
--log-file=$path/$(date +'%Y%m%d')_transfer_log.txt n
$rsync_options n
$source_path/ n
$path n"
rsync -r --info=progress2 --log-file="$path/$(date +'%Y%m%d')_transfer_log.txt" $rsync_options "$source_path/" "$path"
log exit code of rsync
log()
echo -e "nCreating error log..."
echo $? > "$path/error_log.txt"
sleep .5
if [[ "$?" == "0" ]]; then
echo -e "nTransfer complete!"
elif [[ "$?" != "0" ]]; then
echo -e "nError in transfer! Please refer to error_log.txt!"
fi
read user input and run appropriate functions
while true
do
read -p "Enter [1] to start an ingest or [2] to complete a partial ingest. " option
case $option in
1 )
make_directory
sleep .5
construct_rsync
sleep .5
log
break;;
2 )
construct_rsync
sleep .5
log
break;;
* )
echo "Please enter a valid option!";;
esac
done
bash
New contributor
$endgroup$
add a comment |
$begingroup$
Trying to script a simple command line tool for ingesting media to a target location following a structured naming convention.
It's functional in its current state but I'd like to know if there are things to improve.
!/usr/local/bin/bash
make target directory for transfer
make_directory()
echo -e "nnFollow the prompt to create a project directory.nn"
sleep .5
while [[ -z "$target_directory" ]]
do
echo -e "Path of target directory?"
read target_directory
done
while [[ -z "$brand" ]]
do
echo -e "nBrand Prefix?"
read brand
done
while [[ -z "$project" ]]
do
echo -e "nProject Name?"
read project
done
while [[ -z "$media_type" ]]
do
echo -e "nMedia Type?"
read media_type
done
while [[ -z "$location" ]]
do
echo -e "nLocation?"
read location
done
while [[ -z "$employee" ]]
do
echo -e "nEmployee?"
read employee
done
path=$target_directory/$(date +'%Y%m%d')_$brand_$project_$media_type_$location_$employee
echo -e "nCreating directory: $pathnn"
mkdir -p "$path"
construct rsync command
construct_rsync()
echo -e "nnFollow the prompt to construct the rsync command.nn"
while [[ -z "$source_path" ]]
do
echo -e "Path to source media?"
read source_path
done
if [[ "$option" == "2" ]]; then
while [[ -z "$target_directory" ]]
do
echo -e "Target directory?"
read destination_path
done
path=$target_directory
fi
while true;
do
read -p "Additional rsync options? [y/n] " rsync_add
case $rsync_add in
[Yy]* )
echo -e "nEnter additional rsync parameters:"
read rsync_options
break;;
[Nn]* )
break;;
*) echo "Please enter y or no!"
esac
done
echo -e "nConstructing rsync command...n"
sleep .5
echo -e "Running rsync command:n
rsync n
-r n
--info=progress2 n
--log-file=$path/$(date +'%Y%m%d')_transfer_log.txt n
$rsync_options n
$source_path/ n
$path n"
rsync -r --info=progress2 --log-file="$path/$(date +'%Y%m%d')_transfer_log.txt" $rsync_options "$source_path/" "$path"
log exit code of rsync
log()
echo -e "nCreating error log..."
echo $? > "$path/error_log.txt"
sleep .5
if [[ "$?" == "0" ]]; then
echo -e "nTransfer complete!"
elif [[ "$?" != "0" ]]; then
echo -e "nError in transfer! Please refer to error_log.txt!"
fi
read user input and run appropriate functions
while true
do
read -p "Enter [1] to start an ingest or [2] to complete a partial ingest. " option
case $option in
1 )
make_directory
sleep .5
construct_rsync
sleep .5
log
break;;
2 )
construct_rsync
sleep .5
log
break;;
* )
echo "Please enter a valid option!";;
esac
done
bash
New contributor
$endgroup$
add a comment |
$begingroup$
Trying to script a simple command line tool for ingesting media to a target location following a structured naming convention.
It's functional in its current state but I'd like to know if there are things to improve.
!/usr/local/bin/bash
make target directory for transfer
make_directory()
echo -e "nnFollow the prompt to create a project directory.nn"
sleep .5
while [[ -z "$target_directory" ]]
do
echo -e "Path of target directory?"
read target_directory
done
while [[ -z "$brand" ]]
do
echo -e "nBrand Prefix?"
read brand
done
while [[ -z "$project" ]]
do
echo -e "nProject Name?"
read project
done
while [[ -z "$media_type" ]]
do
echo -e "nMedia Type?"
read media_type
done
while [[ -z "$location" ]]
do
echo -e "nLocation?"
read location
done
while [[ -z "$employee" ]]
do
echo -e "nEmployee?"
read employee
done
path=$target_directory/$(date +'%Y%m%d')_$brand_$project_$media_type_$location_$employee
echo -e "nCreating directory: $pathnn"
mkdir -p "$path"
construct rsync command
construct_rsync()
echo -e "nnFollow the prompt to construct the rsync command.nn"
while [[ -z "$source_path" ]]
do
echo -e "Path to source media?"
read source_path
done
if [[ "$option" == "2" ]]; then
while [[ -z "$target_directory" ]]
do
echo -e "Target directory?"
read destination_path
done
path=$target_directory
fi
while true;
do
read -p "Additional rsync options? [y/n] " rsync_add
case $rsync_add in
[Yy]* )
echo -e "nEnter additional rsync parameters:"
read rsync_options
break;;
[Nn]* )
break;;
*) echo "Please enter y or no!"
esac
done
echo -e "nConstructing rsync command...n"
sleep .5
echo -e "Running rsync command:n
rsync n
-r n
--info=progress2 n
--log-file=$path/$(date +'%Y%m%d')_transfer_log.txt n
$rsync_options n
$source_path/ n
$path n"
rsync -r --info=progress2 --log-file="$path/$(date +'%Y%m%d')_transfer_log.txt" $rsync_options "$source_path/" "$path"
log exit code of rsync
log()
echo -e "nCreating error log..."
echo $? > "$path/error_log.txt"
sleep .5
if [[ "$?" == "0" ]]; then
echo -e "nTransfer complete!"
elif [[ "$?" != "0" ]]; then
echo -e "nError in transfer! Please refer to error_log.txt!"
fi
read user input and run appropriate functions
while true
do
read -p "Enter [1] to start an ingest or [2] to complete a partial ingest. " option
case $option in
1 )
make_directory
sleep .5
construct_rsync
sleep .5
log
break;;
2 )
construct_rsync
sleep .5
log
break;;
* )
echo "Please enter a valid option!";;
esac
done
bash
New contributor
$endgroup$
Trying to script a simple command line tool for ingesting media to a target location following a structured naming convention.
It's functional in its current state but I'd like to know if there are things to improve.
!/usr/local/bin/bash
make target directory for transfer
make_directory()
echo -e "nnFollow the prompt to create a project directory.nn"
sleep .5
while [[ -z "$target_directory" ]]
do
echo -e "Path of target directory?"
read target_directory
done
while [[ -z "$brand" ]]
do
echo -e "nBrand Prefix?"
read brand
done
while [[ -z "$project" ]]
do
echo -e "nProject Name?"
read project
done
while [[ -z "$media_type" ]]
do
echo -e "nMedia Type?"
read media_type
done
while [[ -z "$location" ]]
do
echo -e "nLocation?"
read location
done
while [[ -z "$employee" ]]
do
echo -e "nEmployee?"
read employee
done
path=$target_directory/$(date +'%Y%m%d')_$brand_$project_$media_type_$location_$employee
echo -e "nCreating directory: $pathnn"
mkdir -p "$path"
construct rsync command
construct_rsync()
echo -e "nnFollow the prompt to construct the rsync command.nn"
while [[ -z "$source_path" ]]
do
echo -e "Path to source media?"
read source_path
done
if [[ "$option" == "2" ]]; then
while [[ -z "$target_directory" ]]
do
echo -e "Target directory?"
read destination_path
done
path=$target_directory
fi
while true;
do
read -p "Additional rsync options? [y/n] " rsync_add
case $rsync_add in
[Yy]* )
echo -e "nEnter additional rsync parameters:"
read rsync_options
break;;
[Nn]* )
break;;
*) echo "Please enter y or no!"
esac
done
echo -e "nConstructing rsync command...n"
sleep .5
echo -e "Running rsync command:n
rsync n
-r n
--info=progress2 n
--log-file=$path/$(date +'%Y%m%d')_transfer_log.txt n
$rsync_options n
$source_path/ n
$path n"
rsync -r --info=progress2 --log-file="$path/$(date +'%Y%m%d')_transfer_log.txt" $rsync_options "$source_path/" "$path"
log exit code of rsync
log()
echo -e "nCreating error log..."
echo $? > "$path/error_log.txt"
sleep .5
if [[ "$?" == "0" ]]; then
echo -e "nTransfer complete!"
elif [[ "$?" != "0" ]]; then
echo -e "nError in transfer! Please refer to error_log.txt!"
fi
read user input and run appropriate functions
while true
do
read -p "Enter [1] to start an ingest or [2] to complete a partial ingest. " option
case $option in
1 )
make_directory
sleep .5
construct_rsync
sleep .5
log
break;;
2 )
construct_rsync
sleep .5
log
break;;
* )
echo "Please enter a valid option!";;
esac
done
bash
bash
New contributor
New contributor
New contributor
asked 2 mins ago
usulmuaddibusulmuaddib
1
1
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
usulmuaddib is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216201%2fsimple-media-ingest-script%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
usulmuaddib is a new contributor. Be nice, and check out our Code of Conduct.
usulmuaddib is a new contributor. Be nice, and check out our Code of Conduct.
usulmuaddib is a new contributor. Be nice, and check out our Code of Conduct.
usulmuaddib is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216201%2fsimple-media-ingest-script%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown