Add generate password system
Note that this commit references my IRC configuraton. I'm not checking it in as I have too many credentials and personal information in it. When I abstract it sufficiently, I will commit it.
This commit is contained in:
		
							parent
							
								
									669a16ebb9
								
							
						
					
					
						commit
						2669fdaa5b
					
				
					 6 changed files with 590 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -26,6 +26,8 @@ This creates [[file:~/.emacs.d/init.el][~/.emacs.d/init.el]] that starts the pro
 | 
			
		|||
  - [[file:ha-capturing-notes.org][ha-capturing-notes.org]] :: my engineering notebook.
 | 
			
		||||
  - [[file:ha-agendas.org][ha-agendas.org]] :: Attempts to "supe-up" my task list.
 | 
			
		||||
  - [[file:ha-email.org][ha-email.org]] :: Reading email using =notmuch= in a *Hey* fashion.
 | 
			
		||||
  - [[file:ha-irc.org][ha-irc.org]] :: Connection to IRC servers using rcirc and bitlbee.
 | 
			
		||||
  - [[file:ha-passwords.org][ha-passwords.org]] :: Code for generating passwords.
 | 
			
		||||
  - [[file:ha-programming.org][ha-programming.org]] :: configuration for /all/ programming languages, or at least, the simple ones.
 | 
			
		||||
 | 
			
		||||
*Note:* Other functions and files come from essays written on [[http://www.howardism.org][my blog]]. To help with this, see [[file:support/final-initialize.el][support/final-initialize.el]] file.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -122,8 +122,8 @@ The following loads the rest of my org-mode literate files. I add them as they a
 | 
			
		|||
                            "ha-programming.org"
 | 
			
		||||
                            "ha-agendas.org"
 | 
			
		||||
                            "ha-email.org"
 | 
			
		||||
                            ;; "ha-irc.org"
 | 
			
		||||
                            ;; "ha-passwords.org"
 | 
			
		||||
                            "ha-irc.org"
 | 
			
		||||
                            "ha-passwords.org"
 | 
			
		||||
                            "ha-remoting.org"
 | 
			
		||||
                            "ha-feed-reader.org"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										230
									
								
								data/adjectives.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								data/adjectives.txt
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,230 @@
 | 
			
		|||
adorable
 | 
			
		||||
adventurous
 | 
			
		||||
aggressive
 | 
			
		||||
agreeable
 | 
			
		||||
alert
 | 
			
		||||
alive
 | 
			
		||||
amused
 | 
			
		||||
angry
 | 
			
		||||
annoyed
 | 
			
		||||
annoying
 | 
			
		||||
anxious
 | 
			
		||||
arrogant
 | 
			
		||||
ashamed
 | 
			
		||||
attractive
 | 
			
		||||
average
 | 
			
		||||
awful
 | 
			
		||||
bad
 | 
			
		||||
beautiful
 | 
			
		||||
better
 | 
			
		||||
bewildered
 | 
			
		||||
bittersweet
 | 
			
		||||
blushing
 | 
			
		||||
shadowy
 | 
			
		||||
black
 | 
			
		||||
bloody
 | 
			
		||||
blue-eyed
 | 
			
		||||
blushing
 | 
			
		||||
bored
 | 
			
		||||
brainy
 | 
			
		||||
brave
 | 
			
		||||
breakable
 | 
			
		||||
bright
 | 
			
		||||
busy
 | 
			
		||||
calm
 | 
			
		||||
careful
 | 
			
		||||
cautious
 | 
			
		||||
charming
 | 
			
		||||
cheerful
 | 
			
		||||
clean
 | 
			
		||||
clear
 | 
			
		||||
clever
 | 
			
		||||
cloudy
 | 
			
		||||
clumsy
 | 
			
		||||
colorful
 | 
			
		||||
combative
 | 
			
		||||
comfortable
 | 
			
		||||
concerned
 | 
			
		||||
condemned
 | 
			
		||||
confused
 | 
			
		||||
cooperative
 | 
			
		||||
courageous
 | 
			
		||||
crazy
 | 
			
		||||
creepy
 | 
			
		||||
crowded
 | 
			
		||||
cruel
 | 
			
		||||
curious
 | 
			
		||||
cute
 | 
			
		||||
dangerous
 | 
			
		||||
dark
 | 
			
		||||
dead
 | 
			
		||||
defeated
 | 
			
		||||
defiant
 | 
			
		||||
delightful
 | 
			
		||||
depressed
 | 
			
		||||
determined
 | 
			
		||||
different
 | 
			
		||||
difficult
 | 
			
		||||
disgusted
 | 
			
		||||
distinct
 | 
			
		||||
disturbed
 | 
			
		||||
dizzy
 | 
			
		||||
doubtful
 | 
			
		||||
drab
 | 
			
		||||
dull
 | 
			
		||||
eager
 | 
			
		||||
easy
 | 
			
		||||
elated
 | 
			
		||||
elegant
 | 
			
		||||
embarrassed
 | 
			
		||||
enchanting
 | 
			
		||||
encouraging
 | 
			
		||||
energetic
 | 
			
		||||
enthusiastic
 | 
			
		||||
envious
 | 
			
		||||
evil
 | 
			
		||||
excited
 | 
			
		||||
expensive
 | 
			
		||||
exuberant
 | 
			
		||||
fair
 | 
			
		||||
faithful
 | 
			
		||||
famous
 | 
			
		||||
fancy
 | 
			
		||||
fantastic
 | 
			
		||||
fierce
 | 
			
		||||
filthy
 | 
			
		||||
fine
 | 
			
		||||
foolish
 | 
			
		||||
fragile
 | 
			
		||||
frail
 | 
			
		||||
frantic
 | 
			
		||||
friendly
 | 
			
		||||
frightened
 | 
			
		||||
funny
 | 
			
		||||
gentle
 | 
			
		||||
gifted
 | 
			
		||||
glamorous
 | 
			
		||||
gleaming
 | 
			
		||||
glorious
 | 
			
		||||
good
 | 
			
		||||
gorgeous
 | 
			
		||||
graceful
 | 
			
		||||
grieving
 | 
			
		||||
grotesque
 | 
			
		||||
grumpy
 | 
			
		||||
handsome
 | 
			
		||||
happy
 | 
			
		||||
healthy
 | 
			
		||||
helpful
 | 
			
		||||
helpless
 | 
			
		||||
hilarious
 | 
			
		||||
homeless
 | 
			
		||||
homely
 | 
			
		||||
horrible
 | 
			
		||||
hungry
 | 
			
		||||
hurt
 | 
			
		||||
ill
 | 
			
		||||
important
 | 
			
		||||
impossible
 | 
			
		||||
inexpensive
 | 
			
		||||
innocent
 | 
			
		||||
inquisitive
 | 
			
		||||
itchy
 | 
			
		||||
jealous
 | 
			
		||||
jittery
 | 
			
		||||
jolly
 | 
			
		||||
joyous
 | 
			
		||||
kind
 | 
			
		||||
lazy
 | 
			
		||||
light
 | 
			
		||||
lively
 | 
			
		||||
lonely
 | 
			
		||||
long
 | 
			
		||||
lovely
 | 
			
		||||
lucky
 | 
			
		||||
magnificent
 | 
			
		||||
misty
 | 
			
		||||
modern
 | 
			
		||||
motionless
 | 
			
		||||
muddy
 | 
			
		||||
mushy
 | 
			
		||||
mysterious
 | 
			
		||||
nasty
 | 
			
		||||
naughty
 | 
			
		||||
nervous
 | 
			
		||||
nice
 | 
			
		||||
nutty
 | 
			
		||||
obedient
 | 
			
		||||
obnoxious
 | 
			
		||||
odd
 | 
			
		||||
open
 | 
			
		||||
outrageous
 | 
			
		||||
outstanding
 | 
			
		||||
panicky
 | 
			
		||||
perfect
 | 
			
		||||
plain
 | 
			
		||||
pleasant
 | 
			
		||||
poised
 | 
			
		||||
poor
 | 
			
		||||
powerful
 | 
			
		||||
precious
 | 
			
		||||
prickly
 | 
			
		||||
proud
 | 
			
		||||
putrid
 | 
			
		||||
puzzled
 | 
			
		||||
quaint
 | 
			
		||||
real
 | 
			
		||||
relieved
 | 
			
		||||
repulsive
 | 
			
		||||
rich
 | 
			
		||||
scary
 | 
			
		||||
selfish
 | 
			
		||||
shiny
 | 
			
		||||
shy
 | 
			
		||||
silly
 | 
			
		||||
sleepy
 | 
			
		||||
smiling
 | 
			
		||||
smoggy
 | 
			
		||||
sore
 | 
			
		||||
sparkling
 | 
			
		||||
splendid
 | 
			
		||||
spotless
 | 
			
		||||
stormy
 | 
			
		||||
strange
 | 
			
		||||
stupid
 | 
			
		||||
successful
 | 
			
		||||
super
 | 
			
		||||
talented
 | 
			
		||||
tame
 | 
			
		||||
tasty
 | 
			
		||||
tender
 | 
			
		||||
tense
 | 
			
		||||
terrible
 | 
			
		||||
thankful
 | 
			
		||||
thoughtful
 | 
			
		||||
thoughtless
 | 
			
		||||
tired
 | 
			
		||||
tough
 | 
			
		||||
troubled
 | 
			
		||||
ugliest
 | 
			
		||||
ugly
 | 
			
		||||
uninterested
 | 
			
		||||
unsightly
 | 
			
		||||
unusual
 | 
			
		||||
upset
 | 
			
		||||
uptight
 | 
			
		||||
vast
 | 
			
		||||
victorious
 | 
			
		||||
vivacious
 | 
			
		||||
vivid
 | 
			
		||||
wandering
 | 
			
		||||
weary
 | 
			
		||||
wicked
 | 
			
		||||
wide-eyed
 | 
			
		||||
wild
 | 
			
		||||
witty
 | 
			
		||||
worried
 | 
			
		||||
worrisome
 | 
			
		||||
wrong
 | 
			
		||||
zany
 | 
			
		||||
zealous
 | 
			
		||||
							
								
								
									
										48
									
								
								data/colors.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								data/colors.txt
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
aquamarine
 | 
			
		||||
black
 | 
			
		||||
blue
 | 
			
		||||
brass
 | 
			
		||||
brown
 | 
			
		||||
burnt-orange
 | 
			
		||||
canary
 | 
			
		||||
carmine
 | 
			
		||||
cerise
 | 
			
		||||
cerulean
 | 
			
		||||
cobalt
 | 
			
		||||
copper
 | 
			
		||||
cornflower
 | 
			
		||||
denim
 | 
			
		||||
eggplant
 | 
			
		||||
fuchsia
 | 
			
		||||
golden
 | 
			
		||||
goldenrod
 | 
			
		||||
gray
 | 
			
		||||
green
 | 
			
		||||
indigo
 | 
			
		||||
lavender
 | 
			
		||||
magenta
 | 
			
		||||
mahogany
 | 
			
		||||
maroon
 | 
			
		||||
navy
 | 
			
		||||
olive
 | 
			
		||||
orange
 | 
			
		||||
periwinkle
 | 
			
		||||
pine
 | 
			
		||||
pink
 | 
			
		||||
purple
 | 
			
		||||
red
 | 
			
		||||
red-brick
 | 
			
		||||
rose
 | 
			
		||||
scarlet
 | 
			
		||||
sepia
 | 
			
		||||
sienna
 | 
			
		||||
silver
 | 
			
		||||
tan
 | 
			
		||||
teal
 | 
			
		||||
turquoise
 | 
			
		||||
ultramarine
 | 
			
		||||
umber
 | 
			
		||||
vermilion
 | 
			
		||||
violet
 | 
			
		||||
white
 | 
			
		||||
yellow
 | 
			
		||||
							
								
								
									
										200
									
								
								data/nouns.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								data/nouns.txt
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,200 @@
 | 
			
		|||
actor
 | 
			
		||||
advertisement
 | 
			
		||||
afternoon
 | 
			
		||||
airport
 | 
			
		||||
ambulance
 | 
			
		||||
animal
 | 
			
		||||
answer
 | 
			
		||||
apple
 | 
			
		||||
apricot
 | 
			
		||||
army
 | 
			
		||||
asparagus
 | 
			
		||||
australia
 | 
			
		||||
balloon
 | 
			
		||||
banana
 | 
			
		||||
battery
 | 
			
		||||
beach
 | 
			
		||||
beard
 | 
			
		||||
beaver
 | 
			
		||||
bed
 | 
			
		||||
belgium
 | 
			
		||||
boy
 | 
			
		||||
branch
 | 
			
		||||
breakfast
 | 
			
		||||
brother
 | 
			
		||||
camera
 | 
			
		||||
candle
 | 
			
		||||
car
 | 
			
		||||
caravan
 | 
			
		||||
carpet
 | 
			
		||||
cartoon
 | 
			
		||||
china
 | 
			
		||||
church
 | 
			
		||||
crayon
 | 
			
		||||
crowd
 | 
			
		||||
daughter
 | 
			
		||||
death
 | 
			
		||||
denmark
 | 
			
		||||
desert
 | 
			
		||||
diamond
 | 
			
		||||
dinner
 | 
			
		||||
disease
 | 
			
		||||
doctor
 | 
			
		||||
dog
 | 
			
		||||
dream
 | 
			
		||||
dress
 | 
			
		||||
easter
 | 
			
		||||
egg
 | 
			
		||||
eggplant
 | 
			
		||||
egypt
 | 
			
		||||
elephant
 | 
			
		||||
energy
 | 
			
		||||
engine
 | 
			
		||||
england
 | 
			
		||||
evening
 | 
			
		||||
eye
 | 
			
		||||
family
 | 
			
		||||
fern
 | 
			
		||||
fish
 | 
			
		||||
flag
 | 
			
		||||
flower
 | 
			
		||||
football
 | 
			
		||||
forest
 | 
			
		||||
fountain
 | 
			
		||||
france
 | 
			
		||||
furniture
 | 
			
		||||
garage
 | 
			
		||||
garden
 | 
			
		||||
gas
 | 
			
		||||
ghost
 | 
			
		||||
giraffe
 | 
			
		||||
girl
 | 
			
		||||
glass
 | 
			
		||||
gold
 | 
			
		||||
grass
 | 
			
		||||
greece
 | 
			
		||||
guitar
 | 
			
		||||
hair
 | 
			
		||||
hamburger
 | 
			
		||||
helicopter
 | 
			
		||||
helmet
 | 
			
		||||
holiday
 | 
			
		||||
honey
 | 
			
		||||
horse
 | 
			
		||||
hospital
 | 
			
		||||
house
 | 
			
		||||
hydrogen
 | 
			
		||||
ice
 | 
			
		||||
insect
 | 
			
		||||
insurance
 | 
			
		||||
iron
 | 
			
		||||
island
 | 
			
		||||
jackal
 | 
			
		||||
jelly
 | 
			
		||||
jeans
 | 
			
		||||
jewellery
 | 
			
		||||
jordan
 | 
			
		||||
juice
 | 
			
		||||
kangaroo
 | 
			
		||||
king
 | 
			
		||||
kitchen
 | 
			
		||||
kite
 | 
			
		||||
knife
 | 
			
		||||
lamp
 | 
			
		||||
lawyer
 | 
			
		||||
leather
 | 
			
		||||
lemon
 | 
			
		||||
library
 | 
			
		||||
lighter
 | 
			
		||||
lion
 | 
			
		||||
lizard
 | 
			
		||||
lock
 | 
			
		||||
london
 | 
			
		||||
lunch
 | 
			
		||||
machine
 | 
			
		||||
magazine
 | 
			
		||||
magician
 | 
			
		||||
manatee
 | 
			
		||||
manchester
 | 
			
		||||
market
 | 
			
		||||
match
 | 
			
		||||
microphone
 | 
			
		||||
monkey
 | 
			
		||||
morning
 | 
			
		||||
motorcycle
 | 
			
		||||
nail
 | 
			
		||||
napkin
 | 
			
		||||
needle
 | 
			
		||||
nest
 | 
			
		||||
nigeria
 | 
			
		||||
night
 | 
			
		||||
notebook
 | 
			
		||||
ocean
 | 
			
		||||
oil
 | 
			
		||||
orange
 | 
			
		||||
orchid
 | 
			
		||||
oxygen
 | 
			
		||||
oyster
 | 
			
		||||
painting
 | 
			
		||||
parrot
 | 
			
		||||
peach
 | 
			
		||||
pencil
 | 
			
		||||
piano
 | 
			
		||||
pillow
 | 
			
		||||
pizza
 | 
			
		||||
planet
 | 
			
		||||
plastic
 | 
			
		||||
plum
 | 
			
		||||
portugal
 | 
			
		||||
potato
 | 
			
		||||
queen
 | 
			
		||||
quill
 | 
			
		||||
rain
 | 
			
		||||
rainbow
 | 
			
		||||
raincoat
 | 
			
		||||
refrigerator
 | 
			
		||||
restaurant
 | 
			
		||||
river
 | 
			
		||||
rocket
 | 
			
		||||
room
 | 
			
		||||
rose
 | 
			
		||||
russia
 | 
			
		||||
salmon
 | 
			
		||||
sand
 | 
			
		||||
sandwich
 | 
			
		||||
school
 | 
			
		||||
scooter
 | 
			
		||||
shampoo
 | 
			
		||||
shamrock
 | 
			
		||||
shoe
 | 
			
		||||
soccer
 | 
			
		||||
spoon
 | 
			
		||||
stone
 | 
			
		||||
sugar
 | 
			
		||||
sweden
 | 
			
		||||
teacher
 | 
			
		||||
telephone
 | 
			
		||||
television
 | 
			
		||||
tent
 | 
			
		||||
thailand
 | 
			
		||||
tomato
 | 
			
		||||
toothbrush
 | 
			
		||||
traffic
 | 
			
		||||
train
 | 
			
		||||
truck
 | 
			
		||||
tumbleweed
 | 
			
		||||
uganda
 | 
			
		||||
umbrella
 | 
			
		||||
van
 | 
			
		||||
vase
 | 
			
		||||
vegetable
 | 
			
		||||
vulture
 | 
			
		||||
wall
 | 
			
		||||
whale
 | 
			
		||||
window
 | 
			
		||||
wire
 | 
			
		||||
xylophone
 | 
			
		||||
yacht
 | 
			
		||||
yak
 | 
			
		||||
zebra
 | 
			
		||||
zoo
 | 
			
		||||
							
								
								
									
										108
									
								
								ha-passwords.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								ha-passwords.org
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,108 @@
 | 
			
		|||
#+TITLE:  Personal Password Generator
 | 
			
		||||
#+AUTHOR: Howard X. Abrams
 | 
			
		||||
#+EMAIL:  howard.abrams@gmail.com
 | 
			
		||||
#+DATE:   2021-01-11
 | 
			
		||||
#+FILETAGS: :emacs:
 | 
			
		||||
 | 
			
		||||
A literate programming version for Emacs code to generate and store passwords.
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC emacs-lisp :exports none
 | 
			
		||||
 ;;; ha-passwords.el --- A literate programming version for Emacs code to generate and store passwords. -*- lexical-binding: t; -*-
 | 
			
		||||
;;
 | 
			
		||||
;; Copyright (C) 2021 Howard X. Abrams
 | 
			
		||||
;;
 | 
			
		||||
;; Author: Howard X. Abrams <http://gitlab.com/howardabrams>
 | 
			
		||||
;; Maintainer: Howard X. Abrams <howard.abrams@gmail.com>
 | 
			
		||||
;; Created: January 11, 2021
 | 
			
		||||
;;
 | 
			
		||||
;; This file is not part of GNU Emacs.
 | 
			
		||||
;;
 | 
			
		||||
;; *NB:* Do not edit this file. Instead, edit the original literate file at:
 | 
			
		||||
;;            /Users/howard.abrams/other/hamacs/ha-passwords.org
 | 
			
		||||
;;       And tangle the file to recreate this one.
 | 
			
		||||
;;
 | 
			
		||||
;;; Code:
 | 
			
		||||
#+END_SRC
 | 
			
		||||
* Introduction
 | 
			
		||||
Let's assume that I store a bunch of words in data files:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC emacs-lisp
 | 
			
		||||
(defvar ha-passwords-data-files (list (expand-file-name "adjectives.txt"
 | 
			
		||||
                                                        (expand-file-name "data" hamacs-source-dir))
 | 
			
		||||
                                      (expand-file-name "colors.txt"
 | 
			
		||||
                                                        (expand-file-name "data" hamacs-source-dir))
 | 
			
		||||
                                      (expand-file-name "nouns.txt"
 | 
			
		||||
                                                        (expand-file-name "data" hamacs-source-dir)))
 | 
			
		||||
  "List of file name containing a data lines for our password generator. Order of these files matter.")
 | 
			
		||||
 | 
			
		||||
(defvar ha-passwords-data nil
 | 
			
		||||
  "Contains a list of lists of words that we can choose.")
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
You can see where I'm going with this, can't you? Let's read them into list variables.
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC emacs-lisp
 | 
			
		||||
(defun ha-passwords--read-data-file (filename)
 | 
			
		||||
  (with-temp-buffer
 | 
			
		||||
    (insert-file-contents filename)
 | 
			
		||||
    (split-string (buffer-string) "\n" t)))
 | 
			
		||||
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Now we just get three or so words from our list of lists:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC emacs-lisp
 | 
			
		||||
(defun ha-passwords-words ()
 | 
			
		||||
  (unless ha-passwords-data
 | 
			
		||||
    (setq ha-passwords-data
 | 
			
		||||
          (--map (ha-passwords--read-data-file it) ha-passwords-data-files)))
 | 
			
		||||
 | 
			
		||||
  (--map (nth (random (length it)) it) ha-passwords-data))
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
Let's make a password:
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC emacs-lisp
 | 
			
		||||
(defun ha-passwords-generate (&optional separator)
 | 
			
		||||
  (unless separator
 | 
			
		||||
    (setq separator "-"))
 | 
			
		||||
 | 
			
		||||
  (let* ((choices '("!" "@" "#" "$" "%" "^" "&" "*"))
 | 
			
		||||
         (choice (random (length choices)))
 | 
			
		||||
         (number (1+ choice)))
 | 
			
		||||
    (->> (ha-passwords-words)
 | 
			
		||||
         (s-join separator)
 | 
			
		||||
         (s-capitalize)
 | 
			
		||||
         (s-append (nth choice choices))
 | 
			
		||||
         (s-append (number-to-string number)))))
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC emacs-lisp
 | 
			
		||||
(defun generate-password (&optional separator)
 | 
			
		||||
  (interactive)
 | 
			
		||||
  (let ((passphrase (ha-passwords-generate separator)))
 | 
			
		||||
    (kill-new passphrase)
 | 
			
		||||
    (message "Random password: %s" passphrase)))
 | 
			
		||||
#+END_SRC
 | 
			
		||||
* Keybindings
 | 
			
		||||
Got make it easy to call:
 | 
			
		||||
#+BEGIN_SRC emacs-lisp
 | 
			
		||||
(ha-leader "a g" '("generate passwd" . generate-password))
 | 
			
		||||
#+END_SRC
 | 
			
		||||
* Technical Artifacts :noexport:
 | 
			
		||||
This will =provide= a code name, so that we can =require= this.
 | 
			
		||||
 | 
			
		||||
#+BEGIN_SRC emacs-lisp :exports none
 | 
			
		||||
(provide 'ha-passwords)
 | 
			
		||||
;;; ha-passwords.el ends here
 | 
			
		||||
#+END_SRC
 | 
			
		||||
 | 
			
		||||
#+DESCRIPTION: A literate programming version for Emacs code to generate and store passwords.
 | 
			
		||||
 | 
			
		||||
#+PROPERTY:    header-args:sh :tangle no
 | 
			
		||||
#+PROPERTY:    header-args:emacs-lisp :tangle yes
 | 
			
		||||
#+PROPERTY:    header-args    :results none :eval no-export :comments no mkdirp yes
 | 
			
		||||
 | 
			
		||||
#+OPTIONS:     num:nil toc:nil todo:nil tasks:nil tags:nil date:nil
 | 
			
		||||
#+OPTIONS:     skip:nil author:nil email:nil creator:nil timestamp:nil
 | 
			
		||||
#+INFOJS_OPT:  view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
 | 
			
		||||
		Loading…
	
		Reference in a new issue