feat: Clean up
This commit is contained in:
parent
f66f4e43a0
commit
1417d5879f
42
README.md
42
README.md
|
@ -1,13 +1,19 @@
|
|||
This package takes a markdown file, and creates a new markdown file in which each link is accompanied by an archive.org link, in the format [...](original link) ([a](archive.org link)).
|
||||
This utility takes a markdown file, and creates a new markdown file in which each link is accompanied by an archive.org link, in the format [...](original link) ([a](archive.org link)).
|
||||
|
||||
## How to install
|
||||
- Add [this file](https://github.com/NunoSempere/longNowForMd/blob/master/longnow) to your path, for instance by moving it to the `/usr/bin` folder and giving it execute permissions, or
|
||||
- copy its content (except the last line) into your .bashrc file.
|
||||
Add [this file](https://github.com/NunoSempere/longNowForMd/blob/master/longnow.sh) to your path, for instance by moving it to the `/usr/bin` folder and giving it execute permissions (with `chmod 755 longnow.sh`)
|
||||
|
||||
```
|
||||
curl https://raw.githubusercontent.com/NunoSempere/longNowForMd/master/longnow > longnow
|
||||
cat longnow ## probably a good idea to at least see what's there before giving it execute permissions
|
||||
sudo chmod 755 longnow
|
||||
mv longnow /bin/longnow
|
||||
```
|
||||
|
||||
In addition, this utility requires [archivenow](https://github.com/oduwsdl/archivenow) as a dependency, which itself requires a python installation. archivenow can be installed with
|
||||
|
||||
```
|
||||
$ pip install archivenow ## respectively, pip3
|
||||
pip install archivenow ## respectively, pip3
|
||||
```
|
||||
|
||||
## How to use
|
||||
|
@ -21,6 +27,8 @@ For a reasonably sized file, the process will take a long time, so this is more
|
|||
## To do
|
||||
- Deal elegantly with images. Right now, they are also archived, and have to be removed manually afterwards.
|
||||
- Possibly: Throttle requests to the internet archive less. Right now, I'm sending a link roughly every 12 seconds, and then sleeping for a minute every 15 requests. This is probably too much throttling (the theoretical limit is 15 requests per minute), but I think that it does reduce the error rate.
|
||||
- Do the same thing but for html files, or other formats
|
||||
- Present to r/DataHoarders
|
||||
- Pull requests are welcome.
|
||||
|
||||
## How to use to back up Google Files
|
||||
|
@ -28,10 +36,13 @@ For a reasonably sized file, the process will take a long time, so this is more
|
|||
You can download a .odt file from Google, and then convert it to a markdown file with
|
||||
|
||||
```
|
||||
function pandocodt(){
|
||||
source="$1.odt"
|
||||
output="$1.md"
|
||||
pandoc -s "$source" -t markdown-raw_html-native_divs-native_spans-fenced_divs-bracketed_spans | awk ' /^$/ { print "\n"; } /./ { printf("%s ", $0); } END { print ""; } ' | sed -r 's/([0-9]+\.)/\n\1/g' | sed -r 's/\*\*(.*)\*\*/## \1/g' | tr -s " " | sed -r 's/\\//g' | sed -r 's/\[\*/\[/g' | sed -r 's/\*\]/\]/g' > "$output"
|
||||
function odtToMd(){
|
||||
|
||||
input="$1"
|
||||
root="$(echo "$input" | sed 's/.odt//g' )"
|
||||
output="$root.md"
|
||||
|
||||
pandoc -s "$input" -t markdown-raw_html-native_divs-native_spans-fenced_divs-bracketed_spans | awk ' /^$/ { print "\n"; } /./ { printf("%s ", $0); } END { print ""; } ' | sed -r 's/([0-9]+\.)/\n\1/g' | sed -r 's/\*\*(.*)\*\*/## \1/g' | tr -s " " | sed -r 's/\\//g' | sed -r 's/\[\*/\[/g' | sed -r 's/\*\]/\]/g' > "$output"
|
||||
## Explanation:
|
||||
## markdown-raw_html-native_divs-native_spans-fenced_divs-bracketed_spans: various flags to generate some markdown I like
|
||||
## sed -r 's/\*\*(.*)\*\*/## \1/g': transform **Header** into ## Header
|
||||
|
@ -41,22 +52,21 @@ function pandocodt(){
|
|||
## tr -s " ": Replaces multiple spaces
|
||||
}
|
||||
|
||||
## Use: pandocodt YourFileNameWithoutExtension
|
||||
## Use: odtToMd file.odt
|
||||
```
|
||||
|
||||
Then run this tool (`longnow YourFileName.md`). Afterwards, convert the output file (`YourFileName.md.longnow`) back to html with
|
||||
Then run this tool (`longnow.sh file.md`). Afterwards, convert the output file (`file.longnow.md`) back to html with
|
||||
|
||||
```
|
||||
function pandocmd(){
|
||||
source="$1.md"
|
||||
output="$1.html"
|
||||
function mdToHTML(){
|
||||
input="$1"
|
||||
root="$(echo "$input" | sed 's/.md//g' )"
|
||||
output="$root.html"
|
||||
pandoc -r gfm "$source" -o "$output"
|
||||
## sed -i 's|\[ \]\(([^\)]*)\)| |g' "$source" ## This removes links around spaces, which are very annoying. See https://unix.stackexchange.com/questions/297686/non-greedy-match-with-sed-regex-emulate-perls
|
||||
}
|
||||
|
||||
## Use: pandocmd FileNameWithoutExtension
|
||||
## Use: mdToHTML file.md
|
||||
```
|
||||
|
||||
(this requires changing the name of the output file from `YourFileName.md.longnow` to `YourFileName.longnow.md` before running `$ pandocmd YourFileName.longnow`)
|
||||
|
||||
Then copy and paste the html into a Google doc and fix fomatting mistakes.
|
||||
|
|
71
debian/createSeries.sh
vendored
71
debian/createSeries.sh
vendored
|
@ -1,71 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# What to update before running:
|
||||
# - The error message in line 43
|
||||
# - The version number in line 60
|
||||
|
||||
stemFolder="$(pwd)/$1"
|
||||
stemFolderName="$1"
|
||||
seriesFolder="$(pwd)/$1~series"
|
||||
seriesNames=("focal" "groovy" "hirsute" "impish")
|
||||
gitFolder="/home/nuno/Documents/core/software/fresh/bash/sid/longnowformd_package/longnow-git/"
|
||||
|
||||
rm -rf "$stemFolder"
|
||||
mkdir "$stemFolder"
|
||||
|
||||
rm -rf "$seriesFolder"
|
||||
mkdir "$seriesFolder"
|
||||
|
||||
cp "$gitFolder/longnow" "$stemFolder/longnow"
|
||||
|
||||
for seriesName in "${seriesNames[@]}"; do
|
||||
|
||||
# Create corresponding folder
|
||||
newSeriesFolder="$seriesFolder/$stemFolderName~$seriesName"
|
||||
echo "$seriesName"
|
||||
cp -r "$stemFolder" "$newSeriesFolder"
|
||||
|
||||
cd "$newSeriesFolder"
|
||||
|
||||
# Make
|
||||
dh_make --createorig -c mit --indep -y
|
||||
wait
|
||||
|
||||
# Modify corresponding files
|
||||
touch debian/install
|
||||
echo "longnow usr/bin" > debian/install ## Add files to debian/install; depends on the files
|
||||
|
||||
cd debian
|
||||
# Replace "unstable" for the series name ("bionic", "focal",...)
|
||||
sed -i "s|unstable|$seriesName|g" changelog
|
||||
|
||||
# Meaningful update message
|
||||
sed -i 's|Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>|Minor tweak.|g' changelog
|
||||
|
||||
# Edit the control file; change "unknown" section to "utils" (or some other section)
|
||||
sed -i 's|Section: unknown|Section: utils|g' control
|
||||
|
||||
# Cosmetic stuff
|
||||
# Delete the .ex and .docs and README.Debian files
|
||||
rm *.ex; rm *.docs; rm README*; rm *.EX
|
||||
sed -i 's|<insert the upstream URL, if relevant>|https://github.com/NunoSempere/longNowForMd|g' control
|
||||
sed -i 's|Nuno <nuno@unknown>|Nuno Sempere <nuno.semperelh@gmail.com>|g' *
|
||||
|
||||
# Build
|
||||
cd ..
|
||||
debuild -S
|
||||
wait
|
||||
cd ..
|
||||
|
||||
dput ppa:nunosempere/longnowformd longnow_1.1~$seriesName-1_source.changes
|
||||
wait
|
||||
done
|
||||
|
||||
## How to use: ./createSeries.sh longnow-1.1
|
||||
|
||||
cp -r "$stemFolder" "$gitFolder/debian/$stemFolderName"
|
||||
cp -r "$seriesFolder" "$gitFolder/debian/$stemFolderName~series"
|
||||
cp "/home/nuno/Documents/core/software/fresh/bash/sid/longnowformd_package/createSeries.sh" "$gitFolder/debian/createSeries.sh"
|
||||
|
||||
sudo cp "$gitFolder/longnow" "/usr/bin/longnow"
|
||||
sudo chmod 555 "/usr/bin/longnow"
|
134
debian/longnow-1.1/longnow
vendored
134
debian/longnow-1.1/longnow
vendored
|
@ -1,134 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function getMdLinks(){ # Use: Takes a markdown file file.md, extracts all links, finds the unique ones and saves them to file.md.links
|
||||
linksFile="$1.links"
|
||||
linksFile2="$1.links2"
|
||||
echo ""
|
||||
echo "Extracting links..."
|
||||
rm "$1.links" -f
|
||||
grep -Eoi '\]\((.*)\)' $1 | grep -Eo '(http|https)://[^)]+' >> "$1.links"
|
||||
## sed -i 's/www.wikiwand.com\/en/en.wikipedia.org\/wiki/g' $1
|
||||
awk '!seen[$0]++' "$linksFile" > "$linksFile2" && mv "$linksFile2" "$linksFile"
|
||||
echo "Done."
|
||||
numLinesLinkFile=$(wc -l "$linksFile" | awk '{ print $1 }')
|
||||
totalTimeInMinutes=$(echo "scale=0; ($numLinesLinkFile*7.5 + 60*$numLinesLinkFile/15)/60" | bc)
|
||||
echo "Expected to take $totalTimeInMinutes mins."
|
||||
}
|
||||
|
||||
function pushToArchive(){
|
||||
# Use: Takes a txt file with one link on each line and pushes all the links to the internet archive. Saves those links to a textfile
|
||||
# References:
|
||||
# https://unix.stackexchange.com/questions/181254/how-to-use-grep-and-cut-in-script-to-obtain-website-urls-from-an-html-file
|
||||
# https://github.com/oduwsdl/archivenow
|
||||
# For the double underscore, see: https://stackoverflow.com/questions/13797087/bash-why-double-underline-for-private-functions-why-for-bash-complet/15181999
|
||||
echo "Pushing to archive.org..."
|
||||
echo ""
|
||||
|
||||
input="$1"
|
||||
counter=1
|
||||
archivedLinksFile="$1.archived"
|
||||
errorsFile="$1.errors"
|
||||
|
||||
## rm -f "$archivedLinksFile"
|
||||
rm -f "$errorsFile"
|
||||
touch "$archivedLinksFile"
|
||||
touch "$errorsFile"
|
||||
|
||||
## How to deal with errors that arise
|
||||
echo "If this file contains errors, you can deal with them as follows:" >> "$errorsFile"
|
||||
echo "- Do another pass with \$ longnow yourfile.md. If you don't delete yourfile.md.links.archived, past archive links are remembered, and only the links which are not there are sent again" >> "$errorsFile"
|
||||
echo "- Input the offending links manually to https://archive.org/, add the results to the yourfile.md.links.archived file manually, and then do another pass with \$ longnow yourfile.md" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
|
||||
## Main body
|
||||
while IFS= read -r line
|
||||
do
|
||||
wait
|
||||
if [ $(($counter % 15)) -eq 0 ]; then
|
||||
printf "Archive.org doesn't accept more than 15 links per min; sleeping for 1min...\n\n"
|
||||
sleep 1m
|
||||
fi
|
||||
echo "Url: $line"
|
||||
urlAlreadyContained=$( ( grep "$line$" "$archivedLinksFile"; grep "$line/$" "$archivedLinksFile" ) | tail -1 )
|
||||
if [ "$urlAlreadyContained" == "" ]; then
|
||||
archiveURL=$(archivenow --ia $line)
|
||||
if [[ "$archiveURL" == "Error"* ]]; then
|
||||
echo "$line" >> "$errorsFile"
|
||||
echo "$archiveURL" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
echo "There was an error. See $errorsFile for how to deal with it."
|
||||
else
|
||||
echo "$archiveURL" >> "$archivedLinksFile"
|
||||
fi
|
||||
counter=$((counter+1))
|
||||
numSecondsSleep=$((5+ ($RANDOM%15)))
|
||||
else
|
||||
archiveURL="$urlAlreadyContained"
|
||||
numSecondsSleep=0
|
||||
fi
|
||||
echo $archiveURL
|
||||
echo "Sleeping for $numSecondsSleep seconds..."
|
||||
sleep $numSecondsSleep
|
||||
echo ""
|
||||
done < "$input"
|
||||
|
||||
echo "Done."
|
||||
echo ""
|
||||
}
|
||||
|
||||
function addArchiveLinksToFile(){
|
||||
|
||||
originalFile="$1"
|
||||
originalFileTemp="$originalFile.temp"
|
||||
linksFile="$1.links"
|
||||
archivedLinksFile="$1.links.archived"
|
||||
errorsFile="$1.links.errors"
|
||||
longNowFile="$1.longnow"
|
||||
|
||||
echo "Creating longnow file @ $longNowFile..."
|
||||
|
||||
rm -f "$longNowFile"
|
||||
touch "$longNowFile"
|
||||
cp "$originalFile" "$originalFileTemp"
|
||||
|
||||
while IFS= read -r url
|
||||
do
|
||||
wait
|
||||
archivedUrl=$( ( grep "$url$" "$archivedLinksFile"; grep "$url/$" "$archivedLinksFile") | tail -1)
|
||||
if [ "$archivedUrl" != "" ]; then
|
||||
## echo "Url: $url"
|
||||
## echo "ArchivedUrl: $archivedUrl"
|
||||
urlForSed="${url//\//\\/}"
|
||||
archiveUrlForSed="${archivedUrl//\//\\/}"
|
||||
sed -i "s/$urlForSed)/$urlForSed) ([a]($archiveUrlForSed))/g" "$1"
|
||||
##else
|
||||
##echo "There was an error for $url; see the $errorsFile"
|
||||
fi
|
||||
done < "$linksFile"
|
||||
mv "$originalFile" "$longNowFile"
|
||||
mv "$originalFileTemp" "$originalFile"
|
||||
|
||||
echo "Done."
|
||||
|
||||
}
|
||||
|
||||
function longnow(){
|
||||
doesArchiveNowExist=$(whereis "archivenow")
|
||||
if [ "$doesArchiveNowExist" == "archivenow:" ]
|
||||
then
|
||||
echo "Required archivenow utility not found in path."
|
||||
echo "Install with \$ pip install archivenow"
|
||||
echo "(resp. \$ pip3 install archivenow)"
|
||||
echo "Or follow instructions on https://github.com/oduwsdl/archivenow"
|
||||
else
|
||||
getMdLinks $1
|
||||
pushToArchive $1.links
|
||||
addArchiveLinksToFile $1
|
||||
numLinesErrorFile=$(wc -l "$1.links.errors" | awk '{ print $1 }')
|
||||
if [ "$numLinesErrorFile" -gt 4 ] ;then
|
||||
echo "It seems that there are errors. To view and deal with them, see the $1.links.errors file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
longnow "$1" ## don't copy this line into your .bashrc file
|
|
@ -1,5 +0,0 @@
|
|||
longnow (1.1~focal-1) focal; urgency=medium
|
||||
|
||||
* Minor tweak.
|
||||
|
||||
-- Nuno Sempere <nuno.semperelh@gmail.com> Wed, 30 Jun 2021 22:52:33 +0200
|
|
@ -1,15 +0,0 @@
|
|||
Source: longnow
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
Build-Depends: debhelper-compat (= 12)
|
||||
Standards-Version: 4.4.1
|
||||
Homepage: https://github.com/NunoSempere/longNowForMd
|
||||
#Vcs-Browser: https://salsa.debian.org/debian/longnow
|
||||
#Vcs-Git: https://salsa.debian.org/debian/longnow.git
|
||||
|
||||
Package: longnow
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Description: <insert up to 60 chars description>
|
||||
<insert long description, indented with spaces>
|
|
@ -1,41 +0,0 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: longnow
|
||||
Upstream-Contact: <preferred name and address to reach the upstream project>
|
||||
Source: <url://example.com>
|
||||
|
||||
Files: *
|
||||
Copyright: <years> <put author's name and email here>
|
||||
<years> <likewise for another author>
|
||||
License: MIT
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2021 Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
License: MIT
|
||||
|
||||
License: MIT
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# Please also look if there are files or directories which have a
|
||||
# different copyright/license attached and list them here.
|
||||
# Please avoid picking licenses with terms that are more restrictive than the
|
||||
# packaged work, as it may make Debian's contributions unacceptable upstream.
|
||||
#
|
||||
# If you need, there are some extra license texts available in two places:
|
||||
# /usr/share/debhelper/dh_make/licenses/
|
||||
# /usr/share/common-licenses/
|
|
@ -1 +0,0 @@
|
|||
longnow_1.1~focal-1_source.buildinfo utils optional
|
|
@ -1 +0,0 @@
|
|||
longnow usr/bin
|
|
@ -1,25 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
|
||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||
# package maintainers to append CFLAGS
|
||||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
# package maintainers to append LDFLAGS
|
||||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
|
||||
# dh_make generated override targets
|
||||
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||
|
|
@ -1 +0,0 @@
|
|||
3.0 (quilt)
|
134
debian/longnow-1.1~series/longnow-1.1~focal/longnow
vendored
134
debian/longnow-1.1~series/longnow-1.1~focal/longnow
vendored
|
@ -1,134 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function getMdLinks(){ # Use: Takes a markdown file file.md, extracts all links, finds the unique ones and saves them to file.md.links
|
||||
linksFile="$1.links"
|
||||
linksFile2="$1.links2"
|
||||
echo ""
|
||||
echo "Extracting links..."
|
||||
rm "$1.links" -f
|
||||
grep -Eoi '\]\((.*)\)' $1 | grep -Eo '(http|https)://[^)]+' >> "$1.links"
|
||||
## sed -i 's/www.wikiwand.com\/en/en.wikipedia.org\/wiki/g' $1
|
||||
awk '!seen[$0]++' "$linksFile" > "$linksFile2" && mv "$linksFile2" "$linksFile"
|
||||
echo "Done."
|
||||
numLinesLinkFile=$(wc -l "$linksFile" | awk '{ print $1 }')
|
||||
totalTimeInMinutes=$(echo "scale=0; ($numLinesLinkFile*7.5 + 60*$numLinesLinkFile/15)/60" | bc)
|
||||
echo "Expected to take $totalTimeInMinutes mins."
|
||||
}
|
||||
|
||||
function pushToArchive(){
|
||||
# Use: Takes a txt file with one link on each line and pushes all the links to the internet archive. Saves those links to a textfile
|
||||
# References:
|
||||
# https://unix.stackexchange.com/questions/181254/how-to-use-grep-and-cut-in-script-to-obtain-website-urls-from-an-html-file
|
||||
# https://github.com/oduwsdl/archivenow
|
||||
# For the double underscore, see: https://stackoverflow.com/questions/13797087/bash-why-double-underline-for-private-functions-why-for-bash-complet/15181999
|
||||
echo "Pushing to archive.org..."
|
||||
echo ""
|
||||
|
||||
input="$1"
|
||||
counter=1
|
||||
archivedLinksFile="$1.archived"
|
||||
errorsFile="$1.errors"
|
||||
|
||||
## rm -f "$archivedLinksFile"
|
||||
rm -f "$errorsFile"
|
||||
touch "$archivedLinksFile"
|
||||
touch "$errorsFile"
|
||||
|
||||
## How to deal with errors that arise
|
||||
echo "If this file contains errors, you can deal with them as follows:" >> "$errorsFile"
|
||||
echo "- Do another pass with \$ longnow yourfile.md. If you don't delete yourfile.md.links.archived, past archive links are remembered, and only the links which are not there are sent again" >> "$errorsFile"
|
||||
echo "- Input the offending links manually to https://archive.org/, add the results to the yourfile.md.links.archived file manually, and then do another pass with \$ longnow yourfile.md" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
|
||||
## Main body
|
||||
while IFS= read -r line
|
||||
do
|
||||
wait
|
||||
if [ $(($counter % 15)) -eq 0 ]; then
|
||||
printf "Archive.org doesn't accept more than 15 links per min; sleeping for 1min...\n\n"
|
||||
sleep 1m
|
||||
fi
|
||||
echo "Url: $line"
|
||||
urlAlreadyContained=$( ( grep "$line$" "$archivedLinksFile"; grep "$line/$" "$archivedLinksFile" ) | tail -1 )
|
||||
if [ "$urlAlreadyContained" == "" ]; then
|
||||
archiveURL=$(archivenow --ia $line)
|
||||
if [[ "$archiveURL" == "Error"* ]]; then
|
||||
echo "$line" >> "$errorsFile"
|
||||
echo "$archiveURL" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
echo "There was an error. See $errorsFile for how to deal with it."
|
||||
else
|
||||
echo "$archiveURL" >> "$archivedLinksFile"
|
||||
fi
|
||||
counter=$((counter+1))
|
||||
numSecondsSleep=$((5+ ($RANDOM%15)))
|
||||
else
|
||||
archiveURL="$urlAlreadyContained"
|
||||
numSecondsSleep=0
|
||||
fi
|
||||
echo $archiveURL
|
||||
echo "Sleeping for $numSecondsSleep seconds..."
|
||||
sleep $numSecondsSleep
|
||||
echo ""
|
||||
done < "$input"
|
||||
|
||||
echo "Done."
|
||||
echo ""
|
||||
}
|
||||
|
||||
function addArchiveLinksToFile(){
|
||||
|
||||
originalFile="$1"
|
||||
originalFileTemp="$originalFile.temp"
|
||||
linksFile="$1.links"
|
||||
archivedLinksFile="$1.links.archived"
|
||||
errorsFile="$1.links.errors"
|
||||
longNowFile="$1.longnow"
|
||||
|
||||
echo "Creating longnow file @ $longNowFile..."
|
||||
|
||||
rm -f "$longNowFile"
|
||||
touch "$longNowFile"
|
||||
cp "$originalFile" "$originalFileTemp"
|
||||
|
||||
while IFS= read -r url
|
||||
do
|
||||
wait
|
||||
archivedUrl=$( ( grep "$url$" "$archivedLinksFile"; grep "$url/$" "$archivedLinksFile") | tail -1)
|
||||
if [ "$archivedUrl" != "" ]; then
|
||||
## echo "Url: $url"
|
||||
## echo "ArchivedUrl: $archivedUrl"
|
||||
urlForSed="${url//\//\\/}"
|
||||
archiveUrlForSed="${archivedUrl//\//\\/}"
|
||||
sed -i "s/$urlForSed)/$urlForSed) ([a]($archiveUrlForSed))/g" "$1"
|
||||
##else
|
||||
##echo "There was an error for $url; see the $errorsFile"
|
||||
fi
|
||||
done < "$linksFile"
|
||||
mv "$originalFile" "$longNowFile"
|
||||
mv "$originalFileTemp" "$originalFile"
|
||||
|
||||
echo "Done."
|
||||
|
||||
}
|
||||
|
||||
function longnow(){
|
||||
doesArchiveNowExist=$(whereis "archivenow")
|
||||
if [ "$doesArchiveNowExist" == "archivenow:" ]
|
||||
then
|
||||
echo "Required archivenow utility not found in path."
|
||||
echo "Install with \$ pip install archivenow"
|
||||
echo "(resp. \$ pip3 install archivenow)"
|
||||
echo "Or follow instructions on https://github.com/oduwsdl/archivenow"
|
||||
else
|
||||
getMdLinks $1
|
||||
pushToArchive $1.links
|
||||
addArchiveLinksToFile $1
|
||||
numLinesErrorFile=$(wc -l "$1.links.errors" | awk '{ print $1 }')
|
||||
if [ "$numLinesErrorFile" -gt 4 ] ;then
|
||||
echo "It seems that there are errors. To view and deal with them, see the $1.links.errors file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
longnow "$1" ## don't copy this line into your .bashrc file
|
|
@ -1,5 +0,0 @@
|
|||
longnow (1.1~groovy-1) groovy; urgency=medium
|
||||
|
||||
* Minor tweak.
|
||||
|
||||
-- Nuno Sempere <nuno.semperelh@gmail.com> Wed, 30 Jun 2021 22:52:46 +0200
|
|
@ -1,15 +0,0 @@
|
|||
Source: longnow
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
Build-Depends: debhelper-compat (= 12)
|
||||
Standards-Version: 4.4.1
|
||||
Homepage: https://github.com/NunoSempere/longNowForMd
|
||||
#Vcs-Browser: https://salsa.debian.org/debian/longnow
|
||||
#Vcs-Git: https://salsa.debian.org/debian/longnow.git
|
||||
|
||||
Package: longnow
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Description: <insert up to 60 chars description>
|
||||
<insert long description, indented with spaces>
|
|
@ -1,41 +0,0 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: longnow
|
||||
Upstream-Contact: <preferred name and address to reach the upstream project>
|
||||
Source: <url://example.com>
|
||||
|
||||
Files: *
|
||||
Copyright: <years> <put author's name and email here>
|
||||
<years> <likewise for another author>
|
||||
License: MIT
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2021 Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
License: MIT
|
||||
|
||||
License: MIT
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# Please also look if there are files or directories which have a
|
||||
# different copyright/license attached and list them here.
|
||||
# Please avoid picking licenses with terms that are more restrictive than the
|
||||
# packaged work, as it may make Debian's contributions unacceptable upstream.
|
||||
#
|
||||
# If you need, there are some extra license texts available in two places:
|
||||
# /usr/share/debhelper/dh_make/licenses/
|
||||
# /usr/share/common-licenses/
|
|
@ -1 +0,0 @@
|
|||
longnow_1.1~groovy-1_source.buildinfo utils optional
|
|
@ -1 +0,0 @@
|
|||
longnow usr/bin
|
|
@ -1,25 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
|
||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||
# package maintainers to append CFLAGS
|
||||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
# package maintainers to append LDFLAGS
|
||||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
|
||||
# dh_make generated override targets
|
||||
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||
|
|
@ -1 +0,0 @@
|
|||
3.0 (quilt)
|
134
debian/longnow-1.1~series/longnow-1.1~groovy/longnow
vendored
134
debian/longnow-1.1~series/longnow-1.1~groovy/longnow
vendored
|
@ -1,134 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function getMdLinks(){ # Use: Takes a markdown file file.md, extracts all links, finds the unique ones and saves them to file.md.links
|
||||
linksFile="$1.links"
|
||||
linksFile2="$1.links2"
|
||||
echo ""
|
||||
echo "Extracting links..."
|
||||
rm "$1.links" -f
|
||||
grep -Eoi '\]\((.*)\)' $1 | grep -Eo '(http|https)://[^)]+' >> "$1.links"
|
||||
## sed -i 's/www.wikiwand.com\/en/en.wikipedia.org\/wiki/g' $1
|
||||
awk '!seen[$0]++' "$linksFile" > "$linksFile2" && mv "$linksFile2" "$linksFile"
|
||||
echo "Done."
|
||||
numLinesLinkFile=$(wc -l "$linksFile" | awk '{ print $1 }')
|
||||
totalTimeInMinutes=$(echo "scale=0; ($numLinesLinkFile*7.5 + 60*$numLinesLinkFile/15)/60" | bc)
|
||||
echo "Expected to take $totalTimeInMinutes mins."
|
||||
}
|
||||
|
||||
function pushToArchive(){
|
||||
# Use: Takes a txt file with one link on each line and pushes all the links to the internet archive. Saves those links to a textfile
|
||||
# References:
|
||||
# https://unix.stackexchange.com/questions/181254/how-to-use-grep-and-cut-in-script-to-obtain-website-urls-from-an-html-file
|
||||
# https://github.com/oduwsdl/archivenow
|
||||
# For the double underscore, see: https://stackoverflow.com/questions/13797087/bash-why-double-underline-for-private-functions-why-for-bash-complet/15181999
|
||||
echo "Pushing to archive.org..."
|
||||
echo ""
|
||||
|
||||
input="$1"
|
||||
counter=1
|
||||
archivedLinksFile="$1.archived"
|
||||
errorsFile="$1.errors"
|
||||
|
||||
## rm -f "$archivedLinksFile"
|
||||
rm -f "$errorsFile"
|
||||
touch "$archivedLinksFile"
|
||||
touch "$errorsFile"
|
||||
|
||||
## How to deal with errors that arise
|
||||
echo "If this file contains errors, you can deal with them as follows:" >> "$errorsFile"
|
||||
echo "- Do another pass with \$ longnow yourfile.md. If you don't delete yourfile.md.links.archived, past archive links are remembered, and only the links which are not there are sent again" >> "$errorsFile"
|
||||
echo "- Input the offending links manually to https://archive.org/, add the results to the yourfile.md.links.archived file manually, and then do another pass with \$ longnow yourfile.md" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
|
||||
## Main body
|
||||
while IFS= read -r line
|
||||
do
|
||||
wait
|
||||
if [ $(($counter % 15)) -eq 0 ]; then
|
||||
printf "Archive.org doesn't accept more than 15 links per min; sleeping for 1min...\n\n"
|
||||
sleep 1m
|
||||
fi
|
||||
echo "Url: $line"
|
||||
urlAlreadyContained=$( ( grep "$line$" "$archivedLinksFile"; grep "$line/$" "$archivedLinksFile" ) | tail -1 )
|
||||
if [ "$urlAlreadyContained" == "" ]; then
|
||||
archiveURL=$(archivenow --ia $line)
|
||||
if [[ "$archiveURL" == "Error"* ]]; then
|
||||
echo "$line" >> "$errorsFile"
|
||||
echo "$archiveURL" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
echo "There was an error. See $errorsFile for how to deal with it."
|
||||
else
|
||||
echo "$archiveURL" >> "$archivedLinksFile"
|
||||
fi
|
||||
counter=$((counter+1))
|
||||
numSecondsSleep=$((5+ ($RANDOM%15)))
|
||||
else
|
||||
archiveURL="$urlAlreadyContained"
|
||||
numSecondsSleep=0
|
||||
fi
|
||||
echo $archiveURL
|
||||
echo "Sleeping for $numSecondsSleep seconds..."
|
||||
sleep $numSecondsSleep
|
||||
echo ""
|
||||
done < "$input"
|
||||
|
||||
echo "Done."
|
||||
echo ""
|
||||
}
|
||||
|
||||
function addArchiveLinksToFile(){
|
||||
|
||||
originalFile="$1"
|
||||
originalFileTemp="$originalFile.temp"
|
||||
linksFile="$1.links"
|
||||
archivedLinksFile="$1.links.archived"
|
||||
errorsFile="$1.links.errors"
|
||||
longNowFile="$1.longnow"
|
||||
|
||||
echo "Creating longnow file @ $longNowFile..."
|
||||
|
||||
rm -f "$longNowFile"
|
||||
touch "$longNowFile"
|
||||
cp "$originalFile" "$originalFileTemp"
|
||||
|
||||
while IFS= read -r url
|
||||
do
|
||||
wait
|
||||
archivedUrl=$( ( grep "$url$" "$archivedLinksFile"; grep "$url/$" "$archivedLinksFile") | tail -1)
|
||||
if [ "$archivedUrl" != "" ]; then
|
||||
## echo "Url: $url"
|
||||
## echo "ArchivedUrl: $archivedUrl"
|
||||
urlForSed="${url//\//\\/}"
|
||||
archiveUrlForSed="${archivedUrl//\//\\/}"
|
||||
sed -i "s/$urlForSed)/$urlForSed) ([a]($archiveUrlForSed))/g" "$1"
|
||||
##else
|
||||
##echo "There was an error for $url; see the $errorsFile"
|
||||
fi
|
||||
done < "$linksFile"
|
||||
mv "$originalFile" "$longNowFile"
|
||||
mv "$originalFileTemp" "$originalFile"
|
||||
|
||||
echo "Done."
|
||||
|
||||
}
|
||||
|
||||
function longnow(){
|
||||
doesArchiveNowExist=$(whereis "archivenow")
|
||||
if [ "$doesArchiveNowExist" == "archivenow:" ]
|
||||
then
|
||||
echo "Required archivenow utility not found in path."
|
||||
echo "Install with \$ pip install archivenow"
|
||||
echo "(resp. \$ pip3 install archivenow)"
|
||||
echo "Or follow instructions on https://github.com/oduwsdl/archivenow"
|
||||
else
|
||||
getMdLinks $1
|
||||
pushToArchive $1.links
|
||||
addArchiveLinksToFile $1
|
||||
numLinesErrorFile=$(wc -l "$1.links.errors" | awk '{ print $1 }')
|
||||
if [ "$numLinesErrorFile" -gt 4 ] ;then
|
||||
echo "It seems that there are errors. To view and deal with them, see the $1.links.errors file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
longnow "$1" ## don't copy this line into your .bashrc file
|
|
@ -1,5 +0,0 @@
|
|||
longnow (1.1~hirsute-1) hirsute; urgency=medium
|
||||
|
||||
* Minor tweak.
|
||||
|
||||
-- Nuno Sempere <nuno.semperelh@gmail.com> Wed, 30 Jun 2021 22:52:52 +0200
|
|
@ -1,15 +0,0 @@
|
|||
Source: longnow
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
Build-Depends: debhelper-compat (= 12)
|
||||
Standards-Version: 4.4.1
|
||||
Homepage: https://github.com/NunoSempere/longNowForMd
|
||||
#Vcs-Browser: https://salsa.debian.org/debian/longnow
|
||||
#Vcs-Git: https://salsa.debian.org/debian/longnow.git
|
||||
|
||||
Package: longnow
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Description: <insert up to 60 chars description>
|
||||
<insert long description, indented with spaces>
|
|
@ -1,41 +0,0 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: longnow
|
||||
Upstream-Contact: <preferred name and address to reach the upstream project>
|
||||
Source: <url://example.com>
|
||||
|
||||
Files: *
|
||||
Copyright: <years> <put author's name and email here>
|
||||
<years> <likewise for another author>
|
||||
License: MIT
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2021 Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
License: MIT
|
||||
|
||||
License: MIT
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# Please also look if there are files or directories which have a
|
||||
# different copyright/license attached and list them here.
|
||||
# Please avoid picking licenses with terms that are more restrictive than the
|
||||
# packaged work, as it may make Debian's contributions unacceptable upstream.
|
||||
#
|
||||
# If you need, there are some extra license texts available in two places:
|
||||
# /usr/share/debhelper/dh_make/licenses/
|
||||
# /usr/share/common-licenses/
|
|
@ -1 +0,0 @@
|
|||
longnow_1.1~hirsute-1_source.buildinfo utils optional
|
|
@ -1 +0,0 @@
|
|||
longnow usr/bin
|
|
@ -1,25 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
|
||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||
# package maintainers to append CFLAGS
|
||||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
# package maintainers to append LDFLAGS
|
||||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
|
||||
# dh_make generated override targets
|
||||
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||
|
|
@ -1 +0,0 @@
|
|||
3.0 (quilt)
|
|
@ -1,134 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function getMdLinks(){ # Use: Takes a markdown file file.md, extracts all links, finds the unique ones and saves them to file.md.links
|
||||
linksFile="$1.links"
|
||||
linksFile2="$1.links2"
|
||||
echo ""
|
||||
echo "Extracting links..."
|
||||
rm "$1.links" -f
|
||||
grep -Eoi '\]\((.*)\)' $1 | grep -Eo '(http|https)://[^)]+' >> "$1.links"
|
||||
## sed -i 's/www.wikiwand.com\/en/en.wikipedia.org\/wiki/g' $1
|
||||
awk '!seen[$0]++' "$linksFile" > "$linksFile2" && mv "$linksFile2" "$linksFile"
|
||||
echo "Done."
|
||||
numLinesLinkFile=$(wc -l "$linksFile" | awk '{ print $1 }')
|
||||
totalTimeInMinutes=$(echo "scale=0; ($numLinesLinkFile*7.5 + 60*$numLinesLinkFile/15)/60" | bc)
|
||||
echo "Expected to take $totalTimeInMinutes mins."
|
||||
}
|
||||
|
||||
function pushToArchive(){
|
||||
# Use: Takes a txt file with one link on each line and pushes all the links to the internet archive. Saves those links to a textfile
|
||||
# References:
|
||||
# https://unix.stackexchange.com/questions/181254/how-to-use-grep-and-cut-in-script-to-obtain-website-urls-from-an-html-file
|
||||
# https://github.com/oduwsdl/archivenow
|
||||
# For the double underscore, see: https://stackoverflow.com/questions/13797087/bash-why-double-underline-for-private-functions-why-for-bash-complet/15181999
|
||||
echo "Pushing to archive.org..."
|
||||
echo ""
|
||||
|
||||
input="$1"
|
||||
counter=1
|
||||
archivedLinksFile="$1.archived"
|
||||
errorsFile="$1.errors"
|
||||
|
||||
## rm -f "$archivedLinksFile"
|
||||
rm -f "$errorsFile"
|
||||
touch "$archivedLinksFile"
|
||||
touch "$errorsFile"
|
||||
|
||||
## How to deal with errors that arise
|
||||
echo "If this file contains errors, you can deal with them as follows:" >> "$errorsFile"
|
||||
echo "- Do another pass with \$ longnow yourfile.md. If you don't delete yourfile.md.links.archived, past archive links are remembered, and only the links which are not there are sent again" >> "$errorsFile"
|
||||
echo "- Input the offending links manually to https://archive.org/, add the results to the yourfile.md.links.archived file manually, and then do another pass with \$ longnow yourfile.md" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
|
||||
## Main body
|
||||
while IFS= read -r line
|
||||
do
|
||||
wait
|
||||
if [ $(($counter % 15)) -eq 0 ]; then
|
||||
printf "Archive.org doesn't accept more than 15 links per min; sleeping for 1min...\n\n"
|
||||
sleep 1m
|
||||
fi
|
||||
echo "Url: $line"
|
||||
urlAlreadyContained=$( ( grep "$line$" "$archivedLinksFile"; grep "$line/$" "$archivedLinksFile" ) | tail -1 )
|
||||
if [ "$urlAlreadyContained" == "" ]; then
|
||||
archiveURL=$(archivenow --ia $line)
|
||||
if [[ "$archiveURL" == "Error"* ]]; then
|
||||
echo "$line" >> "$errorsFile"
|
||||
echo "$archiveURL" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
echo "There was an error. See $errorsFile for how to deal with it."
|
||||
else
|
||||
echo "$archiveURL" >> "$archivedLinksFile"
|
||||
fi
|
||||
counter=$((counter+1))
|
||||
numSecondsSleep=$((5+ ($RANDOM%15)))
|
||||
else
|
||||
archiveURL="$urlAlreadyContained"
|
||||
numSecondsSleep=0
|
||||
fi
|
||||
echo $archiveURL
|
||||
echo "Sleeping for $numSecondsSleep seconds..."
|
||||
sleep $numSecondsSleep
|
||||
echo ""
|
||||
done < "$input"
|
||||
|
||||
echo "Done."
|
||||
echo ""
|
||||
}
|
||||
|
||||
function addArchiveLinksToFile(){
|
||||
|
||||
originalFile="$1"
|
||||
originalFileTemp="$originalFile.temp"
|
||||
linksFile="$1.links"
|
||||
archivedLinksFile="$1.links.archived"
|
||||
errorsFile="$1.links.errors"
|
||||
longNowFile="$1.longnow"
|
||||
|
||||
echo "Creating longnow file @ $longNowFile..."
|
||||
|
||||
rm -f "$longNowFile"
|
||||
touch "$longNowFile"
|
||||
cp "$originalFile" "$originalFileTemp"
|
||||
|
||||
while IFS= read -r url
|
||||
do
|
||||
wait
|
||||
archivedUrl=$( ( grep "$url$" "$archivedLinksFile"; grep "$url/$" "$archivedLinksFile") | tail -1)
|
||||
if [ "$archivedUrl" != "" ]; then
|
||||
## echo "Url: $url"
|
||||
## echo "ArchivedUrl: $archivedUrl"
|
||||
urlForSed="${url//\//\\/}"
|
||||
archiveUrlForSed="${archivedUrl//\//\\/}"
|
||||
sed -i "s/$urlForSed)/$urlForSed) ([a]($archiveUrlForSed))/g" "$1"
|
||||
##else
|
||||
##echo "There was an error for $url; see the $errorsFile"
|
||||
fi
|
||||
done < "$linksFile"
|
||||
mv "$originalFile" "$longNowFile"
|
||||
mv "$originalFileTemp" "$originalFile"
|
||||
|
||||
echo "Done."
|
||||
|
||||
}
|
||||
|
||||
function longnow(){
|
||||
doesArchiveNowExist=$(whereis "archivenow")
|
||||
if [ "$doesArchiveNowExist" == "archivenow:" ]
|
||||
then
|
||||
echo "Required archivenow utility not found in path."
|
||||
echo "Install with \$ pip install archivenow"
|
||||
echo "(resp. \$ pip3 install archivenow)"
|
||||
echo "Or follow instructions on https://github.com/oduwsdl/archivenow"
|
||||
else
|
||||
getMdLinks $1
|
||||
pushToArchive $1.links
|
||||
addArchiveLinksToFile $1
|
||||
numLinesErrorFile=$(wc -l "$1.links.errors" | awk '{ print $1 }')
|
||||
if [ "$numLinesErrorFile" -gt 4 ] ;then
|
||||
echo "It seems that there are errors. To view and deal with them, see the $1.links.errors file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
longnow "$1" ## don't copy this line into your .bashrc file
|
|
@ -1,5 +0,0 @@
|
|||
longnow (1.1~impish-1) impish; urgency=medium
|
||||
|
||||
* Minor tweak.
|
||||
|
||||
-- Nuno Sempere <nuno.semperelh@gmail.com> Wed, 30 Jun 2021 22:52:57 +0200
|
|
@ -1,15 +0,0 @@
|
|||
Source: longnow
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
Build-Depends: debhelper-compat (= 12)
|
||||
Standards-Version: 4.4.1
|
||||
Homepage: https://github.com/NunoSempere/longNowForMd
|
||||
#Vcs-Browser: https://salsa.debian.org/debian/longnow
|
||||
#Vcs-Git: https://salsa.debian.org/debian/longnow.git
|
||||
|
||||
Package: longnow
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Description: <insert up to 60 chars description>
|
||||
<insert long description, indented with spaces>
|
|
@ -1,41 +0,0 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: longnow
|
||||
Upstream-Contact: <preferred name and address to reach the upstream project>
|
||||
Source: <url://example.com>
|
||||
|
||||
Files: *
|
||||
Copyright: <years> <put author's name and email here>
|
||||
<years> <likewise for another author>
|
||||
License: MIT
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2021 Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
License: MIT
|
||||
|
||||
License: MIT
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# Please also look if there are files or directories which have a
|
||||
# different copyright/license attached and list them here.
|
||||
# Please avoid picking licenses with terms that are more restrictive than the
|
||||
# packaged work, as it may make Debian's contributions unacceptable upstream.
|
||||
#
|
||||
# If you need, there are some extra license texts available in two places:
|
||||
# /usr/share/debhelper/dh_make/licenses/
|
||||
# /usr/share/common-licenses/
|
|
@ -1 +0,0 @@
|
|||
longnow_1.1~impish-1_source.buildinfo utils optional
|
|
@ -1 +0,0 @@
|
|||
longnow usr/bin
|
|
@ -1,25 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
|
||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||
# package maintainers to append CFLAGS
|
||||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
# package maintainers to append LDFLAGS
|
||||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
|
||||
# dh_make generated override targets
|
||||
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||
|
|
@ -1 +0,0 @@
|
|||
3.0 (quilt)
|
134
debian/longnow-1.1~series/longnow-1.1~impish/longnow
vendored
134
debian/longnow-1.1~series/longnow-1.1~impish/longnow
vendored
|
@ -1,134 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function getMdLinks(){ # Use: Takes a markdown file file.md, extracts all links, finds the unique ones and saves them to file.md.links
|
||||
linksFile="$1.links"
|
||||
linksFile2="$1.links2"
|
||||
echo ""
|
||||
echo "Extracting links..."
|
||||
rm "$1.links" -f
|
||||
grep -Eoi '\]\((.*)\)' $1 | grep -Eo '(http|https)://[^)]+' >> "$1.links"
|
||||
## sed -i 's/www.wikiwand.com\/en/en.wikipedia.org\/wiki/g' $1
|
||||
awk '!seen[$0]++' "$linksFile" > "$linksFile2" && mv "$linksFile2" "$linksFile"
|
||||
echo "Done."
|
||||
numLinesLinkFile=$(wc -l "$linksFile" | awk '{ print $1 }')
|
||||
totalTimeInMinutes=$(echo "scale=0; ($numLinesLinkFile*7.5 + 60*$numLinesLinkFile/15)/60" | bc)
|
||||
echo "Expected to take $totalTimeInMinutes mins."
|
||||
}
|
||||
|
||||
function pushToArchive(){
|
||||
# Use: Takes a txt file with one link on each line and pushes all the links to the internet archive. Saves those links to a textfile
|
||||
# References:
|
||||
# https://unix.stackexchange.com/questions/181254/how-to-use-grep-and-cut-in-script-to-obtain-website-urls-from-an-html-file
|
||||
# https://github.com/oduwsdl/archivenow
|
||||
# For the double underscore, see: https://stackoverflow.com/questions/13797087/bash-why-double-underline-for-private-functions-why-for-bash-complet/15181999
|
||||
echo "Pushing to archive.org..."
|
||||
echo ""
|
||||
|
||||
input="$1"
|
||||
counter=1
|
||||
archivedLinksFile="$1.archived"
|
||||
errorsFile="$1.errors"
|
||||
|
||||
## rm -f "$archivedLinksFile"
|
||||
rm -f "$errorsFile"
|
||||
touch "$archivedLinksFile"
|
||||
touch "$errorsFile"
|
||||
|
||||
## How to deal with errors that arise
|
||||
echo "If this file contains errors, you can deal with them as follows:" >> "$errorsFile"
|
||||
echo "- Do another pass with \$ longnow yourfile.md. If you don't delete yourfile.md.links.archived, past archive links are remembered, and only the links which are not there are sent again" >> "$errorsFile"
|
||||
echo "- Input the offending links manually to https://archive.org/, add the results to the yourfile.md.links.archived file manually, and then do another pass with \$ longnow yourfile.md" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
|
||||
## Main body
|
||||
while IFS= read -r line
|
||||
do
|
||||
wait
|
||||
if [ $(($counter % 15)) -eq 0 ]; then
|
||||
printf "Archive.org doesn't accept more than 15 links per min; sleeping for 1min...\n\n"
|
||||
sleep 1m
|
||||
fi
|
||||
echo "Url: $line"
|
||||
urlAlreadyContained=$( ( grep "$line$" "$archivedLinksFile"; grep "$line/$" "$archivedLinksFile" ) | tail -1 )
|
||||
if [ "$urlAlreadyContained" == "" ]; then
|
||||
archiveURL=$(archivenow --ia $line)
|
||||
if [[ "$archiveURL" == "Error"* ]]; then
|
||||
echo "$line" >> "$errorsFile"
|
||||
echo "$archiveURL" >> "$errorsFile"
|
||||
echo "" >> "$errorsFile"
|
||||
echo "There was an error. See $errorsFile for how to deal with it."
|
||||
else
|
||||
echo "$archiveURL" >> "$archivedLinksFile"
|
||||
fi
|
||||
counter=$((counter+1))
|
||||
numSecondsSleep=$((5+ ($RANDOM%15)))
|
||||
else
|
||||
archiveURL="$urlAlreadyContained"
|
||||
numSecondsSleep=0
|
||||
fi
|
||||
echo $archiveURL
|
||||
echo "Sleeping for $numSecondsSleep seconds..."
|
||||
sleep $numSecondsSleep
|
||||
echo ""
|
||||
done < "$input"
|
||||
|
||||
echo "Done."
|
||||
echo ""
|
||||
}
|
||||
|
||||
function addArchiveLinksToFile(){
|
||||
|
||||
originalFile="$1"
|
||||
originalFileTemp="$originalFile.temp"
|
||||
linksFile="$1.links"
|
||||
archivedLinksFile="$1.links.archived"
|
||||
errorsFile="$1.links.errors"
|
||||
longNowFile="$1.longnow"
|
||||
|
||||
echo "Creating longnow file @ $longNowFile..."
|
||||
|
||||
rm -f "$longNowFile"
|
||||
touch "$longNowFile"
|
||||
cp "$originalFile" "$originalFileTemp"
|
||||
|
||||
while IFS= read -r url
|
||||
do
|
||||
wait
|
||||
archivedUrl=$( ( grep "$url$" "$archivedLinksFile"; grep "$url/$" "$archivedLinksFile") | tail -1)
|
||||
if [ "$archivedUrl" != "" ]; then
|
||||
## echo "Url: $url"
|
||||
## echo "ArchivedUrl: $archivedUrl"
|
||||
urlForSed="${url//\//\\/}"
|
||||
archiveUrlForSed="${archivedUrl//\//\\/}"
|
||||
sed -i "s/$urlForSed)/$urlForSed) ([a]($archiveUrlForSed))/g" "$1"
|
||||
##else
|
||||
##echo "There was an error for $url; see the $errorsFile"
|
||||
fi
|
||||
done < "$linksFile"
|
||||
mv "$originalFile" "$longNowFile"
|
||||
mv "$originalFileTemp" "$originalFile"
|
||||
|
||||
echo "Done."
|
||||
|
||||
}
|
||||
|
||||
function longnow(){
|
||||
doesArchiveNowExist=$(whereis "archivenow")
|
||||
if [ "$doesArchiveNowExist" == "archivenow:" ]
|
||||
then
|
||||
echo "Required archivenow utility not found in path."
|
||||
echo "Install with \$ pip install archivenow"
|
||||
echo "(resp. \$ pip3 install archivenow)"
|
||||
echo "Or follow instructions on https://github.com/oduwsdl/archivenow"
|
||||
else
|
||||
getMdLinks $1
|
||||
pushToArchive $1.links
|
||||
addArchiveLinksToFile $1
|
||||
numLinesErrorFile=$(wc -l "$1.links.errors" | awk '{ print $1 }')
|
||||
if [ "$numLinesErrorFile" -gt 4 ] ;then
|
||||
echo "It seems that there are errors. To view and deal with them, see the $1.links.errors file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
longnow "$1" ## don't copy this line into your .bashrc file
|
Binary file not shown.
|
@ -1,38 +0,0 @@
|
|||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
Format: 3.0 (quilt)
|
||||
Source: longnow
|
||||
Binary: longnow
|
||||
Architecture: all
|
||||
Version: 1.1~focal-1
|
||||
Maintainer: Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
Homepage: https://github.com/NunoSempere/longNowForMd
|
||||
Standards-Version: 4.4.1
|
||||
Build-Depends: debhelper-compat (= 12)
|
||||
Package-List:
|
||||
longnow deb utils optional arch=all
|
||||
Checksums-Sha1:
|
||||
16a657ebffd6ccdbacd199da80606c8699490d52 2000 longnow_1.1~focal.orig.tar.xz
|
||||
50984668250cf384936d45666b4c6a7808006ce7 2044 longnow_1.1~focal-1.debian.tar.xz
|
||||
Checksums-Sha256:
|
||||
7fe91dd5fabdb63e30da0c0737aa342cb04bdf3db64fb83413870f5084ce16d8 2000 longnow_1.1~focal.orig.tar.xz
|
||||
a57b2d62da9a8337335c913d9ae3091bc78ef03d65bdf0a41382ecf73cf8779a 2044 longnow_1.1~focal-1.debian.tar.xz
|
||||
Files:
|
||||
f3b26c6a89f5153bca2c072a95b9fa67 2000 longnow_1.1~focal.orig.tar.xz
|
||||
c1eee003a112dcd1c47f780f269849dd 2044 longnow_1.1~focal-1.debian.tar.xz
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQHNBAEBCgA3FiEEJgMJ0m3ydsnStpbJvUQaV89PZFcFAmDc2ZQZHG51bm8uc2Vt
|
||||
cGVyZWxoQGdtYWlsLmNvbQAKCRC9RBpXz09kV3PzC/9ZHGu6WjELZTPoaUGGHPoq
|
||||
JMIRG584EgzLAsRPrPaONzjQufABFzEeyoYje5IcjHSjp5SEq0KbtInAqpvYA2Td
|
||||
JvyFL3PT76GrKads1TWGSH6YOivZfKUAQfyR8U8FujsCEX9uq48RwLVUYY0XQZ+1
|
||||
IW/mGvrUS9kF7rqTKeHfu98+g0Z5QS4SXoHOqCQ92I84woSyx3f8cLZ4V08qwChY
|
||||
TrA7c0SWNONG0OFXGT9z4jH1iC3m9sBU80wHH72TE15pFCl1OP+6VlvAcX7rNV4S
|
||||
9I6IjHkSg7hkNA1GKgFEBPKm3Ws3R571S9g8wsWxz//0KnVCUhhQRsjyNs3aXa4R
|
||||
3pyPU3P/yDfet9XI9NU4BmUzzoOqhE5I+OTSXQA6S7798sjke1aSW2LzMZ8BCBLD
|
||||
Ok9cDMxEjHHrgwQ2X7xlRCi2eR7X4Gq0T6qaevlmcJqR4Fc++nSZhHWkjRi6Z/BH
|
||||
+ScnvyV0Zw23a1gw6SBCyuazdtAbmg2cbruDFvjI2+c=
|
||||
=3d8/
|
||||
-----END PGP SIGNATURE-----
|
|
@ -1,33 +0,0 @@
|
|||
dpkg-buildpackage -us -uc -ui -S
|
||||
dpkg-buildpackage: info: source package longnow
|
||||
dpkg-buildpackage: info: source version 1.1~focal-1
|
||||
dpkg-buildpackage: info: source distribution focal
|
||||
dpkg-buildpackage: info: source changed by Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
dpkg-source --before-build .
|
||||
fakeroot debian/rules clean
|
||||
dh clean
|
||||
dh_clean
|
||||
dpkg-source -b .
|
||||
dpkg-source: info: using source format '3.0 (quilt)'
|
||||
dpkg-source: info: building longnow using existing ./longnow_1.1~focal.orig.tar.xz
|
||||
dpkg-source: info: building longnow in longnow_1.1~focal-1.debian.tar.xz
|
||||
dpkg-source: info: building longnow in longnow_1.1~focal-1.dsc
|
||||
dpkg-genbuildinfo --build=source
|
||||
dpkg-genchanges --build=source >../longnow_1.1~focal-1_source.changes
|
||||
dpkg-genchanges: info: including full source code in upload
|
||||
dpkg-source --after-build .
|
||||
dpkg-buildpackage: info: full upload (original source is included)
|
||||
Now running lintian longnow_1.1~focal-1_source.changes ...
|
||||
E: longnow source: debian-rules-is-dh_make-template
|
||||
Finished running lintian.
|
||||
Now signing changes and any dsc files...
|
||||
signfile dsc longnow_1.1~focal-1.dsc Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
|
||||
fixup_buildinfo longnow_1.1~focal-1.dsc longnow_1.1~focal-1_source.buildinfo
|
||||
signfile buildinfo longnow_1.1~focal-1_source.buildinfo Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
|
||||
fixup_changes dsc longnow_1.1~focal-1.dsc longnow_1.1~focal-1_source.changes
|
||||
fixup_changes buildinfo longnow_1.1~focal-1_source.buildinfo longnow_1.1~focal-1_source.changes
|
||||
signfile changes longnow_1.1~focal-1_source.changes Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
|
||||
Successfully signed dsc, buildinfo, changes files
|
|
@ -1,193 +0,0 @@
|
|||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
Format: 1.0
|
||||
Source: longnow
|
||||
Binary: longnow
|
||||
Architecture: source
|
||||
Version: 1.1~focal-1
|
||||
Checksums-Md5:
|
||||
dfb0cc57ff7ca6c2ffde30cee1e1ee0b 1604 longnow_1.1~focal-1.dsc
|
||||
Checksums-Sha1:
|
||||
3ce2cc9aef4d1dc49c215a4d8df56f62c64dcb48 1604 longnow_1.1~focal-1.dsc
|
||||
Checksums-Sha256:
|
||||
bb7f173bb190e6dcc1ebd8d1c5ddbe49c71b2e984e7d042e6857ab6301f9d1e2 1604 longnow_1.1~focal-1.dsc
|
||||
Build-Origin: Ubuntu
|
||||
Build-Architecture: amd64
|
||||
Build-Date: Wed, 30 Jun 2021 22:52:34 +0200
|
||||
Build-Tainted-By:
|
||||
merged-usr-via-symlinks
|
||||
usr-local-has-configs
|
||||
usr-local-has-libraries
|
||||
usr-local-has-programs
|
||||
Installed-Build-Depends:
|
||||
autoconf (= 2.69-11.1),
|
||||
automake (= 1:1.16.1-4ubuntu6),
|
||||
autopoint (= 0.19.8.1-10build1),
|
||||
autotools-dev (= 20180224.1),
|
||||
base-files (= 11ubuntu5.3),
|
||||
base-passwd (= 3.5.47),
|
||||
bash (= 5.0-6ubuntu1.1),
|
||||
binutils (= 2.34-6ubuntu1.1),
|
||||
binutils-common (= 2.34-6ubuntu1.1),
|
||||
binutils-x86-64-linux-gnu (= 2.34-6ubuntu1.1),
|
||||
bsdmainutils (= 11.1.2ubuntu3),
|
||||
bsdutils (= 1:2.34-0.1ubuntu9.1),
|
||||
build-essential (= 12.8ubuntu1.1),
|
||||
bzip2 (= 1.0.8-2),
|
||||
coreutils (= 8.30-3ubuntu2),
|
||||
cpp (= 4:9.3.0-1ubuntu2),
|
||||
cpp-9 (= 9.3.0-17ubuntu1~20.04),
|
||||
dash (= 0.5.10.2-6),
|
||||
debconf (= 1.5.73),
|
||||
debhelper (= 12.10ubuntu1),
|
||||
debianutils (= 4.9.1),
|
||||
dh-autoreconf (= 19),
|
||||
dh-strip-nondeterminism (= 1.7.0-1),
|
||||
diffutils (= 1:3.7-3),
|
||||
dpkg (= 1.19.7ubuntu3),
|
||||
dpkg-dev (= 1.19.7ubuntu3),
|
||||
dwz (= 0.13-5),
|
||||
file (= 1:5.38-4),
|
||||
findutils (= 4.7.0-1ubuntu1),
|
||||
g++ (= 4:9.3.0-1ubuntu2),
|
||||
g++-9 (= 9.3.0-17ubuntu1~20.04),
|
||||
gcc (= 4:9.3.0-1ubuntu2),
|
||||
gcc-10-base (= 10.3.0-1ubuntu1~20.04),
|
||||
gcc-9 (= 9.3.0-17ubuntu1~20.04),
|
||||
gcc-9-base (= 9.3.0-17ubuntu1~20.04),
|
||||
gettext (= 0.19.8.1-10build1),
|
||||
gettext-base (= 0.19.8.1-10build1),
|
||||
grep (= 3.4-1),
|
||||
groff-base (= 1.22.4-4build1),
|
||||
gzip (= 1.10-0ubuntu4),
|
||||
hostname (= 3.23),
|
||||
init-system-helpers (= 1.57),
|
||||
install-info (= 6.7.0.dfsg.2-5),
|
||||
intltool-debian (= 0.35.0+20060710.5),
|
||||
libacl1 (= 2.2.53-6),
|
||||
libarchive-zip-perl (= 1.67-2),
|
||||
libasan5 (= 9.3.0-17ubuntu1~20.04),
|
||||
libatomic1 (= 10.3.0-1ubuntu1~20.04),
|
||||
libattr1 (= 1:2.4.48-5),
|
||||
libaudit-common (= 1:2.8.5-2ubuntu6),
|
||||
libaudit1 (= 1:2.8.5-2ubuntu6),
|
||||
libbinutils (= 2.34-6ubuntu1.1),
|
||||
libblkid1 (= 2.34-0.1ubuntu9.1),
|
||||
libbsd0 (= 0.10.0-1),
|
||||
libbz2-1.0 (= 1.0.8-2),
|
||||
libc-bin (= 2.31-0ubuntu9.2),
|
||||
libc-dev-bin (= 2.31-0ubuntu9.2),
|
||||
libc6 (= 2.31-0ubuntu9.2),
|
||||
libc6-dev (= 2.31-0ubuntu9.2),
|
||||
libcap-ng0 (= 0.7.9-2.1build1),
|
||||
libcc1-0 (= 10.3.0-1ubuntu1~20.04),
|
||||
libcroco3 (= 0.6.13-1),
|
||||
libcrypt-dev (= 1:4.4.10-10ubuntu4),
|
||||
libcrypt1 (= 1:4.4.10-10ubuntu4),
|
||||
libctf-nobfd0 (= 2.34-6ubuntu1.1),
|
||||
libctf0 (= 2.34-6ubuntu1.1),
|
||||
libdb5.3 (= 5.3.28+dfsg1-0.6ubuntu2),
|
||||
libdebconfclient0 (= 0.251ubuntu1),
|
||||
libdebhelper-perl (= 12.10ubuntu1),
|
||||
libdpkg-perl (= 1.19.7ubuntu3),
|
||||
libelf1 (= 0.176-1.1build1),
|
||||
libffi7 (= 3.3-4),
|
||||
libfile-stripnondeterminism-perl (= 1.7.0-1),
|
||||
libgcc-9-dev (= 9.3.0-17ubuntu1~20.04),
|
||||
libgcc-s1 (= 10.3.0-1ubuntu1~20.04),
|
||||
libgcrypt20 (= 1.8.5-5ubuntu1),
|
||||
libgdbm-compat4 (= 1.18.1-5),
|
||||
libgdbm6 (= 1.18.1-5),
|
||||
libglib2.0-0 (= 2.64.6-1~ubuntu20.04.3),
|
||||
libgmp10 (= 2:6.2.0+dfsg-4),
|
||||
libgomp1 (= 10.3.0-1ubuntu1~20.04),
|
||||
libgpg-error0 (= 1.37-1),
|
||||
libicu66 (= 66.1-2ubuntu2),
|
||||
libisl22 (= 0.22.1-1),
|
||||
libitm1 (= 10.3.0-1ubuntu1~20.04),
|
||||
liblsan0 (= 10.3.0-1ubuntu1~20.04),
|
||||
liblz4-1 (= 1.9.2-2ubuntu0.20.04.1),
|
||||
liblzma5 (= 5.2.4-1ubuntu1),
|
||||
libmagic-mgc (= 1:5.38-4),
|
||||
libmagic1 (= 1:5.38-4),
|
||||
libmount1 (= 2.34-0.1ubuntu9.1),
|
||||
libmpc3 (= 1.1.0-1),
|
||||
libmpfr6 (= 4.0.2-1),
|
||||
libpam-modules (= 1.3.1-5ubuntu4.2),
|
||||
libpam-modules-bin (= 1.3.1-5ubuntu4.2),
|
||||
libpam-runtime (= 1.3.1-5ubuntu4.2),
|
||||
libpam0g (= 1.3.1-5ubuntu4.2),
|
||||
libpcre2-8-0 (= 10.34-7),
|
||||
libpcre3 (= 2:8.39-12build1),
|
||||
libperl5.30 (= 5.30.0-9ubuntu0.2),
|
||||
libpipeline1 (= 1.5.2-2build1),
|
||||
libquadmath0 (= 10.3.0-1ubuntu1~20.04),
|
||||
libseccomp2 (= 2.5.1-1ubuntu1~20.04.1),
|
||||
libselinux1 (= 3.0-1build2),
|
||||
libsigsegv2 (= 2.12-2),
|
||||
libsmartcols1 (= 2.34-0.1ubuntu9.1),
|
||||
libstdc++-9-dev (= 9.3.0-17ubuntu1~20.04),
|
||||
libstdc++6 (= 10.3.0-1ubuntu1~20.04),
|
||||
libsub-override-perl (= 0.09-2),
|
||||
libsystemd0 (= 245.4-4ubuntu3.7),
|
||||
libtinfo6 (= 6.2-0ubuntu2),
|
||||
libtool (= 2.4.6-14),
|
||||
libtsan0 (= 10.3.0-1ubuntu1~20.04),
|
||||
libubsan1 (= 10.3.0-1ubuntu1~20.04),
|
||||
libuchardet0 (= 0.0.6-3build1),
|
||||
libudev1 (= 245.4-4ubuntu3.7),
|
||||
libunistring2 (= 0.9.10-2),
|
||||
libuuid1 (= 2.34-0.1ubuntu9.1),
|
||||
libxml2 (= 2.9.10+dfsg-5ubuntu0.20.04.1),
|
||||
libzstd1 (= 1.4.4+dfsg-3ubuntu0.1),
|
||||
linux-libc-dev (= 5.4.0-77.86),
|
||||
login (= 1:4.8.1-1ubuntu5.20.04),
|
||||
lsb-base (= 11.1.0ubuntu2),
|
||||
m4 (= 1.4.18-4),
|
||||
make (= 4.2.1-1.2),
|
||||
man-db (= 2.9.1-1),
|
||||
mawk (= 1.3.4.20200120-2),
|
||||
ncurses-base (= 6.2-0ubuntu2),
|
||||
ncurses-bin (= 6.2-0ubuntu2),
|
||||
patch (= 2.7.6-6),
|
||||
perl (= 5.30.0-9ubuntu0.2),
|
||||
perl-base (= 5.30.0-9ubuntu0.2),
|
||||
perl-modules-5.30 (= 5.30.0-9ubuntu0.2),
|
||||
po-debconf (= 1.0.21),
|
||||
sed (= 4.7-1),
|
||||
sensible-utils (= 0.0.12+nmu1),
|
||||
sysvinit-utils (= 2.96-2.1ubuntu1),
|
||||
tar (= 1.30+dfsg-7ubuntu0.20.04.1),
|
||||
tzdata (= 2021a-0ubuntu0.20.04),
|
||||
util-linux (= 2.34-0.1ubuntu9.1),
|
||||
xz-utils (= 5.2.4-1ubuntu1),
|
||||
zlib1g (= 1:1.2.11.dfsg-2ubuntu1.2)
|
||||
Environment:
|
||||
DEB_BUILD_OPTIONS="parallel=4"
|
||||
LANG="en_US.UTF-8"
|
||||
LC_ADDRESS="de_AT.UTF-8"
|
||||
LC_IDENTIFICATION="de_AT.UTF-8"
|
||||
LC_MEASUREMENT="de_AT.UTF-8"
|
||||
LC_MONETARY="de_AT.UTF-8"
|
||||
LC_NAME="de_AT.UTF-8"
|
||||
LC_NUMERIC="de_AT.UTF-8"
|
||||
LC_PAPER="de_AT.UTF-8"
|
||||
LC_TELEPHONE="de_AT.UTF-8"
|
||||
LC_TIME="de_AT.UTF-8"
|
||||
SOURCE_DATE_EPOCH="1625086353"
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQHNBAEBCgA3FiEEJgMJ0m3ydsnStpbJvUQaV89PZFcFAmDc2ZsZHG51bm8uc2Vt
|
||||
cGVyZWxoQGdtYWlsLmNvbQAKCRC9RBpXz09kVxrmC/4uRp/hdjCGBGSIozyxBijX
|
||||
yf0ytJdLVZFGRkzi1XmImfqNwyDXvgCRNQzN+MV28jPKaz2tAQuAWUqA2cbwj6TH
|
||||
rtD/6s198VJOUyf5qwwiWDArJdM9o4A/ln8BO5wCV63R+8tjDyyjLT/jzFhpqFFf
|
||||
qhfQkuW4GL0Yn47cVs6asUXl8CWkiT1tzrjnWfGQ8s0x7al13AsRBdmRRRWizuwd
|
||||
re9hOhg764rsk+cg3gDClaZsr1qo3UAmDZrTnDW8XOWzX3ZSSlK6lj8qFl6BlYgW
|
||||
iPWqG8kAv6w2hMTUOB+/AWPHaJMW1M++e0DXvzpE0sE8ZVHmjrQjYbYd5PAhbiA+
|
||||
WEeCULX8OGXX2/0I4eubynw6RJChPl2ecSyEsp0CxuDNMR5DZISLI6xDtp1BTdHR
|
||||
af8X+Z2MIyRzxk7gbmUf/Cs+8wm6e6CXgGlcxDpypyFNrpqhukTTN3+ybalG59II
|
||||
Tjl95ua7YhUeHyhj3EVlOz9Pxi2Z4zompNth6mi1LLs=
|
||||
=UfSc
|
||||
-----END PGP SIGNATURE-----
|
|
@ -1,46 +0,0 @@
|
|||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
Format: 1.8
|
||||
Date: Wed, 30 Jun 2021 22:52:33 +0200
|
||||
Source: longnow
|
||||
Architecture: source
|
||||
Version: 1.1~focal-1
|
||||
Distribution: focal
|
||||
Urgency: medium
|
||||
Maintainer: Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
Changed-By: Nuno Sempere <nuno.semperelh@gmail.com>
|
||||
Changes:
|
||||
longnow (1.1~focal-1) focal; urgency=medium
|
||||
.
|
||||
* Minor tweak.
|
||||
Checksums-Sha1:
|
||||
3ce2cc9aef4d1dc49c215a4d8df56f62c64dcb48 1604 longnow_1.1~focal-1.dsc
|
||||
16a657ebffd6ccdbacd199da80606c8699490d52 2000 longnow_1.1~focal.orig.tar.xz
|
||||
50984668250cf384936d45666b4c6a7808006ce7 2044 longnow_1.1~focal-1.debian.tar.xz
|
||||
aca18304424cf83c51f75316c2cf8895dd148a0c 6156 longnow_1.1~focal-1_source.buildinfo
|
||||
Checksums-Sha256:
|
||||
bb7f173bb190e6dcc1ebd8d1c5ddbe49c71b2e984e7d042e6857ab6301f9d1e2 1604 longnow_1.1~focal-1.dsc
|
||||
7fe91dd5fabdb63e30da0c0737aa342cb04bdf3db64fb83413870f5084ce16d8 2000 longnow_1.1~focal.orig.tar.xz
|
||||
a57b2d62da9a8337335c913d9ae3091bc78ef03d65bdf0a41382ecf73cf8779a 2044 longnow_1.1~focal-1.debian.tar.xz
|
||||
2f59a258a1a27a9a90c32d6c734afcb3559b83f92461f9a5010e9bbea5202897 6156 longnow_1.1~focal-1_source.buildinfo
|
||||
Files:
|
||||
dfb0cc57ff7ca6c2ffde30cee1e1ee0b 1604 utils optional longnow_1.1~focal-1.dsc
|
||||
f3b26c6a89f5153bca2c072a95b9fa67 2000 utils optional longnow_1.1~focal.orig.tar.xz
|
||||
c1eee003a112dcd1c47f780f269849dd 2044 utils optional longnow_1.1~focal-1.debian.tar.xz
|
||||
b3bfcf8cf25425e73c4ce368d4e90711 6156 utils optional longnow_1.1~focal-1_source.buildinfo
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQHNBAEBCgA3FiEEJgMJ0m3ydsnStpbJvUQaV89PZFcFAmDc2ZsZHG51bm8uc2Vt
|
||||
cGVyZWxoQGdtYWlsLmNvbQAKCRC9RBpXz09kVzQrDACCqTKQQQPr5uU+94W89Mq0
|
||||
Sz9ITV2mcoXXyeUNiwQkyTx2mAPi9Ms5Ikicw1dMNerKPfIHhTOW0szJP8zZuha/
|
||||
lC78erKZN/Rk9NIeny8lnO/Cf7pMTQxnNTZQ/6pPXeoq3rY5RWfXLkVjv14eQF7e
|
||||
sf4a1+4B0pGBpWtrwBBf2Awh0Es+WSiwkJkOHgqIvW2EE1xIa17XBXuSoKSPJMHr
|
||||
1I5o3AXhQVtt/LyzrFSBclIicdkIC8Bv6CZA+m7WJ8cZ6ntDLx767Mgrozv1s50b
|
||||
QcQ7S16qtp/OZba/p9y4svfAB+udybRmogDQasKgikd1kXDkh50crTI08w/8lZVu
|
||||
AFAaCwYqaHZ4bKw6nxpo8lb+G8D7Qjx3kid/EPXQi+MEGKgoxuIpD4VqNT9uR1WV
|
||||
+PYisBlsqwmqlZzQrlCtaRyJz/ibQExgU1/A1M46AqV6EHm/o0K7yZVbe/UYz8Qr
|
||||
U9vrvXgIW7Y2W/lAo9o9uKoW3l7lE6rkWRypxdTdW+g=
|
||||
=6m6z
|
||||
-----END PGP SIGNATURE-----
|
|
@ -1,5 +0,0 @@
|
|||
Successfully uploaded longnow_1.1~focal-1.dsc to ppa.launchpad.net for ppa.
|
||||
Successfully uploaded longnow_1.1~focal.orig.tar.xz to ppa.launchpad.net for ppa.
|
||||
Successfully uploaded longnow_1.1~focal-1.debian.tar.xz to ppa.launchpad.net for ppa.
|
||||
Successfully uploaded longnow_1.1~focal-1_source.buildinfo to ppa.launchpad.net for ppa.
|
||||
Successfully uploaded longnow_1.1~focal-1_source.changes to ppa.launchpad.net for ppa.
|
Binary file not shown.
Binary file not shown.