mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 22:08:16 -05:00
gnu: Add cf-tool.
* gnu/packages/education.scm (cf-tool): New variable. * gnu/packages/patches/cf-tool-add-languages.patch: New file. Change-Id: Ib64cf9f26b3b1f3d761fa897365fce07822c3b11 Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
parent
21d631a3e8
commit
b63343d184
2 changed files with 89 additions and 0 deletions
|
@ -12,6 +12,7 @@
|
||||||
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
|
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
|
||||||
;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
|
;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
|
||||||
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
|
;;; Copyright © 2024 Luis Higino <luishenriquegh2701@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -49,6 +50,7 @@ (define-module (gnu packages education)
|
||||||
#:use-module (gnu packages golang)
|
#:use-module (gnu packages golang)
|
||||||
#:use-module (gnu packages golang-build)
|
#:use-module (gnu packages golang-build)
|
||||||
#:use-module (gnu packages golang-check)
|
#:use-module (gnu packages golang-check)
|
||||||
|
#:use-module (gnu packages golang-web)
|
||||||
#:use-module (gnu packages golang-xyz)
|
#:use-module (gnu packages golang-xyz)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages gstreamer)
|
#:use-module (gnu packages gstreamer)
|
||||||
|
@ -90,6 +92,71 @@ (define-module (gnu packages education)
|
||||||
#:use-module (guix build-system trivial)
|
#:use-module (guix build-system trivial)
|
||||||
#:use-module (srfi srfi-1))
|
#:use-module (srfi srfi-1))
|
||||||
|
|
||||||
|
(define-public cf-tool
|
||||||
|
(package
|
||||||
|
(name "cf-tool")
|
||||||
|
(version "1.0.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/xalanq/cf-tool")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0ad2mljjg4pr8jjk9i1asnld16xi1wdfnh25drngm3c590cmrnfj"))
|
||||||
|
(patches (search-patches "cf-tool-add-languages.patch"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
;; Remove assets and vendorized dependencies from checkout
|
||||||
|
(snippet '(begin
|
||||||
|
(delete-file-recursively "assets")
|
||||||
|
(delete-file-recursively "vendor")))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:go go-1.18
|
||||||
|
#:install-source? #f
|
||||||
|
#:import-path "github.com/xalanq/cf-tool"
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'install 'add-alternate-name
|
||||||
|
(lambda* _
|
||||||
|
(let ((bin (string-append #$output "/bin")))
|
||||||
|
(symlink (string-append bin "/cf-tool")
|
||||||
|
(string-append bin "/cf"))))))))
|
||||||
|
(native-inputs
|
||||||
|
(list go-github-com-docopt-docopt-go
|
||||||
|
go-github-com-fatih-color
|
||||||
|
go-github-com-k0kubun-go-ansi
|
||||||
|
go-github-com-mitchellh-go-homedir
|
||||||
|
go-github-com-olekukonko-tablewriter
|
||||||
|
go-github-com-puerkitobio-goquery
|
||||||
|
go-github-com-sergi-go-diff
|
||||||
|
go-github-com-shirou-gopsutil
|
||||||
|
go-github-com-skratchdot-open-golang
|
||||||
|
go-golang-org-x-crypto
|
||||||
|
go-golang-org-x-term))
|
||||||
|
(home-page "https://github.com/xalanq/cf-tool")
|
||||||
|
(synopsis
|
||||||
|
"Command-line interface tool for @url{https://codeforces.com, Codeforces}")
|
||||||
|
(description
|
||||||
|
"Codeforces Tool is a command-line interface tool for
|
||||||
|
@url{https://codeforces.com,Codeforces}. Its features include:
|
||||||
|
@itemize
|
||||||
|
@item support Contests, Gym, Groups and acmsguru
|
||||||
|
@item support all programming languages in Codeforces
|
||||||
|
@item submit codes
|
||||||
|
@item watch submissions' status dynamically
|
||||||
|
@item fetch problems' samples
|
||||||
|
@item compile and test locally
|
||||||
|
@item clone all codes of someone
|
||||||
|
@item generate codes from the specified template (including timestamp, author, etc.)
|
||||||
|
@item list problems' stats of one contest
|
||||||
|
@item use default web browser to open problems' pages, standings' page, etc.
|
||||||
|
@item setup a network proxy and setup a mirror host
|
||||||
|
@end itemize")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public gcompris
|
(define-public gcompris
|
||||||
(package
|
(package
|
||||||
(name "gcompris")
|
(name "gcompris")
|
||||||
|
|
22
gnu/packages/patches/cf-tool-add-languages.patch
Normal file
22
gnu/packages/patches/cf-tool-add-languages.patch
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Add newer language options.
|
||||||
|
|
||||||
|
diff --git a/client/langs.go b/tmp/langs.go
|
||||||
|
index b09c69f..0695958 100644
|
||||||
|
--- a/client/langs.go
|
||||||
|
+++ b/tmp/langs.go
|
||||||
|
@@ -9,6 +9,7 @@ var Langs = map[string]string{
|
||||||
|
"42": "GNU G++11 5.1.0",
|
||||||
|
"50": "GNU G++14 6.4.0",
|
||||||
|
"54": "GNU G++17 7.3.0",
|
||||||
|
+ "89": "GNU G++20 13.2 (64 bit, winlibs)",
|
||||||
|
"2": "Microsoft Visual C++ 2010",
|
||||||
|
"59": "Microsoft Visual C++ 2017",
|
||||||
|
"9": "C# Mono 5.18",
|
||||||
|
@@ -60,6 +61,7 @@ var LangsExt = map[string]string{
|
||||||
|
"GNU C++11": "cpp",
|
||||||
|
"GNU C++14": "cpp",
|
||||||
|
"GNU C++17": "cpp",
|
||||||
|
+ "GNU G++20": "cpp",
|
||||||
|
"MS C++": "cpp",
|
||||||
|
"MS C++ 2017": "cpp",
|
||||||
|
"Mono C#": "cs",
|
Loading…
Reference in a new issue