From: Unknwon Date: Mon, 8 Sep 2014 00:11:13 +0000 (-0400) Subject: Fix test cases X-Git-Tag: v0.9.99~1824 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d89e630bc0cfb228db632c8b3f369f7dbd80bd02;p=gitea.git Fix test cases --- diff --git a/modules/ldap/_examples/enterprise.ldif b/modules/ldap/_examples/enterprise.ldif new file mode 100644 index 0000000000..f0ec28f16b --- /dev/null +++ b/modules/ldap/_examples/enterprise.ldif @@ -0,0 +1,63 @@ +dn: dc=enterprise,dc=org +objectClass: dcObject +objectClass: organization +o: acme + +dn: cn=admin,dc=enterprise,dc=org +objectClass: person +cn: admin +sn: admin +description: "LDAP Admin" + +dn: ou=crew,dc=enterprise,dc=org +ou: crew +objectClass: organizationalUnit + + +dn: cn=kirkj,ou=crew,dc=enterprise,dc=org +cn: kirkj +sn: Kirk +gn: James Tiberius +mail: james.kirk@enterprise.org +objectClass: inetOrgPerson + +dn: cn=spock,ou=crew,dc=enterprise,dc=org +cn: spock +sn: Spock +mail: spock@enterprise.org +objectClass: inetOrgPerson + +dn: cn=mccoyl,ou=crew,dc=enterprise,dc=org +cn: mccoyl +sn: McCoy +gn: Leonard +mail: leonard.mccoy@enterprise.org +objectClass: inetOrgPerson + +dn: cn=scottm,ou=crew,dc=enterprise,dc=org +cn: scottm +sn: Scott +gn: Montgomery +mail: Montgomery.scott@enterprise.org +objectClass: inetOrgPerson + +dn: cn=uhuran,ou=crew,dc=enterprise,dc=org +cn: uhuran +sn: Uhura +gn: Nyota +mail: nyota.uhura@enterprise.org +objectClass: inetOrgPerson + +dn: cn=suluh,ou=crew,dc=enterprise,dc=org +cn: suluh +sn: Sulu +gn: Hikaru +mail: hikaru.sulu@enterprise.org +objectClass: inetOrgPerson + +dn: cn=chekovp,ou=crew,dc=enterprise,dc=org +cn: chekovp +sn: Chekov +gn: pavel +mail: pavel.chekov@enterprise.org +objectClass: inetOrgPerson diff --git a/modules/ldap/_examples/modify.go b/modules/ldap/_examples/modify.go new file mode 100644 index 0000000000..cd6dfc9eb7 --- /dev/null +++ b/modules/ldap/_examples/modify.go @@ -0,0 +1,89 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "errors" + "fmt" + "log" + + "github.com/gogits/gogs/modules/ldap" +) + +var ( + LdapServer string = "localhost" + LdapPort uint16 = 389 + BaseDN string = "dc=enterprise,dc=org" + BindDN string = "cn=admin,dc=enterprise,dc=org" + BindPW string = "enterprise" + Filter string = "(cn=kirkj)" +) + +func search(l *ldap.Conn, filter string, attributes []string) (*ldap.Entry, *ldap.Error) { + search := ldap.NewSearchRequest( + BaseDN, + ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, + filter, + attributes, + nil) + + sr, err := l.Search(search) + if err != nil { + log.Fatalf("ERROR: %s\n", err) + return nil, err + } + + log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) + if len(sr.Entries) == 0 { + return nil, ldap.NewError(ldap.ErrorDebugging, errors.New(fmt.Sprintf("no entries found for: %s", filter))) + } + return sr.Entries[0], nil +} + +func main() { + l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort)) + if err != nil { + log.Fatalf("ERROR: %s\n", err.Error()) + } + defer l.Close() + // l.Debug = true + + l.Bind(BindDN, BindPW) + + log.Printf("The Search for Kirk ... %s\n", Filter) + entry, err := search(l, Filter, []string{}) + if err != nil { + log.Fatal("could not get entry") + } + entry.PrettyPrint(0) + + log.Printf("modify the mail address and add a description ... \n") + modify := ldap.NewModifyRequest(entry.DN) + modify.Add("description", []string{"Captain of the USS Enterprise"}) + modify.Replace("mail", []string{"captain@enterprise.org"}) + if err := l.Modify(modify); err != nil { + log.Fatalf("ERROR: %s\n", err.Error()) + } + + entry, err = search(l, Filter, []string{}) + if err != nil { + log.Fatal("could not get entry") + } + entry.PrettyPrint(0) + + log.Printf("reset the entry ... \n") + modify = ldap.NewModifyRequest(entry.DN) + modify.Delete("description", []string{}) + modify.Replace("mail", []string{"james.kirk@enterprise.org"}) + if err := l.Modify(modify); err != nil { + log.Fatalf("ERROR: %s\n", err.Error()) + } + + entry, err = search(l, Filter, []string{}) + if err != nil { + log.Fatal("could not get entry") + } + entry.PrettyPrint(0) +} diff --git a/modules/ldap/_examples/search.go b/modules/ldap/_examples/search.go new file mode 100644 index 0000000000..609256f4d3 --- /dev/null +++ b/modules/ldap/_examples/search.go @@ -0,0 +1,52 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "fmt" + "log" + + "github.com/gogits/gogs/modules/ldap" +) + +var ( + ldapServer string = "adserver" + ldapPort uint16 = 3268 + baseDN string = "dc=*,dc=*" + filter string = "(&(objectClass=user)(sAMAccountName=*)(memberOf=CN=*,OU=*,DC=*,DC=*))" + Attributes []string = []string{"memberof"} + user string = "*" + passwd string = "*" +) + +func main() { + l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", ldapServer, ldapPort)) + if err != nil { + log.Fatalf("ERROR: %s\n", err.Error()) + } + defer l.Close() + // l.Debug = true + + err = l.Bind(user, passwd) + if err != nil { + log.Printf("ERROR: Cannot bind: %s\n", err.Error()) + return + } + search := ldap.NewSearchRequest( + baseDN, + ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, + filter, + Attributes, + nil) + + sr, err := l.Search(search) + if err != nil { + log.Fatalf("ERROR: %s\n", err.Error()) + return + } + + log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) + sr.PrettyPrint(0) +} diff --git a/modules/ldap/_examples/searchSSL.go b/modules/ldap/_examples/searchSSL.go new file mode 100644 index 0000000000..aa9cbcc124 --- /dev/null +++ b/modules/ldap/_examples/searchSSL.go @@ -0,0 +1,45 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "fmt" + "log" + + "github.com/gogits/gogs/modules/ldap" +) + +var ( + LdapServer string = "localhost" + LdapPort uint16 = 636 + BaseDN string = "dc=enterprise,dc=org" + Filter string = "(cn=kirkj)" + Attributes []string = []string{"mail"} +) + +func main() { + l, err := ldap.DialSSL("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil) + if err != nil { + log.Fatalf("ERROR: %s\n", err.String()) + } + defer l.Close() + // l.Debug = true + + search := ldap.NewSearchRequest( + BaseDN, + ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, + Filter, + Attributes, + nil) + + sr, err := l.Search(search) + if err != nil { + log.Fatalf("ERROR: %s\n", err.String()) + return + } + + log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) + sr.PrettyPrint(0) +} diff --git a/modules/ldap/_examples/searchTLS.go b/modules/ldap/_examples/searchTLS.go new file mode 100644 index 0000000000..c771a8eda8 --- /dev/null +++ b/modules/ldap/_examples/searchTLS.go @@ -0,0 +1,45 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "fmt" + "log" + + "github.com/gogits/gogs/modules/ldap" +) + +var ( + LdapServer string = "localhost" + LdapPort uint16 = 389 + BaseDN string = "dc=enterprise,dc=org" + Filter string = "(cn=kirkj)" + Attributes []string = []string{"mail"} +) + +func main() { + l, err := ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil) + if err != nil { + log.Fatalf("ERROR: %s\n", err.Error()) + } + defer l.Close() + // l.Debug = true + + search := ldap.NewSearchRequest( + BaseDN, + ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, + Filter, + Attributes, + nil) + + sr, err := l.Search(search) + if err != nil { + log.Fatalf("ERROR: %s\n", err.Error()) + return + } + + log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) + sr.PrettyPrint(0) +} diff --git a/modules/ldap/_examples/slapd.conf b/modules/ldap/_examples/slapd.conf new file mode 100644 index 0000000000..5a66be0152 --- /dev/null +++ b/modules/ldap/_examples/slapd.conf @@ -0,0 +1,67 @@ +# +# See slapd.conf(5) for details on configuration options. +# This file should NOT be world readable. +# +include /private/etc/openldap/schema/core.schema +include /private/etc/openldap/schema/cosine.schema +include /private/etc/openldap/schema/inetorgperson.schema + +# Define global ACLs to disable default read access. + +# Do not enable referrals until AFTER you have a working directory +# service AND an understanding of referrals. +#referral ldap://root.openldap.org + +pidfile /private/var/db/openldap/run/slapd.pid +argsfile /private/var/db/openldap/run/slapd.args + +# Load dynamic backend modules: +# modulepath /usr/libexec/openldap +# moduleload back_bdb.la +# moduleload back_hdb.la +# moduleload back_ldap.la + +# Sample security restrictions +# Require integrity protection (prevent hijacking) +# Require 112-bit (3DES or better) encryption for updates +# Require 63-bit encryption for simple bind +# security ssf=1 update_ssf=112 simple_bind=64 + +# Sample access control policy: +# Root DSE: allow anyone to read it +# Subschema (sub)entry DSE: allow anyone to read it +# Other DSEs: +# Allow self write access +# Allow authenticated users read access +# Allow anonymous users to authenticate +# Directives needed to implement policy: +# access to dn.base="" by * read +# access to dn.base="cn=Subschema" by * read +# access to * +# by self write +# by users read +# by anonymous auth +# +# if no access controls are present, the default policy +# allows anyone and everyone to read anything but restricts +# updates to rootdn. (e.g., "access to * by * read") +# +# rootdn can always read and write EVERYTHING! + +####################################################################### +# BDB database definitions +####################################################################### + +database bdb +suffix "dc=enterprise,dc=org" +rootdn "cn=admin,dc=enterprise,dc=org" +# Cleartext passwords, especially for the rootdn, should +# be avoid. See slappasswd(8) and slapd.conf(5) for details. +# Use of strong authentication encouraged. +rootpw {SSHA}laO00HsgszhK1O0Z5qR0/i/US69Osfeu +# The database directory MUST exist prior to running slapd AND +# should only be accessible by the slapd and slap tools. +# Mode 700 recommended. +directory /private/var/db/openldap/openldap-data +# Indices to maintain +index objectClass eq diff --git a/modules/ldap/examples/enterprise.ldif b/modules/ldap/examples/enterprise.ldif deleted file mode 100644 index f0ec28f16b..0000000000 --- a/modules/ldap/examples/enterprise.ldif +++ /dev/null @@ -1,63 +0,0 @@ -dn: dc=enterprise,dc=org -objectClass: dcObject -objectClass: organization -o: acme - -dn: cn=admin,dc=enterprise,dc=org -objectClass: person -cn: admin -sn: admin -description: "LDAP Admin" - -dn: ou=crew,dc=enterprise,dc=org -ou: crew -objectClass: organizationalUnit - - -dn: cn=kirkj,ou=crew,dc=enterprise,dc=org -cn: kirkj -sn: Kirk -gn: James Tiberius -mail: james.kirk@enterprise.org -objectClass: inetOrgPerson - -dn: cn=spock,ou=crew,dc=enterprise,dc=org -cn: spock -sn: Spock -mail: spock@enterprise.org -objectClass: inetOrgPerson - -dn: cn=mccoyl,ou=crew,dc=enterprise,dc=org -cn: mccoyl -sn: McCoy -gn: Leonard -mail: leonard.mccoy@enterprise.org -objectClass: inetOrgPerson - -dn: cn=scottm,ou=crew,dc=enterprise,dc=org -cn: scottm -sn: Scott -gn: Montgomery -mail: Montgomery.scott@enterprise.org -objectClass: inetOrgPerson - -dn: cn=uhuran,ou=crew,dc=enterprise,dc=org -cn: uhuran -sn: Uhura -gn: Nyota -mail: nyota.uhura@enterprise.org -objectClass: inetOrgPerson - -dn: cn=suluh,ou=crew,dc=enterprise,dc=org -cn: suluh -sn: Sulu -gn: Hikaru -mail: hikaru.sulu@enterprise.org -objectClass: inetOrgPerson - -dn: cn=chekovp,ou=crew,dc=enterprise,dc=org -cn: chekovp -sn: Chekov -gn: pavel -mail: pavel.chekov@enterprise.org -objectClass: inetOrgPerson diff --git a/modules/ldap/examples/modify.go b/modules/ldap/examples/modify.go deleted file mode 100644 index 177fe8da7a..0000000000 --- a/modules/ldap/examples/modify.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -import ( - "errors" - "fmt" - "log" - - "github.com/juju2013/goldap" -) - -var ( - LdapServer string = "localhost" - LdapPort uint16 = 389 - BaseDN string = "dc=enterprise,dc=org" - BindDN string = "cn=admin,dc=enterprise,dc=org" - BindPW string = "enterprise" - Filter string = "(cn=kirkj)" -) - -func search(l *ldap.Conn, filter string, attributes []string) (*ldap.Entry, *ldap.Error) { - search := ldap.NewSearchRequest( - BaseDN, - ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, - filter, - attributes, - nil) - - sr, err := l.Search(search) - if err != nil { - log.Fatalf("ERROR: %s\n", err) - return nil, err - } - - log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) - if len(sr.Entries) == 0 { - return nil, ldap.NewError(ldap.ErrorDebugging, errors.New(fmt.Sprintf("no entries found for: %s", filter))) - } - return sr.Entries[0], nil -} - -func main() { - l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort)) - if err != nil { - log.Fatalf("ERROR: %s\n", err.Error()) - } - defer l.Close() - // l.Debug = true - - l.Bind(BindDN, BindPW) - - log.Printf("The Search for Kirk ... %s\n", Filter) - entry, err := search(l, Filter, []string{}) - if err != nil { - log.Fatal("could not get entry") - } - entry.PrettyPrint(0) - - log.Printf("modify the mail address and add a description ... \n") - modify := ldap.NewModifyRequest(entry.DN) - modify.Add("description", []string{"Captain of the USS Enterprise"}) - modify.Replace("mail", []string{"captain@enterprise.org"}) - if err := l.Modify(modify); err != nil { - log.Fatalf("ERROR: %s\n", err.Error()) - } - - entry, err = search(l, Filter, []string{}) - if err != nil { - log.Fatal("could not get entry") - } - entry.PrettyPrint(0) - - log.Printf("reset the entry ... \n") - modify = ldap.NewModifyRequest(entry.DN) - modify.Delete("description", []string{}) - modify.Replace("mail", []string{"james.kirk@enterprise.org"}) - if err := l.Modify(modify); err != nil { - log.Fatalf("ERROR: %s\n", err.Error()) - } - - entry, err = search(l, Filter, []string{}) - if err != nil { - log.Fatal("could not get entry") - } - entry.PrettyPrint(0) -} diff --git a/modules/ldap/examples/search.go b/modules/ldap/examples/search.go deleted file mode 100644 index 59a0333dc8..0000000000 --- a/modules/ldap/examples/search.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -import ( - "fmt" - "log" - - "github.com/juju2013/goldap" -) - -var ( - ldapServer string = "adserver" - ldapPort uint16 = 3268 - baseDN string = "dc=*,dc=*" - filter string = "(&(objectClass=user)(sAMAccountName=*)(memberOf=CN=*,OU=*,DC=*,DC=*))" - Attributes []string = []string{"memberof"} - user string = "*" - passwd string = "*" -) - -func main() { - l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", ldapServer, ldapPort)) - if err != nil { - log.Fatalf("ERROR: %s\n", err.Error()) - } - defer l.Close() - // l.Debug = true - - err = l.Bind(user, passwd) - if err != nil { - log.Printf("ERROR: Cannot bind: %s\n", err.Error()) - return - } - search := ldap.NewSearchRequest( - baseDN, - ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, - filter, - Attributes, - nil) - - sr, err := l.Search(search) - if err != nil { - log.Fatalf("ERROR: %s\n", err.Error()) - return - } - - log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) - sr.PrettyPrint(0) -} diff --git a/modules/ldap/examples/searchSSL.go b/modules/ldap/examples/searchSSL.go deleted file mode 100644 index a98ca3a416..0000000000 --- a/modules/ldap/examples/searchSSL.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -import ( - "fmt" - "log" - - "github.com/juju2013/goldap" -) - -var ( - LdapServer string = "localhost" - LdapPort uint16 = 636 - BaseDN string = "dc=enterprise,dc=org" - Filter string = "(cn=kirkj)" - Attributes []string = []string{"mail"} -) - -func main() { - l, err := ldap.DialSSL("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil) - if err != nil { - log.Fatalf("ERROR: %s\n", err.String()) - } - defer l.Close() - // l.Debug = true - - search := ldap.NewSearchRequest( - BaseDN, - ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, - Filter, - Attributes, - nil) - - sr, err := l.Search(search) - if err != nil { - log.Fatalf("ERROR: %s\n", err.String()) - return - } - - log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) - sr.PrettyPrint(0) -} diff --git a/modules/ldap/examples/searchTLS.go b/modules/ldap/examples/searchTLS.go deleted file mode 100644 index a20bcc320d..0000000000 --- a/modules/ldap/examples/searchTLS.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package main - -import ( - "fmt" - "log" - - "github.com/juju2013/goldap" -) - -var ( - LdapServer string = "localhost" - LdapPort uint16 = 389 - BaseDN string = "dc=enterprise,dc=org" - Filter string = "(cn=kirkj)" - Attributes []string = []string{"mail"} -) - -func main() { - l, err := ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil) - if err != nil { - log.Fatalf("ERROR: %s\n", err.Error()) - } - defer l.Close() - // l.Debug = true - - search := ldap.NewSearchRequest( - BaseDN, - ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, - Filter, - Attributes, - nil) - - sr, err := l.Search(search) - if err != nil { - log.Fatalf("ERROR: %s\n", err.Error()) - return - } - - log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries)) - sr.PrettyPrint(0) -} diff --git a/modules/ldap/examples/slapd.conf b/modules/ldap/examples/slapd.conf deleted file mode 100644 index 5a66be0152..0000000000 --- a/modules/ldap/examples/slapd.conf +++ /dev/null @@ -1,67 +0,0 @@ -# -# See slapd.conf(5) for details on configuration options. -# This file should NOT be world readable. -# -include /private/etc/openldap/schema/core.schema -include /private/etc/openldap/schema/cosine.schema -include /private/etc/openldap/schema/inetorgperson.schema - -# Define global ACLs to disable default read access. - -# Do not enable referrals until AFTER you have a working directory -# service AND an understanding of referrals. -#referral ldap://root.openldap.org - -pidfile /private/var/db/openldap/run/slapd.pid -argsfile /private/var/db/openldap/run/slapd.args - -# Load dynamic backend modules: -# modulepath /usr/libexec/openldap -# moduleload back_bdb.la -# moduleload back_hdb.la -# moduleload back_ldap.la - -# Sample security restrictions -# Require integrity protection (prevent hijacking) -# Require 112-bit (3DES or better) encryption for updates -# Require 63-bit encryption for simple bind -# security ssf=1 update_ssf=112 simple_bind=64 - -# Sample access control policy: -# Root DSE: allow anyone to read it -# Subschema (sub)entry DSE: allow anyone to read it -# Other DSEs: -# Allow self write access -# Allow authenticated users read access -# Allow anonymous users to authenticate -# Directives needed to implement policy: -# access to dn.base="" by * read -# access to dn.base="cn=Subschema" by * read -# access to * -# by self write -# by users read -# by anonymous auth -# -# if no access controls are present, the default policy -# allows anyone and everyone to read anything but restricts -# updates to rootdn. (e.g., "access to * by * read") -# -# rootdn can always read and write EVERYTHING! - -####################################################################### -# BDB database definitions -####################################################################### - -database bdb -suffix "dc=enterprise,dc=org" -rootdn "cn=admin,dc=enterprise,dc=org" -# Cleartext passwords, especially for the rootdn, should -# be avoid. See slappasswd(8) and slapd.conf(5) for details. -# Use of strong authentication encouraged. -rootpw {SSHA}laO00HsgszhK1O0Z5qR0/i/US69Osfeu -# The database directory MUST exist prior to running slapd AND -# should only be accessible by the slapd and slap tools. -# Mode 700 recommended. -directory /private/var/db/openldap/openldap-data -# Indices to maintain -index objectClass eq diff --git a/modules/ldap/filter_test.go b/modules/ldap/filter_test.go index 9e83195951..761ff42fd5 100644 --- a/modules/ldap/filter_test.go +++ b/modules/ldap/filter_test.go @@ -3,7 +3,7 @@ package ldap import ( "testing" - "github.com/johnweldon/asn1-ber" + "github.com/gogits/gogs/modules/asn1-ber" ) type compileTest struct { diff --git a/modules/mahonia/mahoniconv/mahoniconv.go b/modules/mahonia/mahoniconv/mahoniconv.go index 0242a6f578..18ccc1e6ea 100644 --- a/modules/mahonia/mahoniconv/mahoniconv.go +++ b/modules/mahonia/mahoniconv/mahoniconv.go @@ -1,11 +1,12 @@ package main import ( - "code.google.com/p/mahonia" "flag" "io" "log" "os" + + "github.com/gogits/gogs/modules/mahonia" ) // An iconv workalike using mahonia.