Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Animated QR codes #22

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 34 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,26 @@ jobs:

strategy:
matrix:
include:
- os: ubuntu-18.04
- os: ubuntu-20.04
- os: macos-10.15
- os: macos-11
os:
- ubuntu-18.04
- ubuntu-20.04
- macos-10.15
- macos-11
cc:
- gcc
- clang
arch:
- amd64
- arm64
- arm
- ppc64le
- s390x

continue-on-error: true

steps:
- run: git config --global core.autocrlf false

- uses: actions/checkout@v2

- name: Resolve dependencies (Ubuntu)
Expand All @@ -30,7 +41,7 @@ jobs:
imagemagick \
libqrencode-dev \
zbar-tools
if: matrix.os == 'ubuntu-18.04' || matrix.os == 'ubuntu-20.04'
if: contains(matrix.os, 'ubuntu')

- name: Resolve dependencies (macOS)
run: |
Expand All @@ -41,12 +52,19 @@ jobs:
brew tap homebrew/cask-fonts
brew install --cask font-freefont
convert -font FreeMono label:"Unable to revert mtime: /Library/Fonts fix" png:- > /dev/null
if: matrix.os == 'macos-10.15' || matrix.os == 'macos-11'
if: contains(matrix.os, 'macos')

- name: Build
run: make

- name: Test
- name: Test (Ubuntu)
shell: 'script --return --quiet --command "bash {0}"'
if: contains(matrix.os, 'ubuntu')
run: make test

- name: Test (macOS)
shell: bash -l {0}
if: contains(matrix.os, 'macos')
run: make test

- name: Print test logs
Expand All @@ -56,7 +74,14 @@ jobs:
- name: Install
run: PREFIX=/usr/local sudo make install

- name: Run
- name: Run (Ubuntu)
shell: 'script --return --quiet --command "bash {0}"'
if: contains(matrix.os, 'ubuntu')
run: /usr/local/bin/qr Success

- name: Run (macOS)
shell: bash -l {0}
if: contains(matrix.os, 'macos')
run: /usr/local/bin/qr Success

- name: Uninstall
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ RUN apk update && \
COPY Makefile qr.c .

RUN make clean && \
make -j 16 && \
make -j && \
make install

CMD ["qr"]
20 changes: 10 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
include config.mk

$(PROG):
$(CC) $(PROG).c $(CFLAGS) $(LIBS) -DVERSION="\"$(VERSION)\"" -o $(PROG)
$(CC) $(PROG).c $(CFLAGS) $(LIBS) -DPROG="\"$(PROG)\"" -DVERSION="\"$(VERSION)\"" -o $(PROG)

all: $(PROG)
.PHONY: all
Expand All @@ -15,20 +15,20 @@ clean:
.PHONY: clean

install: all
echo installing executable file to $(DESTDIR)$(PREFIX)/bin
install -d $(DESTDIR)$(PREFIX)/bin
install -m 755 $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
@echo installing executable file into $(DESTDIR)$(PREFIX)/bin
@install -d $(DESTDIR)$(PREFIX)/bin
@install -m 755 $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
.PHONY: install

uninstall:
echo removing executable file from $(DESTDIR)$(PREFIX)/bin
rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG)
@echo removing executable file from $(DESTDIR)$(PREFIX)/bin
@rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG)
.PHONY: uninstall

test: $(PROG)
autom4te --no-cache -f -l autotest -o tests tests.at
./tests \
FONT=$(FONT) \
INPUT='Ünic0d3wörd 参 я' \
@autom4te --no-cache -f -l autotest -o tests tests.at
@./tests \
FONT="FreeMono" \
INPUT="Ünic0d3wörd 参 я" \
EXTRA_LONG_INPUT="参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し参考文献に掲載されている文章等を抜粋し"
.PHONY: test
23 changes: 10 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ Print Unicode-friendly QR Codes® straight in your terminal!

$ make

<details>
<summary><strong>Build dependencies</strong></summary>
<br />
#### Build dependencies

- [libqrencode](https://github.com/fukuchi/libqrencode)
###### Resolve on Ubuntu or Debian
Expand All @@ -24,8 +22,6 @@ Print Unicode-friendly QR Codes® straight in your terminal!
$ make
# make install

</details>


## How to install

Expand All @@ -37,8 +33,8 @@ or

## How to build and install using containers

$ docker build -t y2z/qr .
$ sudo install -b utils/qr.sh /usr/local/bin/qr
$ docker build -t Y2Z/qr .
$ sudo install -b dist/run-in-container.sh /usr/local/bin/qr


## How to build and install on FreeBSD
Expand All @@ -56,13 +52,17 @@ or
or

$ echo -n "Hello" | qr
or

$ cat file.png | qr -a

#### Options

Usage: qr [OPTIONS] STRING
Usage: qr [OPTIONS] [STRING]
or: cat FILE | qr [OPTIONS]

Options:
-a produce animated QR code
-m QR mode [na8k] (n = number, a = alphabet, 8 = 8-bit, k = Kanji)
-v QR version [1-40]
-e QR EC level [lmqh] or [1-4]
Expand All @@ -71,6 +71,7 @@ or
-b border width [1-4] (the default is 1)
-i invert colors
-p force colorless output
-u ensure output has UTF-8 BOM
-h print help info and exit
-V print version info and exit

Expand All @@ -84,9 +85,7 @@ or

$ make test

<details>
<summary><strong>Test dependencies</strong></summary>
<br />
#### Test dependencies

- [autoconf](https://www.gnu.org/software/autoconf/autoconf.html)
###### Resolve on Ubuntu or Debian
Expand All @@ -110,8 +109,6 @@ or
$ brew tap homebrew/cask-fonts
$ brew install --cask font-freefont

</details>


## Acknowledgements

Expand Down
11 changes: 5 additions & 6 deletions config.mk
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
# qr version
VERSION = 1.0.0

# program name
PROG = qr

# font used in tests
FONT = FreeMono
# program version
VERSION = 2.0.0

#
# Customize below to fit your system
#

# paths
PREFIX = /usr/local

# libs
# libraries
LIBS = -lm -lqrencode

# flags
Expand Down
2 changes: 1 addition & 1 deletion utils/qr.sh → dist/run-in-container.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ if which podman 2>&1 > /dev/null; then
DOCKER=podman
fi

$DOCKER run --rm y2z/qr qr "$@"
$DOCKER run --rm Y2Z/qr qr "$@"
Loading