Simple media ingest scriptBash Backup ScriptSimple IPSec/tunnel setup scriptNew svn repository scriptOS testing scriptSimple Bash log backup scriptSimple Bash backup script - follow-upScript to toggle touchpadSimple load testing script in bashSimple Linux upgrade script in BashMemoizing or caching Bash function results
A workplace installs custom certificates on personal devices, can this be used to decrypt HTTPS traffic?
What (else) happened July 1st 1858 in London?
Are taller landing gear bad for aircraft, particulary large airliners?
Why does this part of the Space Shuttle launch pad seem to be floating in air?
Why isn't KTEX's runway designation 10/28 instead of 9/27?
A known event to a history junkie
How do ultrasonic sensors differentiate between transmitted and received signals?
I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?
Calculating the number of days between 2 dates in Excel
Meta programming: Declare a new struct on the fly
How to check participants in at events?
For airliners, what prevents wing strikes on landing in bad weather?
Proof of Lemma: Every integer can be written as a product of primes
Can a controlled ghast be a leader of a pack of ghouls?
What is Sitecore Managed Cloud?
What is the term when two people sing in harmony, but they aren't singing the same notes?
How to deal with or prevent idle in the test team?
Did US corporations pay demonstrators in the German demonstrations against article 13?
Resetting two CD4017 counters simultaneously, only one resets
Simple image editor tool to draw a simple box/rectangle in an existing image
Female=gender counterpart?
Who must act to prevent Brexit on March 29th?
Visiting the UK as unmarried couple
What does the "3am" section means in manpages?
Simple media ingest script
Bash Backup ScriptSimple IPSec/tunnel setup scriptNew svn repository scriptOS testing scriptSimple Bash log backup scriptSimple Bash backup script - follow-upScript to toggle touchpadSimple load testing script in bashSimple Linux upgrade script in BashMemoizing or caching Bash function results
$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 7 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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
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