hansa
Version, currently 0.1.59 versions
github.com/ralsina/hansa
A wrapper around go-enry for programming language detection
Nothing has been indexed for 0.1.5 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
hansa:
github: ralsina/hansa
version: ~> 0.1.5Then run:
shards installshard.yml
No shard.yml has been indexed for 0.1.5. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
Hansa
Detect the programming language based only on content.
Just content, no filename, no extension, nothing else. There are other tools for that.
This is a port of a piece of go-enry to Crystal, trained on the same Linguist corpus (go-enry v2.9.6).
Before the classifier runs, two content-only strategies from go-enry v2 are consulted, in this order:
- Editor modelines (
# vim: set ft=ruby:,# -*- mode: python -*-) in the first or last 5 lines. - Shebang lines, including
/usr/bin/envindirection, with the interpreter mapped through Linguist's table. A shebang naming one language wins outright; ambiguous ones (perl → Perl/Pod) restrict the classifier to those candidates.
Paradoxically it will detect Crystal as Ruby but it's close enough ;-)
Installation
-
Add the dependency to your
shard.yml:dependencies: hansa: github: ralsina/hansa -
Run
shards install
Usage
require "hansa"
puts Hansa.classify(File.read(ARGV[0])) # => "Ruby"
There is a "hansa" command line tool that can be used to classify files:
$ hansa src/hansa.cr
src/hansa.cr CoffeeScript
$ printf '#!/bin/bash\necho hi\n' | hansa -
- Shell
Run hansa --help for usage. Errors are reported on stderr with a
non-zero exit code, and a file argument of - reads standard input.
Development
I don't expect to do much more development here.
Contributing
- Fork it (https://github.com/ralsina/hansa/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Roberto Alsina - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1.5- Tagged
- Sep 23, 2026
- Commit
bf9eefe1ce5d- Indexed
- not yet
Dependents
Repository
github.com/ralsina/hansa
Metadata
- Created
- Aug 16, 2026
- Updated
- Oct 14, 2026
- Synced
- Oct 14, 2026
- Versions
- 9