1
0
mirror of https://gitlab.com/MisterBiggs/blog-static.git synced 2025-06-15 22:56:49 +00:00
2022-01-25 10:40:06 -07:00

866 lines
38 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Create a Backup of your Chocolatey Packages using Boxstarter</title>
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="../assets/built/screen.css" />
<link rel="shortcut icon" href="../favicon.png" type="image/png" />
<link
rel="canonical"
href="https://blog.ansonbiggs.com/create-a-backup-of-your-chocolatey-packages-using-boxstarter/"
/>
<meta name="referrer" content="no-referrer-when-downgrade" />
<link
rel="amphtml"
href="https://blog.ansonbiggs.com/create-a-backup-of-your-chocolatey-packages-using-boxstarter/amp/"
/>
<meta property="og:site_name" content="Anson 3D" />
<meta property="og:type" content="article" />
<meta
property="og:title"
content="Create a Backup of your Chocolatey Packages using Boxstarter"
/>
<meta
property="og:description"
content="Introduction
Chocolatey [https://chocolatey.org/] is command line package manager for Windows
that gives you a very Linux -esque software installation experience. This guide
expects that you already are using Chocolatey, but in case you need convincing
here&#x27;s what makes it so awesome, for example: choco install google chrome will
install Google Chrome on your computer without having to wait for the installer.
You can even get fancy and list as many packages as you would like with a -y
flag to a"
/>
<meta
property="og:url"
content="https://blog.ansonbiggs.com/create-a-backup-of-your-chocolatey-packages-using-boxstarter/"
/>
<meta
property="article:published_time"
content="2019-02-04T14:00:00.000Z"
/>
<meta property="article:modified_time" content="2019-02-04T19:45:07.000Z" />
<meta property="article:tag" content="Code" />
<meta property="article:tag" content="Fluff" />
<meta property="article:tag" content="Review" />
<meta property="article:tag" content="Python" />
<meta
property="article:publisher"
content="https://www.facebook.com/Anson3D"
/>
<meta name="twitter:card" content="summary" />
<meta
name="twitter:title"
content="Create a Backup of your Chocolatey Packages using Boxstarter"
/>
<meta
name="twitter:description"
content="Introduction
Chocolatey [https://chocolatey.org/] is command line package manager for Windows
that gives you a very Linux -esque software installation experience. This guide
expects that you already are using Chocolatey, but in case you need convincing
here&#x27;s what makes it so awesome, for example: choco install google chrome will
install Google Chrome on your computer without having to wait for the installer.
You can even get fancy and list as many packages as you would like with a -y
flag to a"
/>
<meta
name="twitter:url"
content="https://blog.ansonbiggs.com/create-a-backup-of-your-chocolatey-packages-using-boxstarter/"
/>
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="Anson Biggs" />
<meta name="twitter:label2" content="Filed under" />
<meta name="twitter:data2" content="Code, Fluff, Review, Python" />
<meta name="twitter:site" content="@Anson_3D" />
<meta name="twitter:creator" content="@Anson_3D" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"publisher": {
"@type": "Organization",
"name": "Anson 3D",
"logo": {
"@type": "ImageObject",
"url": "https://blog.ansonbiggs.com/favicon.png",
"width": 60,
"height": 60
}
},
"author": {
"@type": "Person",
"name": "Anson Biggs",
"image": {
"@type": "ImageObject",
"url": "https://blog.ansonbiggs.com/content/images/2019/09/anson_suit_cropped.jpg",
"width": 1513,
"height": 1090
},
"url": "https://blog.ansonbiggs.com/author/anson/",
"sameAs": ["http://ansonbiggs.com", "https://twitter.com/Anson_3D"]
},
"headline": "Create a Backup of your Chocolatey Packages using Boxstarter",
"url": "https://blog.ansonbiggs.com/create-a-backup-of-your-chocolatey-packages-using-boxstarter/",
"datePublished": "2019-02-04T14:00:00.000Z",
"dateModified": "2019-02-04T19:45:07.000Z",
"keywords": "Code, Fluff, Review, Python",
"description": "Introduction\nChocolatey [https://chocolatey.org/] is command line package manager for Windows\nthat gives you a very Linux -esque software installation experience. This guide\nexpects that you already are using Chocolatey, but in case you need convincing\nhere&#x27;s what makes it so awesome, for example: choco install google chrome will\ninstall Google Chrome on your computer without having to wait for the installer.\nYou can even get fancy and list as many packages as you would like with a -y \nflag to a",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://blog.ansonbiggs.com/"
}
}
</script>
<script
src="../public/ghost-sdk.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script type="8a4a165e83b3fa6cca9c2dab-text/javascript">
ghost.init({
clientId: "ghost-frontend",
clientSecret: "245af786ee20"
});
</script>
<meta name="generator" content="Ghost 2.31" />
<link
rel="alternate"
type="application/rss+xml"
title="Anson 3D"
href="https://blog.ansonbiggs.com/rss/"
/>
<script
async
src="https://analytics.ansonbiggs.com/tracker.js"
data-ackee-server="https://analytics.ansonbiggs.com"
data-ackee-domain-id="0846bb59-c7b6-4a0b-bc05-135f82425319"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
src="https://unpkg.com/mermaid@8.0.0/dist/mermaid.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script type="8a4a165e83b3fa6cca9c2dab-text/javascript">
mermaid.initialize({startOnLoad:true});
</script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/prism.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/plugins/line-numbers/prism-line-numbers.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<link
rel="stylesheet"
type="text/css"
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/themes/prism.min.css"
/>
<link
rel="stylesheet"
type="text/css"
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/plugins/line-numbers/prism-line-numbers.min.css"
/>
<link
rel="stylesheet"
type="text/css"
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/themes/prism-coy.min.css"
/>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/components/prism-powershell.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/components/prism-css.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/components/prism-c.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/components/prism-clike.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.14.0/components/prism-python.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
async
src="https://www.googletagmanager.com/gtag/js?id=UA-99766784-3"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script type="8a4a165e83b3fa6cca9c2dab-text/javascript">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-99766784-3');
</script>
<script
data-name="BMC-Widget"
src="https://cdnjs.buymeacoffee.com/1.0.0/widget.prod.min.js"
data-id="Anson"
data-description="Support my work on Buy me a coffee!"
data-message="Please consider donating if you enjoy my content!"
data-color="#5F7FFF"
data-position="right"
data-x_margin="18"
data-y_margin="18"
></script>
</head>
<body class="post-template tag-code tag-fluff tag-review tag-python">
<div class="site-wrapper">
<header class="site-header outer">
<div class="inner">
<nav class="site-nav">
<div class="site-nav-left">
<a class="site-nav-logo" href="../">Anson 3D</a>
<ul class="nav" role="menu">
<li class="nav-home" role="menuitem"><a href="../">Home</a></li>
<li class="nav-downloads" role="menuitem">
<a href="../where-to-download-my-models/">Downloads</a>
</li>
<li class="nav-yet-another-test-suite" role="menuitem">
<a href="../yet-another-test-suite/"
>Yet Another Test Suite</a
>
</li>
<li class="nav-tags" role="menuitem">
<a href="../tags/">Tags</a>
</li>
<li class="nav-resume" role="menuitem">
<a href="http://ansonbiggs.com">Resume</a>
</li>
<li class="nav-partners" role="menuitem">
<a href="https://projects.ansonbiggs.com">Projects</a>
</li>
</ul>
</div>
<div class="site-nav-right">
<div class="social-links">
<a
class="social-link social-link-fb"
href="https://www.facebook.com/Anson3D"
title="Facebook"
target="_blank"
rel="noopener"
><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path
d="M19 6h5V0h-5c-3.86 0-7 3.14-7 7v3H8v6h4v16h6V16h5l1-6h-6V7c0-.542.458-1 1-1z"
/>
</svg>
</a>
<a
class="social-link social-link-tw"
href="https://twitter.com/Anson_3D"
title="Twitter"
target="_blank"
rel="noopener"
><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path
d="M30.063 7.313c-.813 1.125-1.75 2.125-2.875 2.938v.75c0 1.563-.188 3.125-.688 4.625a15.088 15.088 0 0 1-2.063 4.438c-.875 1.438-2 2.688-3.25 3.813a15.015 15.015 0 0 1-4.625 2.563c-1.813.688-3.75 1-5.75 1-3.25 0-6.188-.875-8.875-2.625.438.063.875.125 1.375.125 2.688 0 5.063-.875 7.188-2.5-1.25 0-2.375-.375-3.375-1.125s-1.688-1.688-2.063-2.875c.438.063.813.125 1.125.125.5 0 1-.063 1.5-.25-1.313-.25-2.438-.938-3.313-1.938a5.673 5.673 0 0 1-1.313-3.688v-.063c.813.438 1.688.688 2.625.688a5.228 5.228 0 0 1-1.875-2c-.5-.875-.688-1.813-.688-2.75 0-1.063.25-2.063.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813a5.579 5.579 0 0 1 1.5-5.438c1.125-1.125 2.5-1.688 4.125-1.688s3.063.625 4.188 1.813a11.48 11.48 0 0 0 3.688-1.375c-.438 1.375-1.313 2.438-2.563 3.188 1.125-.125 2.188-.438 3.313-.875z"
/>
</svg>
</a>
</div>
<a class="subscribe-button" href="#subscribe">Subscribe</a>
</div>
</nav>
</div>
</header>
<main id="site-main" class="site-main outer">
<div class="inner">
<article
class="post-full post tag-code tag-fluff tag-review tag-python no-image"
>
<header class="post-full-header">
<section class="post-full-meta">
<time class="post-full-meta-date" datetime="2019-02-04"
>4 February 2019</time
>
<span class="date-divider">/</span>
<a href="../tag/code/">Code</a>
</section>
<h1 class="post-full-title">
Create a Backup of your Chocolatey Packages using Boxstarter
</h1>
</header>
<section class="post-full-content">
<div class="post-content">
<h2 id="introduction">Introduction</h2>
<p>
<strong
><a href="https://chocolatey.org/">Chocolatey</a></strong
>
is command line package manager for Windows that gives you a
very Linux -esque software installation experience. This guide
expects that you already are using Chocolatey, but in case you
need convincing here's what makes it so awesome, for example:
<code>choco install google chrome</code> will install Google
Chrome on your computer without having to wait for the
installer. You can even get fancy and list as many packages as
you would like with a <code>-y</code> flag to automatically
accept any prompts:
<code>choco install -y autohotkey.portable python3 gimp</code>
Can't undersell how easy this makes to set a computer up for
the first time.
</p>
<p>
<strong
><a href="https://boxstarter.org/">Boxstarter</a></strong
>
uses Chocolatey packages but adds a few extra tools that allow
you to install software faster and make changes to
<a href="https://boxstarter.org/WinConfig">Windows settings</a
>. Boxstarter has some amazing functionality that I am not
going to touch on here, but I would recommend
<a href="https://boxstarter.org/WhyBoxstarter"
>Checking out their Docs.</a
>
</p>
<h2 id="prerequisitestomakeabackup">
Prerequisites to make a Backup
</h2>
<ul>
<li>
<p>
A machine running Windows with software installed using
<a href="https://chocolatey.org/">Chocolatey</a>
</p>
</li>
<li>
<p><a href="https://boxstarter.org/">Boxstarter</a></p>
</li>
</ul>
<h2 id="theprocess">The Process</h2>
<h3 id="1getalistofyourchocolateypackages">
1. Get a list of your Chocolatey Packages
</h3>
<p>
Open Powershell and enter <code>clist -l</code> and copy the
output into a file called <code>data.txt</code> Alternatively,
<code>clist -l &gt; data.txt</code> will automatically make a
<code>data.txt</code> file in whatever directory Powershell is
in.
</p>
<h3 id="2makeapythonfilewiththefollowingcode">
2. Make a Python File with the following code:
</h3>
<pre><code class="language-Python">import re
## Regex to get package names
regex = re.compile(&quot;(?:^|\\n)(\\S{1,})&quot;)
## Open data.txt
with open(&quot;data.txt&quot;, &quot;r&quot;) as f:
data = f.read()
matchArray = regex.findall(str(data))
## Use regex to print package names to text file
with open(&quot;boxstarterScript.txt&quot;, &quot;w&quot;) as output:
for match in matchArray:
output.write(&quot;cinst &quot; + match + &quot;\n&quot;)
</code></pre>
<p>
Then making sure data.txt is in the same folder, run the
script. You should get <code>boxstarterScript.txt</code> as an
output.
</p>
<h3 id="3addanyextracommands">3. Add any Extra Commands</h3>
<p>
The code will output a file with a ton of lines that just say
<code>cinst python3</code> which will work perfectly fine by
itself but we can leverage Boxstarter to do a few other cool
things. I personally add the code below to the top of my
Script. It enables a few Windows File Explorer, I think the
flags are pretty self-explanatory, but if you want more
details or want to see more flags check out the
<a href="https://boxstarter.org/WinConfig">Boxstarter docs</a>
</p>
<pre><code class="language-Powershell">Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions
Enable-RemoteDesktop
</code></pre>
<p>
and at the end of the file, I add a command that forces
windows to update.
</p>
<pre><code class="language-Powershell">Install-WindowsUpdate -AcceptEula
</code></pre>
<h3 id="4usingthescript">4. Using the Script.</h3>
<p>
Obviously this script that we made doesn't do any good if it
is not accessible to a new machine so paraphrasing from the
<a href="https://boxstarter.org/Learn/WebLauncher"
>Boxstarter guide</a
>
I'll give a quick rundown on how to quickly use your backup
using <a href="https://gist.github.com">gist</a>. If you don't
want to use Github, my understanding is that any public URL
that gives a raw <code>.txt</code> page will work, or you can
use a different method to get the <code>.txt</code> to your
machine.
</p>
<p>
If you don't have Boxstarter or Chocolatey installed then open
Powershell and run:
</p>
<pre><code class="language-Powershell">. { iwr -useb https://boxstarter.org/bootstrapper.ps1 } | iex; get-boxstarter -Force
</code></pre>
<p>
Then you can run the script we made by opening the Boxstarter
shell and running the Command below. Replace
<code>PATH_TO_boxstarterScript.txt</code> with either the URL
to your script. i.e.
<code
>https://gist.githubusercontent.com/MisterBiggs/97e8e065f8a8d1d941a2c3377e229dad/raw/9804bbd5e3131ec9aebbff71395df9e382fbae1b/boxstarterScript.txt</code
>
(Make sure you use the raw link to your gist)
<strong>or</strong>
<code
>C:\Users\albig\Documents\backupScript\boxstarterScript.txt</code
>
</p>
<pre><code class="language-Powershell">Install-BoxstarterPackage -PackageName PATH_TO_boxstarterScript.txt -DisableReboots
</code></pre>
<h2 id="conclusion">Conclusion</h2>
<p>
In this tutorial, we were able to make a backup of all the
software installed on your machine in a way that is extremely
easy to replicate and automate the install of on a new
machine.
</p>
</div>
</section>
<section class="subscribe-form">
<h3 class="subscribe-form-title">Subscribe to Anson 3D</h3>
<p>Get the latest posts delivered right to your inbox</p>
<form method="post" action="/subscribe/" id class>
<input class="confirm" type="hidden" name="confirm" /><input
class="location"
type="hidden"
name="location"
/><input class="referrer" type="hidden" name="referrer" />
<div class="form-group">
<input
class="subscribe-email"
type="email"
name="email"
placeholder="youremail@example.com"
/>
</div>
<button id class type="submit"><span>Subscribe</span></button>
<script type="8a4a165e83b3fa6cca9c2dab-text/javascript">
(function(g,h,o,s,t){
var buster = function(b,m) {
h[o]('input.'+b).forEach(function (i) {
i.value=i.value || m;
});
};
buster('location', g.location.href);
buster('referrer', h.referrer);
})(window,document,'querySelectorAll','value');
</script>
</form>
</section>
<footer class="post-full-footer">
<section class="author-card">
<img
class="author-profile-image"
src="../content/images/size/w100/2019/09/anson_suit_cropped.jpg"
alt="Anson Biggs"
/>
<section class="author-card-content">
<h4 class="author-card-name">
<a href="../author/anson/">Anson Biggs</a>
</h4>
<p>
I am an undergraduate Aerospace Engineering student with a
focus on Astronautics and a minor in Electronic Engineering
studying at Embry-Riddle Aeronautical University in
Prescott, Arizona.
</p>
</section>
</section>
<div class="post-full-footer-right">
<a class="author-card-button" href="../author/anson/"
>Read More</a
>
</div>
</footer>
</article>
</div>
</main>
<aside class="read-next outer">
<div class="inner">
<div class="read-next-feed">
<article
class="read-next-card"
style="
background-image: url(../content/images/size/w600/2018/08/007---3kLkMUL-1.jpg);
"
>
<header class="read-next-card-header">
<small class="read-next-card-header-sitetitle"
>&mdash; Anson 3D &mdash;</small
>
<h3 class="read-next-card-header-title">
<a href="../tag/code/">Code</a>
</h3>
</header>
<div class="read-next-divider">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path
d="M13 14.5s2 3 5 3 5.5-2.463 5.5-5.5S21 6.5 18 6.5c-5 0-7 11-12 11C2.962 17.5.5 15.037.5 12S3 6.5 6 6.5s4.5 3.5 4.5 3.5"
/>
</svg>
</div>
<div class="read-next-card-content">
<ul>
<li>
<a href="../simple-telegram-stock-bot/"
>Simple Telegram Stock Bot</a
>
</li>
<li>
<a href="../simple-discord-stock-bot/"
>Simple Discord Stock Bot</a
>
</li>
</ul>
</div>
<footer class="read-next-card-footer">
<a href="../tag/code/">See all 2 posts →</a>
</footer>
</article>
<article
class="post-card post tag-3d-modeling tag-3d-printing tag-functional-print tag-fusion360 tag-oldie featured"
>
<a class="post-card-image-link" href="../oldie-vice-v2/">
<img
class="post-card-image"
srcset="
../content/images/size/w300/2019/02/Oldie-Vice-V2.png 300w,
../content/images/size/w600/2019/02/Oldie-Vice-V2.png 600w,
../content/images/size/w1000/2019/02/Oldie-Vice-V2.png 1000w,
../content/images/size/w2000/2019/02/Oldie-Vice-V2.png 2000w
"
sizes="(max-width: 1000px) 400px, 700px"
src="../content/images/size/w600/2019/02/Oldie-Vice-V2.png"
alt="Oldie Vice V2"
/>
</a>
<div class="post-card-content">
<a class="post-card-content-link" href="../oldie-vice-v2/">
<header class="post-card-header">
<span class="post-card-tags">3D Modeling</span>
<h2 class="post-card-title">Oldie Vice V2</h2>
</header>
<section class="post-card-excerpt">
<p>
SummaryThis is the second iteration of a 3D printable Vice
made by Machinist Extraordinaire, This Old Tony recently
put out a video on a cool vice design that I wanted to
recreate. Now
</p>
</section>
</a>
<footer class="post-card-meta">
<ul class="author-list">
<li class="author-list-item">
<div class="author-name-tooltip">Anson Biggs</div>
<a href="../author/anson/" class="static-avatar">
<img
class="author-profile-image"
src="../content/images/size/w100/2019/09/anson_suit_cropped.jpg"
alt="Anson Biggs"
/>
</a>
</li>
</ul>
<span class="reading-time">5 min read</span>
</footer>
</div>
</article>
<article class="post-card post tag-guide tag-fluff">
<a class="post-card-image-link" href="../how-to-use-mermaid/">
<img
class="post-card-image"
srcset="
../content/images/size/w300/2019/01/Code_2019-01-06_03-24-26.png 300w,
../content/images/size/w600/2019/01/Code_2019-01-06_03-24-26.png 600w,
../content/images/size/w1000/2019/01/Code_2019-01-06_03-24-26.png 1000w,
../content/images/size/w2000/2019/01/Code_2019-01-06_03-24-26.png 2000w
"
sizes="(max-width: 1000px) 400px, 700px"
src="../content/images/size/w600/2019/01/Code_2019-01-06_03-24-26.png"
alt="How to use Mermaid on your Ghost Blog"
/>
</a>
<div class="post-card-content">
<a class="post-card-content-link" href="../how-to-use-mermaid/">
<header class="post-card-header">
<span class="post-card-tags">Guide</span>
<h2 class="post-card-title">
How to use Mermaid on your Ghost Blog
</h2>
</header>
<section class="post-card-excerpt">
<p>
Render Mermaid code into beautiful diagrams on your Ghost
Blog.
</p>
</section>
</a>
<footer class="post-card-meta">
<ul class="author-list">
<li class="author-list-item">
<div class="author-name-tooltip">Anson Biggs</div>
<a href="../author/anson/" class="static-avatar">
<img
class="author-profile-image"
src="../content/images/size/w100/2019/09/anson_suit_cropped.jpg"
alt="Anson Biggs"
/>
</a>
</li>
</ul>
<span class="reading-time">1 min read</span>
</footer>
</div>
</article>
</div>
</div>
</aside>
<div class="floating-header">
<div class="floating-header-logo">
<a href="../">
<img
src="../content/images/size/w30/2018/08/Anson.png"
alt="Anson 3D icon"
/>
<span>Anson 3D</span>
</a>
</div>
<span class="floating-header-divider">&mdash;</span>
<div class="floating-header-title">
Create a Backup of your Chocolatey Packages using Boxstarter
</div>
<div class="floating-header-share">
<div class="floating-header-share-label">
Share this
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path
d="M7.5 15.5V4a1.5 1.5 0 1 1 3 0v4.5h2a1 1 0 0 1 1 1h2a1 1 0 0 1 1 1H18a1.5 1.5 0 0 1 1.5 1.5v3.099c0 .929-.13 1.854-.385 2.748L17.5 23.5h-9c-1.5-2-5.417-8.673-5.417-8.673a1.2 1.2 0 0 1 1.76-1.605L7.5 15.5zm6-6v2m-3-3.5v3.5m6-1v2"
/>
</svg>
</div>
<a
class="floating-header-share-tw"
href="https://twitter.com/share?text=Create%20a%20Backup%20of%20your%20Chocolatey%20Packages%20using%20Boxstarter&url=https://blog.ansonbiggs.com/create-a-backup-of-your-chocolatey-packages-using-boxstarter/"
onclick="if (!window.__cfRLUnblockHandlers) return false; window.open(this.href, 'share-twitter', 'width=550,height=235');return false;"
data-cf-modified-8a4a165e83b3fa6cca9c2dab-
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path
d="M30.063 7.313c-.813 1.125-1.75 2.125-2.875 2.938v.75c0 1.563-.188 3.125-.688 4.625a15.088 15.088 0 0 1-2.063 4.438c-.875 1.438-2 2.688-3.25 3.813a15.015 15.015 0 0 1-4.625 2.563c-1.813.688-3.75 1-5.75 1-3.25 0-6.188-.875-8.875-2.625.438.063.875.125 1.375.125 2.688 0 5.063-.875 7.188-2.5-1.25 0-2.375-.375-3.375-1.125s-1.688-1.688-2.063-2.875c.438.063.813.125 1.125.125.5 0 1-.063 1.5-.25-1.313-.25-2.438-.938-3.313-1.938a5.673 5.673 0 0 1-1.313-3.688v-.063c.813.438 1.688.688 2.625.688a5.228 5.228 0 0 1-1.875-2c-.5-.875-.688-1.813-.688-2.75 0-1.063.25-2.063.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813a5.579 5.579 0 0 1 1.5-5.438c1.125-1.125 2.5-1.688 4.125-1.688s3.063.625 4.188 1.813a11.48 11.48 0 0 0 3.688-1.375c-.438 1.375-1.313 2.438-2.563 3.188 1.125-.125 2.188-.438 3.313-.875z"
/>
</svg>
</a>
<a
class="floating-header-share-fb"
href="https://www.facebook.com/sharer/sharer.php?u=https://blog.ansonbiggs.com/create-a-backup-of-your-chocolatey-packages-using-boxstarter/"
onclick="if (!window.__cfRLUnblockHandlers) return false; window.open(this.href, 'share-facebook','width=580,height=296');return false;"
data-cf-modified-8a4a165e83b3fa6cca9c2dab-
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path
d="M19 6h5V0h-5c-3.86 0-7 3.14-7 7v3H8v6h4v16h6V16h5l1-6h-6V7c0-.542.458-1 1-1z"
/>
</svg>
</a>
</div>
<progress id="reading-progress" class="progress" value="0">
<div class="progress-container">
<span class="progress-bar"></span>
</div>
</progress>
</div>
<footer class="site-footer outer">
<div class="site-footer-content inner">
<section class="copyright">
<a href="../">Anson 3D</a> &copy; 2019
</section>
<nav class="site-footer-nav">
<a href="../">Latest Posts</a>
<a
href="https://www.facebook.com/Anson3D"
target="_blank"
rel="noopener"
>Facebook</a
>
<a
href="https://twitter.com/Anson_3D"
target="_blank"
rel="noopener"
>Twitter</a
>
<a href="https://ghost.org" target="_blank" rel="noopener">Ghost</a>
</nav>
</div>
</footer>
</div>
<div id="subscribe" class="subscribe-overlay">
<a class="subscribe-overlay-close" href="#"></a>
<div class="subscribe-overlay-content">
<h1 class="subscribe-overlay-title">Subscribe to Anson 3D</h1>
<p class="subscribe-overlay-description">
Stay up to date! Get all the latest &amp; greatest posts delivered
straight to your inbox
</p>
<form method="post" action="/subscribe/" id class>
<input class="confirm" type="hidden" name="confirm" /><input
class="location"
type="hidden"
name="location"
/><input class="referrer" type="hidden" name="referrer" />
<div class="form-group">
<input
class="subscribe-email"
type="email"
name="email"
placeholder="youremail@example.com"
/>
</div>
<button id class type="submit"><span>Subscribe</span></button>
<script type="8a4a165e83b3fa6cca9c2dab-text/javascript">
(function(g,h,o,s,t){
var buster = function(b,m) {
h[o]('input.'+b).forEach(function (i) {
i.value=i.value || m;
});
};
buster('location', g.location.href);
buster('referrer', h.referrer);
})(window,document,'querySelectorAll','value');
</script>
</form>
</div>
</div>
<script type="8a4a165e83b3fa6cca9c2dab-text/javascript">
var images = document.querySelectorAll('.kg-gallery-image img');
images.forEach(function (image) {
var container = image.closest('.kg-gallery-image');
var width = image.attributes.width.value;
var height = image.attributes.height.value;
var ratio = width / height;
container.style.flex = ratio + ' 1 0%';
})
</script>
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
crossorigin="anonymous"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
src="../assets/built/jquery.fitvids.js"
></script>
<script
src="../assets/built/infinitescroll.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<script type="8a4a165e83b3fa6cca9c2dab-text/javascript">
// NOTE: Scroll performance is poor in Safari
// - this appears to be due to the events firing much more slowly in Safari.
// Dropping the scroll event and using only a raf loop results in smoother
// scrolling but continuous processing even when not scrolling
$(document).ready(function () {
// Start fitVids
var $postContent = $(".post-full-content");
$postContent.fitVids();
// End fitVids
var progressBar = document.querySelector('#reading-progress');
var header = document.querySelector('.floating-header');
var title = document.querySelector('.post-full-title');
var lastScrollY = window.scrollY;
var lastWindowHeight = window.innerHeight;
var lastDocumentHeight = $(document).height();
var ticking = false;
function onScroll() {
lastScrollY = window.scrollY;
requestTick();
}
function onResize() {
lastWindowHeight = window.innerHeight;
lastDocumentHeight = $(document).height();
requestTick();
}
function requestTick() {
if (!ticking) {
requestAnimationFrame(update);
}
ticking = true;
}
function update() {
var trigger = title.getBoundingClientRect().top + window.scrollY;
var triggerOffset = title.offsetHeight + 35;
var progressMax = lastDocumentHeight - lastWindowHeight;
// show/hide floating header
if (lastScrollY >= trigger + triggerOffset) {
header.classList.add('floating-active');
} else {
header.classList.remove('floating-active');
}
progressBar.setAttribute('max', progressMax);
progressBar.setAttribute('value', lastScrollY);
ticking = false;
}
window.addEventListener('scroll', onScroll, {passive: true});
window.addEventListener('resize', onResize, false);
update();
});
</script>
<script
src="https://embedd.io/embedd.min.js"
type="8a4a165e83b3fa6cca9c2dab-text/javascript"
></script>
<a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"
><img
alt="Creative Commons License"
style="border-width: 0"
src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a
><br />This work is licensed under a
<a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"
>Creative Commons Attribution-ShareAlike 4.0 International License</a
>.
<script
src="https://ajax.cloudflare.com/cdn-cgi/scripts/95c75768/cloudflare-static/rocket-loader.min.js"
data-cf-settings="8a4a165e83b3fa6cca9c2dab-|49"
defer
></script>
</body>
</html>